diff --git a/README.md b/README.md index 51f94ff..6acd0c0 100644 --- a/README.md +++ b/README.md @@ -43,11 +43,16 @@ Edit bookmarks. sxbm edit ``` +Remove a bookmark. +``` +sxbm rm +``` + Run `sxbm --help` to see more detailed usage. ## Todo -- [ ] Implement remove. Should take same arguments as `open`. +- [ ] Enhance `remove` arguments. Should take same arguments as `open`. - [ ] Enhance `edit` arguments. Should take similar arguments as `open`. - [ ] Add a dmenu/rofi wrapper. - [ ] Add PGP encryption. diff --git a/sxbm b/sxbm index c3d2ac7..4a85956 100755 --- a/sxbm +++ b/sxbm @@ -49,6 +49,7 @@ COMMANDS: add [title] [+tags] ls|list [-s|--strict] [-c|--disable-colors] [title] [+tags] open [-f|--force] + rm|remove edit -h|--help print this text and exit -v|--version print the version and exit\n\n" @@ -165,6 +166,22 @@ bm_edit(){ $EDITOR "$DATA_FILE" } +bm_remove(){ + [ -z "$1" ] && die "No arguments given" + + [ "$1" -eq "$1" 2>/dev/null ] && + LINK=$(sed "$1q;d" $DATA_FILE) || + die "Link not found" + + printf "Delete this link? (y/n)\n$LINK\n" + read ANSWER + if [ "$ANSWER" = "y" ] || [ "$ANSWER" = "yes" ]; then + sed -i --follow-symlinks "$1d" "$DATA_FILE" && + echo "Deleted successfully" || + die "Couldn't delete link" + fi +} + ############ ### main ### ############ @@ -189,6 +206,8 @@ case "$1" in bm_open "$@" ;; "rm"|"remove") + shift + bm_remove "$@" ;; "edit") shift