From e476089c934e9dce5162ae9849154400b698936e Mon Sep 17 00:00:00 2001 From: Daniel Liu Date: Thu, 19 Nov 2020 00:04:50 -0500 Subject: [PATCH] some input sanitizing --- README.md | 1 + pb | 23 ++++++++++++++++------- 2 files changed, 17 insertions(+), 7 deletions(-) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..1de04b0 --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +All you really need is just the pb file, the others are there for demonstration purposes, you can just download that file by itself if you don't want the extra garbage. diff --git a/pb b/pb index ef4799c..2de68b0 100755 --- a/pb +++ b/pb @@ -15,22 +15,31 @@ init() { echo 1 } -purge() { +refresh() { echo 1 # add a confirmation of sorts here } new() { - [ -z $1 ] && echo "please supply a name" && exit 1 + [ -z "$1" ] && echo "please supply a name" && exit 1 - # do some sed stuff here - cp $template_file "$data_dir/drafts/$1" + # sanitize input + sanitized=`echo -n "$1" | sed -e 's/[^A-Za-z0-9 _-]//g'| sed -e 's/ /-/g'` + + # open in editor + $EDITOR "$data_dir/drafts/$sanitized" } publish() { - echo "Select which post to publish" + "Select which post to publish" ls -1 "$data_dir/drafts" | nl + + read -p '> ' choice + to_publish=`ls -1 "$data_dir/drafts/" | sed -n "$choice p"` + [ -z "$to_publish" ] && echo "Invalid choice" && exit 1 + + } delete() { @@ -55,10 +64,10 @@ delete() { case $1 in i|init) echo "init";; - n|new) new $2;; + n|new) new "$2";; p|publish) publish;; d|delete) echo "delete";; - D|purge) echo "purge";; + r|refresh) echo "refresh";; *) echo "helper" && exit 1;; esac -- 2.20.1