From eb9cbcb1755771257e005eb86c1225113365fae8 Mon Sep 17 00:00:00 2001 From: Daniel Liu Date: Wed, 25 Nov 2020 23:39:13 -0500 Subject: [PATCH 1/1] bit of polish --- .gitignore | 4 +--- README.md | 6 ++++++ pb | 46 +++++++++++++++------------------------------- 3 files changed, 22 insertions(+), 34 deletions(-) diff --git a/.gitignore b/.gitignore index 2e999d8..4ddfdc4 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1 @@ -blog/drafts -blog/published -blog/html +blog/ diff --git a/README.md b/README.md index bed46c7..3afba86 100644 --- a/README.md +++ b/README.md @@ -25,6 +25,12 @@ Publishes a draft, which means that it takes the html snippet you wrote and shov ### d / delete Deletes an already published blog post, this does not delete your draft. +### b / backup +Simply copies all draft and published blog entries into the backup directory. + +### r / refresh (planned) +Used when you change the template file and want to keep all blog entries consistent. It deletes all html files and republishes them all. + # Configuration For more fine tuned configuration, navigate to the data\_dir directory that was created (by default it's blog/) and find the templates folder. These are the html snippets that get included in your index, rolling and rss files. diff --git a/pb b/pb index 3bc32e9..7905b54 100755 --- a/pb +++ b/pb @@ -1,14 +1,11 @@ #!/bin/sh - # pinosaur's blog script data_dir="blog" website_url="https://www.youtube.com/watch?v=oHg5SJYRHA0/" - blog_index_file="blogindex.html" rolling_file="rolling.html" rss_file="rss.xml" - blog_template="template.html" index_template="index_entry.html" rolling_template="rolling_entry.html" @@ -18,28 +15,22 @@ rss_template="rss_entry.html" init() { read -p "Initialize blog here? [y/n] " ask - [ "$ask" != "y" ] && exit 0 - - mkdir -p "$data_dir/drafts" "$data_dir/published" "$data_dir/html" "$data_dir/templates" + [ "$ask" != "y" ] && echo "Cancelled init" && exit 0 + mkdir -p "$data_dir/drafts" "$data_dir/published" "$data_dir/html" "$data_dir/templates" "$data_dir/backups" echo '

{{TITLE}}

' >> "$data_dir/templates/$index_template" echo -e '
\n

{{TITLE}}

\n

{{DATE}}

\n

{{BODY}}

\n
' >> "$data_dir/templates/$rolling_template" echo -e '\n{{TITLE}}\n\n<\description>\n<\item>' \ >> "$data_dir/templates/$rss_template" - echo "Created blog files" + echo "Successfully created blog files." } -refresh() { - - read -p "Are you sure you want to refresh? [y/n] " ask - [ "$ask" != "y" ] && echo "Aborting..." && exit 0 - - # delete everything between tokens (remove dupe code) - echo -e "$blog_index_file\n$rolling_file\n$rss_file" | xargs sed -i "//,//{//!{//!d}}" - - # deletes all html files and republishes all published files - echo "Successfully refreshed." +backup() { + backup_name=`mktemp --tmpdir="$data_dir/backups" -d "backup_$(date +'%b-%d')_XXX"` + echo "Creating backup, will be placed in $backup_name" + cp -r "$data_dir/drafts/" "$backup_name" + cp -r "$data_dir/published/" "$backup_name" } new() { @@ -61,7 +52,7 @@ sub() { } # $1 is directory -choose() { # working on abstraction +choose() { options=`ls -1 "$1" | sed 's/\.draft\.html$//;s/\.html$//'` [ -z "$options" ] && echo "No drafts to publish" && exit 0 echo "$options" | nl @@ -71,14 +62,13 @@ choose() { # working on abstraction } publish() { - choose "$data_dir/drafts" to_publish=${chosen%.draft.html} - cat $blog_template | sub "$to_publish" \ - > "$data_dir/html/$to_publish.html" + cat $blog_template | sub "$to_publish" > "$data_dir/html/$to_publish.html" - temp_index="$(mktemp)" # probably bad idea + # make this part less horrendous + temp_index="$(mktemp)" cat "$data_dir/templates/$index_template" | sub "$to_publish" >> $temp_index temp_rolling="$(mktemp)" cat "$data_dir/templates/$rolling_template" | sub "$to_publish" >> $temp_rolling @@ -91,9 +81,7 @@ publish() { sed -i "//r $temp_rss" "$rss_file" mv "$data_dir/drafts/$to_publish.draft.html" "$data_dir/published/" - echo "Successfully published $to_publish" - } delete() { @@ -112,17 +100,13 @@ delete() { # check to see if all required files are present [ -f $blog_index_file ] && [ -f $rolling_file ] && [ -f $blog_template ] && [ -f $rss_file ] || { echo "You are missing a file, please check that you have $blog_index_file, $template_file, $rolling_file and $rss_file in your home directory" && exit 1; } -# possibly also check to see if index and rolling have the proper headers - - # check if blog dir exists -[ ! -d $data_dir ] && init && exit +[ ! -d $data_dir ] && init && exit 0 case $1 in n|new) new "$2";; p|publish) publish;; d|delete) delete;; - r|refresh) refresh;; - h|*) echo "helper";; + b|backup) backup;; + h|*) echo -e "=-=-=-=-=-=-= Pb =-=-=-=-=-=-=\nAvailable commands:\nn - new blog post\np - publish existing blog post\nd - deletes published post\nb - creates a backup";; esac - -- 2.20.1