diff --git a/header.sh b/header.sh index d298d7e..e5d7bbb 100644 --- a/header.sh +++ b/header.sh @@ -4,8 +4,10 @@ # Copyright 2014, Xenese Labs/Sicron-Perion XNF #========================================================== +if [ -z "$HOME" ]; then HOME=/home/$(whoami); fi + PROD_STR="Simple Note System" VER_STR="v2.0a5" -ROOTDIR=$HOME/.config/sns +ROOTDIR="$HOME"/.config/sns BASEDIR="$ROOTDIR"/notes CONFIGURATION="$ROOTDIR/sns.conf" diff --git a/sns.sh b/sns.sh index 190b2c2..5045781 100755 --- a/sns.sh +++ b/sns.sh @@ -4,15 +4,17 @@ # Copyright 2014, Xenese Labs/Sicron-Perion XNF #========================================================== +if [ -z "$HOME" ]; then HOME=/home/$(whoami); fi + PROD_STR="Simple Note System" VER_STR="v2.0a5" -ROOTDIR=$HOME/.config/sns +ROOTDIR="$HOME"/.config/sns BASEDIR="$ROOTDIR"/notes CONFIGURATION="$ROOTDIR/sns.conf" # Section: Functions function w_conf { -if [ ! -r "$ROOTDIR" ]; then mkdir -p $ROOTDIR; fi +if [ ! -r "$ROOTDIR" ]; then mkdir -p "$ROOTDIR"; fi cat > "$CONFIGURATION" << EOF #========================================================== # Simple Note System Config, v2.0a5 @@ -54,11 +56,11 @@ function help { echo " -h | --help : Display this message" echo " -p | --print : Print note to console" echo " -l | --list : List all notes in NOTEBOOK" - echo " -w | --wconf : Write default configuration to ~/.sns (useful for Encryption)" + echo " -w | --wconf : Rewrite default configuration" echo "" } function p_header(){ - printf "TITLE: $NAME\nDATE: $(date)\n" + printf "TITLE: %s\nDATE: %s\n" "$NAME" "$(date)" } function encrypt(){ openssl enc -aes-256-cbc -salt -in "$TARGET" -out "$NOTE" -pass pass:"$ENC_KEY" @@ -95,7 +97,7 @@ function decrypt(){ #} function create(){ - if [ -e "$NOTE" -o -e ${NOTE%.*} ]; then + if [ -e "$NOTE" -o -e "${NOTE%.*}" ]; then printf "\nERROR: Note already exists\nHint: use -e to edit the note.\n" exit else @@ -103,22 +105,22 @@ function create(){ fi if [ -z "$ENCRYPTION" ]; then - echo "TITLE: $NAME" > $NOTE - echo "DATE: $(date)" >> $NOTE + echo "TITLE: $NAME" > "$NOTE" + echo "DATE: $(date)" >> "$NOTE" elif [ "$ENCRYPTION" == "TRUE" ]; then touch "$NOTE" - echo "$(p_header)" | openssl enc -aes-256-cbc -salt -out "$NOTE"\ - -pass pass:$ENC_KEY + p_header | openssl enc -aes-256-cbc -salt -out "$NOTE"\ + -pass pass:"$ENC_KEY" fi echo "$NOTE" } function delete(){ if [ "$DELETE" == "TRUE" ]; then - if [ -e $NOTE -o -e ${NOTE%.*} ]; then + if [ -e "$NOTE" -o -e "${NOTE%.*}" ]; then if [ "$ENCRYPTION" == "TRUE" ]; then - rm ${NOTE%.*} + rm "${NOTE%.*}" else - rm $NOTE + rm "$NOTE" fi echo "" echo "Deleted note: $NOTEBOOK/$SECTION$NAME." @@ -140,9 +142,7 @@ if [ "$ENCRYPTION" == "TRUE" ]; then decrypt else TARGET="$NOTE"; fi -if [ -z "$CREATE" ]; then printf "\nEDIT $(date)" >> "$TARGET"; fi - - +if [ -z "$CREATE" ]; then printf "\nEDIT %s" "$(date)" >> "$TARGET"; fi "$EDITOR" "$TARGET" @@ -153,13 +153,13 @@ if [ "$ENCRYPTION" == "TRUE" ]; then encrypt; fi } function print(){ if [ "$PRINT" == "TRUE" ]; then - if [ -r "$NOTE" -o -r ${NOTE%.*} ]; then + if [ -r "$NOTE" -o -r "${NOTE%.*}" ]; then if [ -z "$CREATE" ]; then if [ "$ENCRYPTION" == "TRUE" ]; then - openssl enc -d -aes-256-cbc -in ${NOTE%.*} -pass pass:$ENC_KEY + openssl enc -d -aes-256-cbc -in "${NOTE%.*}" -pass pass:"$ENC_KEY" else - cat $NOTE - echo "" >> $NOTE + cat "$NOTE" + echo "" >> "$NOTE" fi else echo "" @@ -172,23 +172,21 @@ function print(){ } function list(){ if [ -d "$BASEDIR"/"$NOTEBOOK" ]; then - echo "" - printf "Notes in $(basename $NOTEBOOK):" - echo "" + printf "\nNotes in %s:\n" "$(basename "$NOTEBOOK")" - NOTES=( $(find $BASEDIR/$NOTEBOOK -name "*.$EXT" -print0 | sed s:$BASEDIR/$NOTEBOOK/:" ":g | sed -e s:".$EXT"::g | tr "/" " ") ) + NOTES=( $(find "$BASEDIR"/"$NOTEBOOK" -name "*.$EXT" -print0 | sed s:"$BASEDIR"/"$NOTEBOOK"/: " " :g | sed -e s:".$EXT"::g | tr "/" " ") ) let i=0 - for NOTE in ${NOTES[@]}; do - if [ -d $BASEDIR/$NOTEBOOK/$NOTE ]; then + for NOTE in "${NOTES[@]}"; do + if [ -d "$BASEDIR"/"$NOTEBOOK"/"$NOTE" ]; then if [ "$LAST_SECTION" != "$NOTE" ]; then - printf " Section: $NOTE\n" + printf " Section: %s\n" "$NOTE" fi - LAST_SECTION=$NOTE + LAST_SECTION="$NOTE" else #if [ $(($i % 1)) -eq 0 ]; then # printf "\n " #fi - printf " $NOTE\n" + printf " %s\n" "$NOTE" fi let i++ done @@ -252,7 +250,7 @@ SECTION="" if [ -z "$1" ]; then help; exit 20 else ARGS=( "$@" ) - for ARG in ${ARGS[@]}; do + for ARG in "${ARGS[@]}"; do if [ "$ARG" = "-c" -o "$ARG" = "--create" ]; then CREATE="TRUE" elif [ "$ARG" = "-d" -o "$ARG" = "--delete" ]; then DELETE="TRUE" elif [ "$ARG" = "-e" -o "$ARG" = "--edit" ]; then EDIT="TRUE" @@ -262,9 +260,9 @@ else elif [ "$ARG" = "-h" -o "$ARG" == "--help" ]; then help; exit 0 elif [ "$ARG" = "-w" -o "$ARG" == "--wconf" ]; then w_conf; exit 0 else - if [ -z "$NAME" -a -n $ARG ]; then NAME="$ARG" - elif [ -z "$NOTEBOOK" -a -n $ARG ]; then NOTEBOOK="$ARG" - elif [ -z "$SECTION" -a -n $ARG ]; then SECTION="$ARG" + if [ -z "$NAME" -a -n "$ARG" ]; then NAME="$ARG" + elif [ -z "$NOTEBOOK" -a -n "$ARG" ]; then NOTEBOOK="$ARG" + elif [ -z "$SECTION" -a -n "$ARG" ]; then SECTION="$ARG" fi fi done diff --git a/src/includes/create.sns.sh b/src/includes/create.sns.sh index cedeaa9..bcec402 100644 --- a/src/includes/create.sns.sh +++ b/src/includes/create.sns.sh @@ -25,7 +25,7 @@ #} function create(){ - if [ -e "$NOTE" -o -e ${NOTE%.*} ]; then + if [ -e "$NOTE" -o -e "${NOTE%.*}" ]; then printf "\nERROR: Note already exists\nHint: use -e to edit the note.\n" exit else @@ -33,12 +33,12 @@ function create(){ fi if [ -z "$ENCRYPTION" ]; then - echo "TITLE: $NAME" > $NOTE - echo "DATE: $(date)" >> $NOTE + echo "TITLE: $NAME" > "$NOTE" + echo "DATE: $(date)" >> "$NOTE" elif [ "$ENCRYPTION" == "TRUE" ]; then touch "$NOTE" - echo "$(p_header)" | openssl enc -aes-256-cbc -salt -out "$NOTE"\ - -pass pass:$ENC_KEY + p_header | openssl enc -aes-256-cbc -salt -out "$NOTE"\ + -pass pass:"$ENC_KEY" fi echo "$NOTE" } diff --git a/src/includes/delete.sns.sh b/src/includes/delete.sns.sh index dafe3e7..25f3608 100644 --- a/src/includes/delete.sns.sh +++ b/src/includes/delete.sns.sh @@ -1,10 +1,10 @@ function delete(){ if [ "$DELETE" == "TRUE" ]; then - if [ -e $NOTE -o -e ${NOTE%.*} ]; then + if [ -e "$NOTE" -o -e "${NOTE%.*}" ]; then if [ "$ENCRYPTION" == "TRUE" ]; then - rm ${NOTE%.*} + rm "${NOTE%.*}" else - rm $NOTE + rm "$NOTE" fi echo "" echo "Deleted note: $NOTEBOOK/$SECTION$NAME." diff --git a/src/includes/edit.sns.sh b/src/includes/edit.sns.sh index a0c5477..e67afe4 100644 --- a/src/includes/edit.sns.sh +++ b/src/includes/edit.sns.sh @@ -8,9 +8,7 @@ if [ "$ENCRYPTION" == "TRUE" ]; then decrypt else TARGET="$NOTE"; fi -if [ -z "$CREATE" ]; then printf "\nEDIT $(date)" >> "$TARGET"; fi - - +if [ -z "$CREATE" ]; then printf "\nEDIT %s" "$(date)" >> "$TARGET"; fi "$EDITOR" "$TARGET" diff --git a/src/includes/list.sns.sh b/src/includes/list.sns.sh index 797a065..7bc95b9 100644 --- a/src/includes/list.sns.sh +++ b/src/includes/list.sns.sh @@ -1,22 +1,20 @@ function list(){ if [ -d "$BASEDIR"/"$NOTEBOOK" ]; then - echo "" - printf "Notes in $(basename $NOTEBOOK):" - echo "" + printf "\nNotes in %s:\n" "$(basename "$NOTEBOOK")" - NOTES=( $(find $BASEDIR/$NOTEBOOK -name "*.$EXT" -print0 | sed s:$BASEDIR/$NOTEBOOK/:" ":g | sed -e s:".$EXT"::g | tr "/" " ") ) + NOTES=( $(find "$BASEDIR"/"$NOTEBOOK" -name "*.$EXT" -print0 | sed s:"$BASEDIR"/"$NOTEBOOK"/: " " :g | sed -e s:".$EXT"::g | tr "/" " ") ) let i=0 - for NOTE in ${NOTES[@]}; do - if [ -d $BASEDIR/$NOTEBOOK/$NOTE ]; then + for NOTE in "${NOTES[@]}"; do + if [ -d "$BASEDIR"/"$NOTEBOOK"/"$NOTE" ]; then if [ "$LAST_SECTION" != "$NOTE" ]; then - printf " Section: $NOTE\n" + printf " Section: %s\n" "$NOTE" fi - LAST_SECTION=$NOTE + LAST_SECTION="$NOTE" else #if [ $(($i % 1)) -eq 0 ]; then # printf "\n " #fi - printf " $NOTE\n" + printf " %s\n" "$NOTE" fi let i++ done diff --git a/src/includes/p_header.sh b/src/includes/p_header.sh index 537085a..f3b1156 100644 --- a/src/includes/p_header.sh +++ b/src/includes/p_header.sh @@ -1,3 +1,3 @@ function p_header(){ - printf "TITLE: $NAME\nDATE: $(date)\n" + printf "TITLE: %s\nDATE: %s\n" "$NAME" "$(date)" } diff --git a/src/includes/print.sns.sh b/src/includes/print.sns.sh index c0a3aaf..4d99e02 100644 --- a/src/includes/print.sns.sh +++ b/src/includes/print.sns.sh @@ -1,12 +1,12 @@ function print(){ if [ "$PRINT" == "TRUE" ]; then - if [ -r "$NOTE" -o -r ${NOTE%.*} ]; then + if [ -r "$NOTE" -o -r "${NOTE%.*}" ]; then if [ -z "$CREATE" ]; then if [ "$ENCRYPTION" == "TRUE" ]; then - openssl enc -d -aes-256-cbc -in ${NOTE%.*} -pass pass:$ENC_KEY + openssl enc -d -aes-256-cbc -in "${NOTE%.*}" -pass pass:"$ENC_KEY" else - cat $NOTE - echo "" >> $NOTE + cat "$NOTE" + echo "" >> "$NOTE" fi else echo "" diff --git a/src/includes/w_conf.sns.sh b/src/includes/w_conf.sns.sh index 98917c0..5aadbb6 100644 --- a/src/includes/w_conf.sns.sh +++ b/src/includes/w_conf.sns.sh @@ -1,5 +1,5 @@ function w_conf { -if [ ! -r "$ROOTDIR" ]; then mkdir -p $ROOTDIR; fi +if [ ! -r "$ROOTDIR" ]; then mkdir -p "$ROOTDIR"; fi cat > "$CONFIGURATION" << EOF #========================================================== # Simple Note System Config, v2.0a5 diff --git a/src/main/stage2.sns.sh b/src/main/stage2.sns.sh index 5694d64..48f63fe 100644 --- a/src/main/stage2.sns.sh +++ b/src/main/stage2.sns.sh @@ -8,7 +8,7 @@ SECTION="" if [ -z "$1" ]; then help; exit 20 else ARGS=( "$@" ) - for ARG in ${ARGS[@]}; do + for ARG in "${ARGS[@]}"; do if [ "$ARG" = "-c" -o "$ARG" = "--create" ]; then CREATE="TRUE" elif [ "$ARG" = "-d" -o "$ARG" = "--delete" ]; then DELETE="TRUE" elif [ "$ARG" = "-e" -o "$ARG" = "--edit" ]; then EDIT="TRUE" @@ -18,9 +18,9 @@ else elif [ "$ARG" = "-h" -o "$ARG" == "--help" ]; then help; exit 0 elif [ "$ARG" = "-w" -o "$ARG" == "--wconf" ]; then w_conf; exit 0 else - if [ -z "$NAME" -a -n $ARG ]; then NAME="$ARG" - elif [ -z "$NOTEBOOK" -a -n $ARG ]; then NOTEBOOK="$ARG" - elif [ -z "$SECTION" -a -n $ARG ]; then SECTION="$ARG" + if [ -z "$NAME" -a -n "$ARG" ]; then NAME="$ARG" + elif [ -z "$NOTEBOOK" -a -n "$ARG" ]; then NOTEBOOK="$ARG" + elif [ -z "$SECTION" -a -n "$ARG" ]; then SECTION="$ARG" fi fi done @@ -34,7 +34,7 @@ else fi # Note: w_conf and help have highest priority, as they are the only functions -# that can work without any parameters. +# that can work without any arguments. #============================================================================== # End Section: Argument Parsing