From 1079f927a27db9d194c8e25eb3a188396fdf8eab Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Mon, 17 May 2021 21:02:55 +0100 Subject: refactor code --- packages/gemfeed.source.sh | 51 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 packages/gemfeed.source.sh (limited to 'packages/gemfeed.source.sh') diff --git a/packages/gemfeed.source.sh b/packages/gemfeed.source.sh new file mode 100644 index 0000000..c68c507 --- /dev/null +++ b/packages/gemfeed.source.sh @@ -0,0 +1,51 @@ +# Filters out blog posts from other files in the gemfeed dir. +gemfeed::get_posts () { + local -r gemfeed_dir="$CONTENT_DIR/gemtext/gemfeed" + local -r gmi_pattern='^[0-9]{4}-[0-9]{2}-[0-9]{2}-.*\.gmi$' + local -r draft_pattern='\.draft\.gmi$' + + ls "$gemfeed_dir" | grep -E "$gmi_pattern" | grep -E -v "$draft_pattern" | sort -r +} + +# Adds the links from gemfeed/index.gmi to the main index site. +gemfeed::updatemainindex () { + local -r index_gmi="$CONTENT_DIR/gemtext/index.gmi" + local -r gemfeed_dir="$CONTENT_DIR/gemtext/gemfeed" + + log VERBOSE "Updating $index_gmi with posts from $gemfeed_dir" + + # Remove old gemfeeds from main index + $SED '/^=> .\/gemfeed\/[0-9].* - .*/d;' "$index_gmi" > "$index_gmi.tmp" + # Add current gemfeeds to main index + $SED -n '/^=> / { s| ./| ./gemfeed/|; p; }' "$gemfeed_dir/index.gmi" >> "$index_gmi.tmp" + + mv "$index_gmi.tmp" "$index_gmi" + test "$ADD_GIT" == yes && git add "$index_gmi" +} + +# This generates a index.gmi in the ./gemfeed subdir. +gemfeed::generate () { + local -r gemfeed_dir="$CONTENT_DIR/gemtext/gemfeed" + log INFO "Generating Gemfeed index for $gemfeed_dir" + +cat < "$gemfeed_dir/index.gmi.tmp" +# $DOMAIN's Gemfeed + +## $SUBTITLE + +GEMFEED + + gemfeed::get_posts | while read -r gmi_file; do + # Extract first heading as post title. + local title=$($SED -n '/^# / { s/# //; p; q; }' "$gemfeed_dir/$gmi_file" | tr '"' "'") + # Extract the date from the file name. + local filename_date=$(basename "$gemfeed_dir/$gmi_file" | cut -d- -f1,2,3) + + echo "=> ./$gmi_file $filename_date - $title" >> "$gemfeed_dir/index.gmi.tmp" + done + + mv "$gemfeed_dir/index.gmi.tmp" "$gemfeed_dir/index.gmi" + test "$ADD_GIT" == yes && git add "$gemfeed_dir/index.gmi" + + gemfeed::updatemainindex +} -- cgit v1.2.3 From 6aee04354e443e2121bf6c558be227388a10e7b2 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Mon, 17 May 2021 21:23:06 +0100 Subject: reword comments --- packages/gemfeed.source.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'packages/gemfeed.source.sh') diff --git a/packages/gemfeed.source.sh b/packages/gemfeed.source.sh index c68c507..182d6eb 100644 --- a/packages/gemfeed.source.sh +++ b/packages/gemfeed.source.sh @@ -1,4 +1,4 @@ -# Filters out blog posts from other files in the gemfeed dir. +# Filter out blog posts from other files in the gemfeed dir. gemfeed::get_posts () { local -r gemfeed_dir="$CONTENT_DIR/gemtext/gemfeed" local -r gmi_pattern='^[0-9]{4}-[0-9]{2}-[0-9]{2}-.*\.gmi$' @@ -7,7 +7,7 @@ gemfeed::get_posts () { ls "$gemfeed_dir" | grep -E "$gmi_pattern" | grep -E -v "$draft_pattern" | sort -r } -# Adds the links from gemfeed/index.gmi to the main index site. +# Add the links from gemfeed/index.gmi to the main index site. gemfeed::updatemainindex () { local -r index_gmi="$CONTENT_DIR/gemtext/index.gmi" local -r gemfeed_dir="$CONTENT_DIR/gemtext/gemfeed" @@ -23,7 +23,7 @@ gemfeed::updatemainindex () { test "$ADD_GIT" == yes && git add "$index_gmi" } -# This generates a index.gmi in the ./gemfeed subdir. +# Generate a index.gmi in the ./gemfeed subdir. gemfeed::generate () { local -r gemfeed_dir="$CONTENT_DIR/gemtext/gemfeed" log INFO "Generating Gemfeed index for $gemfeed_dir" -- cgit v1.2.3 From 641a95de7bdd64963666cca6b96387ab5d9245e2 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Wed, 19 May 2021 10:06:02 +0100 Subject: some refactoring and also ensured that it works on macOS (given Bash 5 is installed) --- packages/gemfeed.source.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'packages/gemfeed.source.sh') diff --git a/packages/gemfeed.source.sh b/packages/gemfeed.source.sh index 182d6eb..33ea0c8 100644 --- a/packages/gemfeed.source.sh +++ b/packages/gemfeed.source.sh @@ -4,7 +4,10 @@ gemfeed::get_posts () { local -r gmi_pattern='^[0-9]{4}-[0-9]{2}-[0-9]{2}-.*\.gmi$' local -r draft_pattern='\.draft\.gmi$' - ls "$gemfeed_dir" | grep -E "$gmi_pattern" | grep -E -v "$draft_pattern" | sort -r + ls "$gemfeed_dir" | + $GREP -E "$gmi_pattern" | + $GREP -E -v "$draft_pattern" | + sort -r } # Add the links from gemfeed/index.gmi to the main index site. -- cgit v1.2.3 From afd9fdf7ca0800c457959b540c4378d20f802dc0 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Wed, 19 May 2021 19:46:20 +0100 Subject: add git package --- packages/gemfeed.source.sh | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'packages/gemfeed.source.sh') diff --git a/packages/gemfeed.source.sh b/packages/gemfeed.source.sh index 33ea0c8..bc91eaf 100644 --- a/packages/gemfeed.source.sh +++ b/packages/gemfeed.source.sh @@ -1,6 +1,6 @@ # Filter out blog posts from other files in the gemfeed dir. gemfeed::get_posts () { - local -r gemfeed_dir="$CONTENT_DIR/gemtext/gemfeed" + local -r gemfeed_dir="$CONTENT_BASE_DIR/gemtext/gemfeed" local -r gmi_pattern='^[0-9]{4}-[0-9]{2}-[0-9]{2}-.*\.gmi$' local -r draft_pattern='\.draft\.gmi$' @@ -12,8 +12,8 @@ gemfeed::get_posts () { # Add the links from gemfeed/index.gmi to the main index site. gemfeed::updatemainindex () { - local -r index_gmi="$CONTENT_DIR/gemtext/index.gmi" - local -r gemfeed_dir="$CONTENT_DIR/gemtext/gemfeed" + local -r index_gmi="$CONTENT_BASE_DIR/gemtext/index.gmi" + local -r gemfeed_dir="$CONTENT_BASE_DIR/gemtext/gemfeed" log VERBOSE "Updating $index_gmi with posts from $gemfeed_dir" @@ -23,12 +23,12 @@ gemfeed::updatemainindex () { $SED -n '/^=> / { s| ./| ./gemfeed/|; p; }' "$gemfeed_dir/index.gmi" >> "$index_gmi.tmp" mv "$index_gmi.tmp" "$index_gmi" - test "$ADD_GIT" == yes && git add "$index_gmi" + test "$USE_GIT" == yes && git::add gemtext "$index_gmi" } # Generate a index.gmi in the ./gemfeed subdir. gemfeed::generate () { - local -r gemfeed_dir="$CONTENT_DIR/gemtext/gemfeed" + local -r gemfeed_dir="$CONTENT_BASE_DIR/gemtext/gemfeed" log INFO "Generating Gemfeed index for $gemfeed_dir" cat < "$gemfeed_dir/index.gmi.tmp" @@ -48,7 +48,7 @@ GEMFEED done mv "$gemfeed_dir/index.gmi.tmp" "$gemfeed_dir/index.gmi" - test "$ADD_GIT" == yes && git add "$gemfeed_dir/index.gmi" + test "$USE_GIT" == yes && git::add gemtext "$gemfeed_dir/index.gmi" gemfeed::updatemainindex } -- cgit v1.2.3 From 65f8a2497bad58619d0cfdc76e4a0efeb15e0306 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Thu, 20 May 2021 17:51:07 +0100 Subject: initial macos support --- packages/gemfeed.source.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'packages/gemfeed.source.sh') diff --git a/packages/gemfeed.source.sh b/packages/gemfeed.source.sh index bc91eaf..c842bb1 100644 --- a/packages/gemfeed.source.sh +++ b/packages/gemfeed.source.sh @@ -23,7 +23,7 @@ gemfeed::updatemainindex () { $SED -n '/^=> / { s| ./| ./gemfeed/|; p; }' "$gemfeed_dir/index.gmi" >> "$index_gmi.tmp" mv "$index_gmi.tmp" "$index_gmi" - test "$USE_GIT" == yes && git::add gemtext "$index_gmi" + git::add gemtext "$index_gmi" } # Generate a index.gmi in the ./gemfeed subdir. @@ -48,7 +48,7 @@ GEMFEED done mv "$gemfeed_dir/index.gmi.tmp" "$gemfeed_dir/index.gmi" - test "$USE_GIT" == yes && git::add gemtext "$gemfeed_dir/index.gmi" + git::add gemtext "$gemfeed_dir/index.gmi" gemfeed::updatemainindex } -- cgit v1.2.3