improve code-style: test, return error code in pageread and use it - static-site-scripts - static site generator shellscripts
 (HTM) git clone git://git.codemadness.org/static-site-scripts
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit d6b165007856597822d71ceaffa3d1f2e20e670a
 (DIR) parent 86117ef5bceb1de3cb6b394de263a422bc48fbd3
 (HTM) Author: Hiltjo Posthuma <hiltjo@codemadness.org>
       Date:   Wed,  9 Mar 2016 22:01:41 +0100
       
       improve code-style: test, return error code in pageread and use it
       
       Diffstat:
         M generate.sh                         |      26 +++++++++++++-------------
       
       1 file changed, 13 insertions(+), 13 deletions(-)
       ---
 (DIR) diff --git a/generate.sh b/generate.sh
       @@ -74,38 +74,38 @@ pageread() {
                dateupdated=$(printf '%s' "${timeupdated}" | cut -b 1-10)
        
                # if ${id} is empty and title is set: create id based on title.
       -        if [ x"${id}" = x"" ] && [ ! x"${title}" = x"" ]; then
       +        if test -z "${id}" && test -n "${title}"; then
                        id=$(makeid "${title}")
                fi
       -        if [ x"${id}" = x"" ]; then
       +        if test -z "${id}"; then
                        printf 'Warning: $id or $title not set in "%s", skipping...\n' "${meta}" >&2
       -                return
       +                return 1
                fi
       -        if [ x"${url}" = x"" ]; then
       +        if test -z "${url}"; then
                        url="${id}.html"
                fi
                outfile="${id}.html"
                urlfull="${siteurlfull}/${outfile}"
                filename=""
                # ${content} not set; try data from filetypes.
       -        if [ x"${content}" = x"" ]; then
       -                if [ -f "${pagesdir}/${basename}.html" ]; then
       +        if test -z "${content}"; then
       +                if test -f "${pagesdir}/${basename}.html"; then
                                filename="${pagesdir}/${basename}.html"
                                content=$(cat "${filename}")
       -                elif [ -f "${pagesdir}/${basename}.md" ]; then
       +                elif test -f "${pagesdir}/${basename}.md"; then
                                filename="${pagesdir}/${basename}.md"
                                content=$("${markdown}" "${filename}")
                        fi
                fi
                created="<strong>Created on:</strong> ${datecreated}<br/>"
       -        if [ ! x"${datecreated}" = x"${dateupdated}" ]; then
       +        if test "${datecreated}" != "${dateupdated}"; then
                        created="${created}<strong>Last update on:</strong> ${dateupdated}<br/>"
                fi
        }
        
        pageheader() {
                # prefix page title with site title, make sure its neatly formatted.
       -        if [ x"${title}" = x"" ]; then
       +        if test -z "${title}"; then
                        pagetitle="${sitetitle}"
                else
                        pagetitle="${title} - ${sitetitle}"
       @@ -168,15 +168,15 @@ pagefooter() {
        !__EOF__
        }
        
       -if [ ! -d "${pagesdir}" ]; then
       +if ! test -d "${pagesdir}"; then
                printf 'Error: pages directory "%s" not found.\n' "${pagesdir}" >&2
                exit 1
        fi
        
        # process single page as argument (handy for testing a single page).
       -if [ ! x"$1" = x"" ]; then
       +if test -n "$1"; then
                pagereset
       -        pageread "$1"
       +        pageread "$1" || exit 1
                pagecontent
                exit 0
        fi
       @@ -193,7 +193,7 @@ contentatom=""
        contentsitemap=""
        while read -r meta; do
                pagereset
       -        pageread "${meta}"
       +        pageread "${meta}" || continue
                pagecontent > "${outputdir}/${outfile}"
        
                # index / posts item: append.