summaryrefslogtreecommitdiff
path: root/http/bin/blog
diff options
context:
space:
mode:
Diffstat (limited to 'http/bin/blog')
-rwxr-xr-xhttp/bin/blog110
1 files changed, 0 insertions, 110 deletions
diff --git a/http/bin/blog b/http/bin/blog
deleted file mode 100755
index 46be82f..0000000
--- a/http/bin/blog
+++ /dev/null
@@ -1,110 +0,0 @@
-#!/bin/sh -e
-export PATH="$(dirname $(realpath $0)):$PATH"
-export BLOGS="$(realpath blogs)"
-export SRC="$(realpath src)"
-export LAYOUTS="$(realpath share/layouts)"
-
-usage()
-{
- >&2 cat << USAGE
-usage: blog -i LOG [-p POSTPROCESS_CMD] [-a EXTRACT_ARGS_CMD] [-l LAYOUT] [-t] [-f FILE_PATTERN]
-
-options:
-
- -a EXTRACT_ARGS_CMD
- If provided, a shell command to extract arguments to the layout from the
- source files. The shell will be provided with a variable, POST_TITLE.
-
- -f FILE
- If provided, a pattern for the files to process. Default: *.
-
- -i LOG
- The name of the source directory under \$BLOGS where log posts live.
-
- -l LAYOUT
- If provided, the layout under \$LAYOUTS to use for the generated
- upphtml files. If not provided, uses the default layout.
-
- -p POSTPROCESS_CMD
- If provided, a shell command to post-process the source files into
- upphtml. The shell will be provided with a variable, POST_TITLE.
-
- -t
- If enabled, use filenames as post titles
-USAGE
-}
-
-extract_args_cmd="head -n 0 | echo \"POST_TITLE=\\\"\${POST_TITLE}\\\"\""
-file_pattern="*"
-log_name=""
-layout_name="default"
-postprocess_cmd="echo"
-use_filenames_for_titles=0
-
-while getopts "a:f:i:l:p:t" opt
-do
- case $opt in
- a)
- extract_args_cmd="$OPTARG"
- ;;
- f)
- file_pattern="$OPTARG"
- ;;
- i)
- log_name="$OPTARG"
- ;;
- l)
- layout_name="$OPTARG"
- ;;
- p)
- postprocess_cmd="$OPTARG"
- ;;
- t)
- use_filenames_for_titles=1
- ;;
- esac
-done
-
-if [ -z "${log_name}" ]
-then
- usage
- exit 1
-fi
-
-if ! [ -d "${BLOGS}/${log_name}" ]
-then
- >&2 echo "there is no directory '${input_log}' under ${BLOGS}. options: $(ls common)"
- usage
- exit 1
-fi
-
-layout="${LAYOUTS}/${layout_name}.layout.upphtml"
-if [ "${layout_name}" = "default" ]
-then
- layout_ext=""
-else
- layout_ext=".${layout_name}"
-fi
-if ! [ -f "${layout}" ]
-then
- echo >&2 "Warning: no layout found at $(basename "${LAYOUTS}")/${layout_name}.layout.upphtml"
-fi
-
-mkdir -p "${SRC}/${log_name}"
-
-for entry in $(find -L "${BLOGS}/${log_name}" -type f -name "${file_pattern}")
-do
- basename="$(basename "$entry")"
- name="${basename%\.*}"
- dest="${SRC}/${log_name}/${name}${layout_ext}.upphtml"
- if [ $use_filenames_for_titles -eq 1 ]
- then
- export POST_TITLE="$name"
- cat "$entry" | eval "${postprocess_cmd}" > "$dest"
- else
- export POST_TITLE="$(grep -e "^# " -m 1 "$entry" | cut -c3-)"
- cat "$entry" | grep -e "^# " -v | eval "$postprocess_cmd" > "$dest"
- fi
- cat "$entry" | eval "$extract_args_cmd" > "${dest}.args"
- echo "Processed ${entry#$(dirname ${BLOGS})/} to ${dest#$(dirname ${SRC})/}"
-done