Silence output and add verbosity flag

There are two levels of verbosity: -v and -vv. The first prints out
command feedback where sbs would normally not print out anything and the
latter prints out each file as it is being built by the build
subcommand.

sbs has been modified to be silent by default as a result.
This commit is contained in:
Jake Bauer 2023-03-08 19:11:05 -05:00
parent 197b62fd34
commit e132234c2e
2 changed files with 49 additions and 8 deletions

47
sbs
View File

@ -40,13 +40,17 @@ new()
{ printf "Title: \nSummary: \n\n"
printf "# [%%title]\n\n"
} > "$3"
printf "Created: %s\n" "$3"
if [ "$verbosity" -gt 0 ]; then
printf "Created: %s\n" "$3"
fi
elif [ "$2" = "post" ]; then
{ printf "Title: \nAuthor: \nDate: \nSummary: \n\n"
printf "# [%%title]\n\n"
printf "**Author:** [%%author] | **Published:** [%%date]\n\n"
} > "$3"
printf "Created: %s\n" "$3"
if [ "$verbosity" -gt 0 ]; then
printf "Created: %s\n" "$3"
fi
elif [ "$2" = "site" ]; then
mkdir "$3" "$3/content/" "$3/static/" "$3/templates/"
# Create config.ini
@ -89,7 +93,9 @@ new()
printf "\tmax-width: 100%%;\n"
printf "}\n"
} > "$3/static/style.css"
printf "Created: %s\n" "$3"
if [ "$verbosity" -gt 0 ]; then
printf "Created: %s\n" "$3"
fi
else
printf "Subcommand '%s' not recognized. See sbs(1) for documentation.\n" "$2"
exit 1
@ -160,7 +166,9 @@ genfeed()
numEntries="$(wc -l "$tmp" | cut -d' ' -f1)"
printf '</feed>\n' >> static/feed.xml
printf "Created: static/feed.xml with %s entries.\n" "$numEntries"
if [ "$verbosity" -gt 0 ]; then
printf "Created: static/feed.xml with %s entries.\n" "$numEntries"
fi
rm "$tmp"
exit 0
}
@ -190,7 +198,9 @@ build()
subDir=$(dirname "$file" | sed "s/.*\/content//")
mkdir -p "static/$subDir"
printf "Creating: static%s/%s.html...\n" "$subDir" "$fileName"
if [ "$verbosity" -gt 1 ]; then
printf "Creating: static%s/%s.html...\n" "$subDir" "$fileName"
fi
# Extract metadata from markdown doc (if not converted from gmi)
title=${title:-$(lowdown -X title "$file")}
@ -209,6 +219,7 @@ build()
-e "s/lang=\"\"/lang=\"$languageCode\"/" \
-e "s/content=\"\"/content=\"$description\"/" \
> "static/$subDir/$fileName".html
count=$(($count + 1))
done
}
@ -252,6 +263,21 @@ walk_back()
fi
}
verbosity=0
if [ "$#" -gt 1 ]; then
case "$1" in
"-v" )
verbosity=1
shift
;;
"-v"* )
verbosity=2
shift
;;
esac
fi
if [ "$#" -lt 1 ]; then
echo "Please provide a command. See sbs(1) for documentation."
exit 1
@ -264,15 +290,20 @@ case "$1" in
cwd="$(pwd)"
walk_back
parse_configuration
mkdir -p /tmp/sbs/
# Allows simply running "sbs build" without path(s)
count=0
start_s=$(date +%s)
if [ $# -eq 0 ]; then
cwd=""
build ./content/*
else
build "$@"
fi
rm -rf /tmp/sbs/
end_s=$(date +%s)
if [ "$verbosity" -gt 0 ]; then
printf "Built %d files in %d seconds.\n" \
$count "$(($end_s - $start_s))"
fi
;;
"genfeed")
walk_back
@ -291,7 +322,7 @@ case "$1" in
echo "v1.0.0" ;
;;
*)
echo "Usage: sbs <command> [FILE ...]"
echo "Unknown command. See sbs(1) for documentation."
;;
esac

10
sbs.1
View File

@ -6,6 +6,7 @@
.Nd A simple blogging system
.Sh SYNOPSIS
.Nm sbs
.Op Fl v
.Cm command
.Sh DESCRIPTION
.Nm
@ -15,6 +16,15 @@ Markdown files into HTML using
.Xr lowdown 1
with some additional processing and capabilities.
.Pp
Arguments are as follows:
.Bl -tag -width Ds
.It Fl v
Increase verbosity.
Specify once for command feedback and twice to see each file being built by the
.Cm build
subcommand.
.El
.Pp
Commands are as follows:
.Bl -tag -width Ds
.It Cm build Ar