From 6a21731082bcd716236e477f06a5d192fbdf98ac Mon Sep 17 00:00:00 2001 From: Jon-William Lewis Date: Mon, 25 Jan 2016 17:20:05 -0600 Subject: [PATCH] Variable name reworking; laid foundation for GPG encryption (instead of OpenSSL) --- build.sh | 39 +++--- header.sh | 9 +- sns.sh | 127 ++++++++++++------ sns.xcodeproj/project.pbxproj | 4 +- src/includes/create.sns.sh | 2 +- .../{w_conf.sns.sh => create_sns_root.sns.sh} | 15 ++- src/includes/libencryption.sh | 16 ++- src/includes/list.sns.sh | 10 +- src/includes/pause.sns.sh | 2 +- src/main/stage1.sns.sh | 35 ++--- src/main/stage2.sns.sh | 6 +- src/main/stage3.sns.sh | 17 ++- 12 files changed, 180 insertions(+), 102 deletions(-) rename src/includes/{w_conf.sns.sh => create_sns_root.sns.sh} (68%) diff --git a/build.sh b/build.sh index a1f65a8..aad3dcc 100755 --- a/build.sh +++ b/build.sh @@ -1,20 +1,29 @@ S=sns.sh bash header.sh > "$S" -echo -e "\n# Section: Functions" >> "$S" -cat ./src/includes/w_conf.sns.sh >> "$S" -cat ./src/includes/pause.sns.sh >> "$S" -cat ./src/includes/help.sns.sh >> "$S" -cat ./src/includes/p_header.sh >> "$S" -cat ./src/includes/libencryption.sh >> "$S" -cat ./src/includes/create.sns.sh >> "$S" -cat ./src/includes/delete.sns.sh >> "$S" -cat ./src/includes/edit.sns.sh >> "$S" -cat ./src/includes/print.sns.sh >> "$S" -cat ./src/includes/list.sns.sh >> "$S" -echo -e "# End Section: Functions\n" >> "$S" -cat ./src/main/stage1.sns.sh >> "$S" -cat ./src/main/stage2.sns.sh >> "$S" -cat ./src/main/stage3.sns.sh >> "$S" +echo -e "\n# Section: Functions" >> "$S" +cat ./src/includes/create_sns_root.sns.sh >> "$S" +cat ./src/includes/pause.sns.sh >> "$S" +cat ./src/includes/help.sns.sh >> "$S" +cat ./src/includes/p_header.sh >> "$S" +cat ./src/includes/libencryption.sh >> "$S" +cat ./src/includes/create.sns.sh >> "$S" +cat ./src/includes/delete.sns.sh >> "$S" +cat ./src/includes/edit.sns.sh >> "$S" +cat ./src/includes/print.sns.sh >> "$S" +cat ./src/includes/list.sns.sh >> "$S" +printf "%s\n\n\n\n" "# End Section: Functions" >> "$S" + +printf "\n" >> "$S" +printf "%s\n" "###############################################################################" >> "$S" +printf "%s\n" "#==============================================================================" >> "$S" +printf "%s\n" "# Begin Main Program" >> "$S" +printf "%s\n" "#==============================================================================" >> "$S" +printf "%s\n" "###############################################################################" >> "$S" +printf "\n" >> "$S" + +cat ./src/main/stage1.sns.sh >> "$S" +cat ./src/main/stage2.sns.sh >> "$S" +cat ./src/main/stage3.sns.sh >> "$S" exit diff --git a/header.sh b/header.sh index 850669c..5a9d6da 100644 --- a/header.sh +++ b/header.sh @@ -13,9 +13,10 @@ cat << EOF if [ -z "\$HOME" ]; then HOME=/home/"\$(whoami)"; fi PROD_STR="$PROD_STR" -VER_STR="$VER_STR" -ROOTDIR="\$HOME"/.config/sns -BASEDIR="\$ROOTDIR"/notes -CONFIGURATION="\$ROOTDIR/sns.conf" +readonly VER_STR="$VER_STR" +readonly ROOT_DIR="\$HOME"/.config/xenlabs/sns +readonly BASE_DIR="\$ROOT_DIR"/notes +readonly TMP_DIR="\$ROOT_DIR"/tmp +readonly CONFIG_FILE="\$ROOT_DIR/sns.conf" EOF diff --git a/sns.sh b/sns.sh index 4bc5972..b4dac20 100755 --- a/sns.sh +++ b/sns.sh @@ -4,19 +4,24 @@ # Copyright 2014, Xenese Labs/Sicron-Perion XNF #========================================================== -if [ -z "/Users/xilmwa" ]; then HOME=/home/"$(whoami)"; fi +if [ -z "$HOME" ]; then HOME=/home/"$(whoami)"; fi PROD_STR="Simple Note System" -VER_STR="v2.0a5" -ROOTDIR="$HOME"/.config/sns -BASEDIR="$ROOTDIR"/notes -CONFIGURATION="$ROOTDIR/sns.conf" +readonly VER_STR="v2.0a5" +readonly ROOT_DIR="$HOME"/.config/xenlabs/sns +readonly BASE_DIR="$ROOT_DIR"/notes +readonly TMP_DIR="$ROOT_DIR"/tmp +readonly CONFIG_FILE="$ROOT_DIR/sns.conf" # Section: Functions function w_conf { -if [ ! -r "$ROOTDIR" ]; then mkdir -p "$ROOTDIR"; fi -cat > "$CONFIGURATION" << EOF + +if [ ! -r "$ROOT_DIR" ]; then mkdir -p "$ROOT_DIR"; fi +if [ ! -d "$TMP_DIR" ]; then mkdir -p "$TMP_DIR" ; fi + + +cat > "$CONFIG_FILE" << EOF #========================================================== # Simple Note System Config, v2.0a5 # Copyright 2014, Xenese Labs/Sicron-Perion XNF @@ -27,19 +32,22 @@ EXT=note #Preferred Editor if [ -z "$EDITOR" ]; then - EDITOR=vim + echo EDITOR=vim fi #Encryption #WARNING: ANY PREVIOUSLY UNENCRYPTED NOTES WILL BE LOST + +#ENCRYPTION="TRUE" ENCRYPTION="FALSE" -ENC_KEY="" + +PUBKEY="" EOF -chmod 600 "$CONFIGURATION" +chmod 600 "$CONFIG_FILE" } function pause { - read -p " Press [Enter] to continue." + read -rp " Press [Enter] to continue." echo "" } function help { @@ -64,19 +72,29 @@ function p_header(){ printf "TITLE: %s\nDATE: %s\n" "$NAME" "$(date)" } function encrypt(){ - openssl enc -aes-256-cbc -salt -in "$TARGET" -out "$NOTE" -pass pass:"$ENC_KEY" +# This function, given a recipient, $PUBKEY; a file to encrypt, $TARGET; and an +# output file, "$NOTE", will encrypt $TARGET to $NOTE against $PUBKEY's private +# GPG key. + +gpg -r "$PUBKEY" --encrypt-files "$TARGET" --output "$NOTE" + } function decrypt(){ - TARGET="$ROOTDIR"/tmp/"$RANDOM" - openssl enc -d -aes-256-cbc -in "$NOTE" -pass pass:"$ENC_KEY" > "$TARGET" +# This function, given a recipient, $PUBKEY; a file to decrypt, $TARGET; and an +# output file, "$NOTE", will decrpyt $TARGET to $NOTE against $PUBKEY's private +# GPG key. + + if [ ! -d "$ROOT_DIR"/tmp ]; then mkdir "$ROOT_DIR"/tmp; fi + TARGET="$TMP_DIR/$RANDOM" + gpg -d "$NOTE" > "$TARGET" } function create(){ if [ -e "$NOTE" ]; then printf "\nERROR: Note already exists\nHint: use -e to edit the note.\n" exit else - mkdir -p "$NOTEDIR" + mkdir -p "$NOTE_DIR" fi if [ -z "$ENCRYPTION" ]; then @@ -119,7 +137,7 @@ else TARGET="$NOTE"; fi if [ -z "$CREATE" ]; then printf "\nEDIT %s" "$(date)" >> "$TARGET"; fi -"$EDITOR" "$TARGET" +echo "$EDITOR" "$TARGET" if [ "$ENCRYPTION" == "TRUE" ]; then encrypt; fi @@ -146,13 +164,17 @@ function print(){ fi } function list(){ - if [ -d "$BASEDIR"/"$NOTEBOOK" ]; then + if [ -d "$BASE_DIR"/"$NOTEBOOK" ]; then 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 "$BASE_DIR"/"$NOTEBOOK" -name "*.$EXT" -print0 |\ + sed s:"$BASE_DIR"/"$NOTEBOOK"/: " " :g |\ + sed -e s:".$EXT"::g | tr "/" " ") + ) let i=0 for NOTE in "${NOTES[@]}"; do - if [ -d "$BASEDIR"/"$NOTEBOOK"/"$NOTE" ]; then + if [ -d "$BASE_DIR"/"$NOTEBOOK"/"$NOTE" ]; then if [ "$LAST_SECTION" != "$NOTE" ]; then printf " Section: %s\n" "$NOTE" fi @@ -174,33 +196,45 @@ function list(){ } # End Section: Functions + + + +############################################################################### #============================================================================== -# Section: Configuration +# Begin Main Program #============================================================================== -if [ -r "$CONFIGURATION" ]; then - source "$CONFIGURATION" +############################################################################### + +#============================================================================== +# Section: Configuration / Stage 1 +#============================================================================== +if [ -r "$CONFIG_FILE" ]; then + source "$CONFIG_FILE" else - w_conf - source "$CONFIGURATION" + create_sns_root + source "$CONFIG_FILE" fi if [ "$ENCRYPTION" == "TRUE" ]; then -if [ -z "$ENC_KEY" ]; then -ERR_NO_KEY="TRUE" -ENCRYPTION="FALSE" -fi -command -v openssl >/dev/null 2>&1 || { ERR_NO_SSL="TRUE"; ENCRYPTION="FALSE"; } + if [ -z "$PUBKEY" ]; then + ERR_NO_KEY="TRUE" + ENCRYPTION="FALSE" + fi + + command -v openssl >/dev/null 2>&1 ||\ + { ERR_NO_SSL="TRUE"; ENCRYPTION="FALSE"; } fi if [ "$ENCRYPTION" == "TRUE" ]; then -PROD_STR="Simple Note System (Encryption Enabled)" -EXT="$EXT" -if [ ! -d "$BASEDIR"/tmp ]; then -mkdir -p "$BASEDIR"/tmp -fi + PROD_STR="Simple Note System (Encryption Enabled)" + EXT="$EXT".gpg + if [ ! -d "$BASE_DIR"/tmp ]; then + mkdir -p "$BASE_DIR"/tmp + fi fi echo "$PROD_STR, $VER_STR" + if [ -n "$ERR_NO_SSL" ]; then echo >&2 " Warning: OpenSSL not installed. Encryption disabled." fi @@ -213,10 +247,10 @@ pause fi #============================================================================== -# End Section: Configuration +# End Section: Configuration / Stage 1 #============================================================================== #============================================================================== -# Section: Argument Parsing +# Section: Argument Parsing / Stage 2 #============================================================================== NAME="" @@ -233,7 +267,7 @@ else elif [ "$ARG" = "-p" ] || [ "$ARG" = "--print" ]; then PRINT="TRUE" elif [ "$ARG" = "-l" ] || [ "$ARG" = "--list" ]; then LIST="TRUE" elif [ "$ARG" = "-h" ] || [ "$ARG" == "--help" ]; then help; exit 0 - elif [ "$ARG" = "-w" ] || [ "$ARG" == "--wconf" ]; then w_conf; exit 0 + elif [ "$ARG" = "-w" ] || [ "$ARG" == "--wconf" ]; then create_sns_root; exit 0 else if [ -z "$NAME" ] && [ -n "$ARG" ]; then NAME="$ARG" elif [ -z "$NOTEBOOK" ] && [ -n "$ARG" ]; then NOTEBOOK="$ARG" @@ -254,11 +288,11 @@ fi # that can work without any arguments. #============================================================================== -# End Section: Argument Parsing +# End Section: Argument Parsing / Stage 2 +#============================================================================== +#============================================================================== +# Section: Actions / Stage 3 #============================================================================== -# Help requires no arguments, and is exclusive. -if [ -n "$HELP" ]; then help; exit 0; fi - # List only requires a notebook, and is exclusive. if [ -z "$NOTEBOOK" ]; then echo " ERROR: Insufficient arguments:" @@ -279,11 +313,16 @@ if [ -z "$NAME" ]; then exit 30 fi -NOTEDIR="$BASEDIR"/"$NOTEBOOK"/"$SECTION"/ -NOTE="$NOTEDIR""$NAME"."$EXT" +SESSION_ID="$RANDOM" +NOTE_DIR="$BASE_DIR"/"$NOTEBOOK"/"$SECTION"/ +NOTE="$NOTE_DIR""$NAME"."$EXT" if [ "$ENCRYPTION" == "TRUE" ]; then NOTE="$NOTE".enc; fi if [ "$PRINT" == "TRUE" ]; then print; exit 0; fi if [ "$DELETE" == "TRUE" ]; then delete; exit 0; fi if [ "$CREATE" == "TRUE" ]; then create; fi -if [ "$EDIT" == "TRUE" ]; then edit; fi \ No newline at end of file +if [ "$EDIT" == "TRUE" ]; then edit; fi + +#============================================================================== +# End Section: Actions / Stage 3 +#============================================================================== \ No newline at end of file diff --git a/sns.xcodeproj/project.pbxproj b/sns.xcodeproj/project.pbxproj index c70fecd..5eb29b4 100644 --- a/sns.xcodeproj/project.pbxproj +++ b/sns.xcodeproj/project.pbxproj @@ -15,7 +15,7 @@ 5D22D6A81AFC4F5A0036DC52 /* p_header.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = p_header.sh; sourceTree = ""; }; 5D22D6A91AFC4F5A0036DC52 /* pause.sns.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = pause.sns.sh; sourceTree = ""; }; 5D22D6AA1AFC4F5A0036DC52 /* print.sns.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = print.sns.sh; sourceTree = ""; }; - 5D22D6AB1AFC4F5A0036DC52 /* w_conf.sns.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = w_conf.sns.sh; sourceTree = ""; }; + 5D22D6AB1AFC4F5A0036DC52 /* create_sns_root.sns.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = create_sns_root.sns.sh; sourceTree = ""; }; 5D22D6AD1AFC4F5A0036DC52 /* stage1.sns.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = stage1.sns.sh; sourceTree = ""; }; 5D22D6AE1AFC4F5A0036DC52 /* stage2.sns.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = stage2.sns.sh; sourceTree = ""; }; 5D22D6AF1AFC4F5A0036DC52 /* stage3.sns.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = stage3.sns.sh; sourceTree = ""; }; @@ -47,7 +47,7 @@ 5D22D6A81AFC4F5A0036DC52 /* p_header.sh */, 5D22D6A91AFC4F5A0036DC52 /* pause.sns.sh */, 5D22D6AA1AFC4F5A0036DC52 /* print.sns.sh */, - 5D22D6AB1AFC4F5A0036DC52 /* w_conf.sns.sh */, + 5D22D6AB1AFC4F5A0036DC52 /* create_sns_root.sns.sh */, 5D22D6B01AFC5B100036DC52 /* libencryption.sh */, ); path = includes; diff --git a/src/includes/create.sns.sh b/src/includes/create.sns.sh index e4a9fbc..29fddc0 100644 --- a/src/includes/create.sns.sh +++ b/src/includes/create.sns.sh @@ -3,7 +3,7 @@ function create(){ printf "\nERROR: Note already exists\nHint: use -e to edit the note.\n" exit else - mkdir -p "$NOTEDIR" + mkdir -p "$NOTE_DIR" fi if [ -z "$ENCRYPTION" ]; then diff --git a/src/includes/w_conf.sns.sh b/src/includes/create_sns_root.sns.sh similarity index 68% rename from src/includes/w_conf.sns.sh rename to src/includes/create_sns_root.sns.sh index 5aadbb6..5e1b5ad 100644 --- a/src/includes/w_conf.sns.sh +++ b/src/includes/create_sns_root.sns.sh @@ -1,6 +1,10 @@ function w_conf { -if [ ! -r "$ROOTDIR" ]; then mkdir -p "$ROOTDIR"; fi -cat > "$CONFIGURATION" << EOF + +if [ ! -r "$ROOT_DIR" ]; then mkdir -p "$ROOT_DIR"; fi +if [ ! -d "$TMP_DIR" ]; then mkdir -p "$TMP_DIR" ; fi + + +cat > "$CONFIG_FILE" << EOF #========================================================== # Simple Note System Config, v2.0a5 # Copyright 2014, Xenese Labs/Sicron-Perion XNF @@ -16,9 +20,12 @@ fi #Encryption #WARNING: ANY PREVIOUSLY UNENCRYPTED NOTES WILL BE LOST + +#ENCRYPTION="TRUE" ENCRYPTION="FALSE" -ENC_KEY="" + +PUBKEY="" EOF -chmod 600 "$CONFIGURATION" +chmod 600 "$CONFIG_FILE" } diff --git a/src/includes/libencryption.sh b/src/includes/libencryption.sh index 392bf8d..ed2215f 100644 --- a/src/includes/libencryption.sh +++ b/src/includes/libencryption.sh @@ -1,8 +1,18 @@ function encrypt(){ - openssl enc -aes-256-cbc -salt -in "$TARGET" -out "$NOTE" -pass pass:"$ENC_KEY" +# This function, given a recipient, $PUBKEY; a file to encrypt, $TARGET; and an +# output file, "$NOTE", will encrypt $TARGET to $NOTE against $PUBKEY's private +# GPG key. + +gpg -r "$PUBKEY" --encrypt-files "$TARGET" --output "$NOTE" + } function decrypt(){ - TARGET="$ROOTDIR"/tmp/"$RANDOM" - openssl enc -d -aes-256-cbc -in "$NOTE" -pass pass:"$ENC_KEY" > "$TARGET" +# This function, given a recipient, $PUBKEY; a file to decrypt, $TARGET; and an +# output file, "$NOTE", will decrpyt $TARGET to $NOTE against $PUBKEY's private +# GPG key. + + if [ ! -d "$ROOT_DIR"/tmp ]; then mkdir "$ROOT_DIR"/tmp; fi + TARGET="$TMP_DIR/$RANDOM" + gpg -d "$NOTE" > "$TARGET" } diff --git a/src/includes/list.sns.sh b/src/includes/list.sns.sh index 7bc95b9..3224a0c 100644 --- a/src/includes/list.sns.sh +++ b/src/includes/list.sns.sh @@ -1,11 +1,15 @@ function list(){ - if [ -d "$BASEDIR"/"$NOTEBOOK" ]; then + if [ -d "$BASE_DIR"/"$NOTEBOOK" ]; then 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 "$BASE_DIR"/"$NOTEBOOK" -name "*.$EXT" -print0 |\ + sed s:"$BASE_DIR"/"$NOTEBOOK"/: " " :g |\ + sed -e s:".$EXT"::g | tr "/" " ") + ) let i=0 for NOTE in "${NOTES[@]}"; do - if [ -d "$BASEDIR"/"$NOTEBOOK"/"$NOTE" ]; then + if [ -d "$BASE_DIR"/"$NOTEBOOK"/"$NOTE" ]; then if [ "$LAST_SECTION" != "$NOTE" ]; then printf " Section: %s\n" "$NOTE" fi diff --git a/src/includes/pause.sns.sh b/src/includes/pause.sns.sh index 5884408..ace9b99 100644 --- a/src/includes/pause.sns.sh +++ b/src/includes/pause.sns.sh @@ -1,4 +1,4 @@ function pause { - read -p " Press [Enter] to continue." + read -rp " Press [Enter] to continue." echo "" } diff --git a/src/main/stage1.sns.sh b/src/main/stage1.sns.sh index 45ea735..06d1b2f 100644 --- a/src/main/stage1.sns.sh +++ b/src/main/stage1.sns.sh @@ -1,30 +1,33 @@ #============================================================================== -# Section: Configuration +# Section: Configuration / Stage 1 #============================================================================== -if [ -r "$CONFIGURATION" ]; then - source "$CONFIGURATION" +if [ -r "$CONFIG_FILE" ]; then + source "$CONFIG_FILE" else - w_conf - source "$CONFIGURATION" + create_sns_root + source "$CONFIG_FILE" fi if [ "$ENCRYPTION" == "TRUE" ]; then -if [ -z "$ENC_KEY" ]; then -ERR_NO_KEY="TRUE" -ENCRYPTION="FALSE" -fi -command -v openssl >/dev/null 2>&1 || { ERR_NO_SSL="TRUE"; ENCRYPTION="FALSE"; } + if [ -z "$PUBKEY" ]; then + ERR_NO_KEY="TRUE" + ENCRYPTION="FALSE" + fi + + command -v openssl >/dev/null 2>&1 ||\ + { ERR_NO_SSL="TRUE"; ENCRYPTION="FALSE"; } fi if [ "$ENCRYPTION" == "TRUE" ]; then -PROD_STR="Simple Note System (Encryption Enabled)" -EXT="$EXT" -if [ ! -d "$BASEDIR"/tmp ]; then -mkdir -p "$BASEDIR"/tmp -fi + PROD_STR="Simple Note System (Encryption Enabled)" + EXT="$EXT".gpg + if [ ! -d "$BASE_DIR"/tmp ]; then + mkdir -p "$BASE_DIR"/tmp + fi fi echo "$PROD_STR, $VER_STR" + if [ -n "$ERR_NO_SSL" ]; then echo >&2 " Warning: OpenSSL not installed. Encryption disabled." fi @@ -37,5 +40,5 @@ pause fi #============================================================================== -# End Section: Configuration +# End Section: Configuration / Stage 1 #============================================================================== diff --git a/src/main/stage2.sns.sh b/src/main/stage2.sns.sh index debc0fa..97c0392 100644 --- a/src/main/stage2.sns.sh +++ b/src/main/stage2.sns.sh @@ -1,5 +1,5 @@ #============================================================================== -# Section: Argument Parsing +# Section: Argument Parsing / Stage 2 #============================================================================== NAME="" @@ -16,7 +16,7 @@ else elif [ "$ARG" = "-p" ] || [ "$ARG" = "--print" ]; then PRINT="TRUE" elif [ "$ARG" = "-l" ] || [ "$ARG" = "--list" ]; then LIST="TRUE" elif [ "$ARG" = "-h" ] || [ "$ARG" == "--help" ]; then help; exit 0 - elif [ "$ARG" = "-w" ] || [ "$ARG" == "--wconf" ]; then w_conf; exit 0 + elif [ "$ARG" = "-w" ] || [ "$ARG" == "--wconf" ]; then create_sns_root; exit 0 else if [ -z "$NAME" ] && [ -n "$ARG" ]; then NAME="$ARG" elif [ -z "$NOTEBOOK" ] && [ -n "$ARG" ]; then NOTEBOOK="$ARG" @@ -37,5 +37,5 @@ fi # that can work without any arguments. #============================================================================== -# End Section: Argument Parsing +# End Section: Argument Parsing / Stage 2 #============================================================================== diff --git a/src/main/stage3.sns.sh b/src/main/stage3.sns.sh index 955713f..6c640ff 100644 --- a/src/main/stage3.sns.sh +++ b/src/main/stage3.sns.sh @@ -1,6 +1,6 @@ -# Help requires no arguments, and is exclusive. -if [ -n "$HELP" ]; then help; exit 0; fi - +#============================================================================== +# Section: Actions / Stage 3 +#============================================================================== # List only requires a notebook, and is exclusive. if [ -z "$NOTEBOOK" ]; then echo " ERROR: Insufficient arguments:" @@ -21,11 +21,16 @@ if [ -z "$NAME" ]; then exit 30 fi -NOTEDIR="$BASEDIR"/"$NOTEBOOK"/"$SECTION"/ -NOTE="$NOTEDIR""$NAME"."$EXT" +SESSION_ID="$RANDOM" +NOTE_DIR="$BASE_DIR"/"$NOTEBOOK"/"$SECTION"/ +NOTE="$NOTE_DIR""$NAME"."$EXT" if [ "$ENCRYPTION" == "TRUE" ]; then NOTE="$NOTE".enc; fi if [ "$PRINT" == "TRUE" ]; then print; exit 0; fi if [ "$DELETE" == "TRUE" ]; then delete; exit 0; fi if [ "$CREATE" == "TRUE" ]; then create; fi -if [ "$EDIT" == "TRUE" ]; then edit; fi \ No newline at end of file +if [ "$EDIT" == "TRUE" ]; then edit; fi + +#============================================================================== +# End Section: Actions / Stage 3 +#============================================================================== \ No newline at end of file