split code into smaller functions

This commit is contained in:
James Dixon 2020-05-27 17:26:00 -04:00
parent d00018a25d
commit 54ab6805b5

View File

@ -2,36 +2,40 @@
# hugoctl -- hugo wrapper script to help manage a hugo blog # hugoctl -- hugo wrapper script to help manage a hugo blog
# hugo variables (local machine)
scriptname=$(basename "$0") scriptname=$(basename "$0")
post_filename="$postname.md" blog_dir="$HOME/src/blog" # or the path to your blog
blog_dir="$HOME/src/blog" local_url="http://localhost:1313/posts/"
local_url="http://localhost:1313/posts/$postname" post_filename=""
postname=""
new-post() { # deployment variables
postname=""
if [ -z "$1" ]; then set_names() {
echo -n "Please enter a postname: " local arg="$1"
read -r postname if [[ ! "$arg" =~ .md$ ]]; then
postname="$arg"
else else
postname="$1" postname="${arg%???}"
fi fi
post_filename="$postname.md"
}
hugo new -s "$blog_dir" "posts/$post_filename" serve_and_open() {
hugo serve -s "$blog_dir" -D &> /dev/null & killall hugo > /dev/null 2>&1
xdg-open "$local_url" &> /dev/null & hugo serve -s "$blog_dir" -D > /dev/null 2>&1 &
xdg-open "http://localhost:1313/posts/$postname"
echo "Don't forget to \"killall hugo\" when finished"
}
edit_post() {
serve_and_open
$EDITOR "$blog_dir/content/posts/$post_filename" && kill %1 $EDITOR "$blog_dir/content/posts/$post_filename" && kill %1
} }
edit-post() { new_post() {
filename="$1" hugo new -s "$blog_dir" "posts/$post_filename"
if [[ ! "$filename" =~ .md$ ]]; then edit_post
filename="$filename.md"
fi
postname="${filename%???}"
hugo serve -s "$blog_dir" &> /dev/null &
xdg-open "http://localhost:1313/posts/$postname"
$EDITOR "$blog_dir/content/posts/$filename"
} }
deploy_blog() { deploy_blog() {
@ -45,9 +49,9 @@ print_help() {
printf "%s\n" "Options: " printf "%s\n" "Options: "
printf "\t%s:\n\t\t%s\n\n" "new-post (aliases: newpost,np,new,n) [post-name]" "create a new post, open editor and live server" printf "\t%s:\n\t\t%s\n\n" "new-post (aliases: newpost,np,new,n) [post-name]" "create a new post, open editor and live server"
printf "\t%s:\n\t\t%s\n\n" "edit-post (alises: edit,ep,e) [post-name]" "edit a post in the content directory"
printf "\t%s:\n\t\t%s\n\n" "list-post (aliases: list,lp,ls,l)" "list all posts in content directory" printf "\t%s:\n\t\t%s\n\n" "list-post (aliases: list,lp,ls,l)" "list all posts in content directory"
printf "\t%s:\n\t\t%s\n\n" "list-drafts (alises: listdraft,ld)" "list all posts in content directory" printf "\t%s:\n\t\t%s\n\n" "list-drafts (alises: listdraft,ld)" "list all posts in content directory"
printf "\t%s:\n\t\t%s\n\n" "edit-post (alises: edit,ep,e) [post-name]" "edit a post in the content directory"
printf "\t%s:\n\t\t%s\n\n" "server (alises: serve,s)" "serve blog from your blog directory" printf "\t%s:\n\t\t%s\n\n" "server (alises: serve,s)" "serve blog from your blog directory"
printf "\t%s:\n\t\t%s\n\n" "kill (alises: killlall,ka,k)" "kill all hugo processes" printf "\t%s:\n\t\t%s\n\n" "kill (alises: killlall,ka,k)" "kill all hugo processes"
printf "\t%s:\n\t\t%s\n\n" "deploy (aliases: dep,d)" "deploy to a remote server" printf "\t%s:\n\t\t%s\n\n" "deploy (aliases: dep,d)" "deploy to a remote server"
@ -63,7 +67,14 @@ while (($#)); do
case "$1" in case "$1" in
new-post|newpost|np|new|n) new-post|newpost|np|new|n)
shift shift
new-post "$1" set_names "$1"
new_post "$1"
break
;;
edit-post|edit|ep|e)
shift
set_names "$1"
edit_post "$1"
break break
;; ;;
list-post|list|lp|l|ls) list-post|list|lp|l|ls)
@ -74,19 +85,12 @@ while (($#)); do
hugo list drafts -s "$blog_dir" hugo list drafts -s "$blog_dir"
break break
;; ;;
edit-post|edit|ep|e)
shift
edit-post "$1"
break
;;
server|serve|s) server|serve|s)
pkill "hugo" serve_and_open
hugo serve -s "$blog_dir" -D &
xdg-open "http://localhost:1313"
break break
;; ;;
kill|killall|ka|k) kill|killall|ka|k)
pkill "hugo" killall "hugo"
break break
;; ;;
deploy|dep|d) deploy|dep|d)