summaryrefslogtreecommitdiff
path: root/bin/.bin/add-bookmark.sh
blob: 9a8ab6bf793186668f73837414cbf0c994570724 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#!/usr/bin/env bash
set -euo pipefail

BOOKMARKS_FILE="$DOTFILES_REPO/bookmarks.txt"

mkdir -p "$(dirname "$BOOKMARKS_FILE")"
touch "$BOOKMARKS_FILE"

xdotool key --delay 50 ctrl+l ctrl+c Escape

sleep 0.15

URL=$(xclip -selection clipboard -o)

if [[ "$URL" =~ ^https?:// ]]; then
  NAME=$(zenity --entry \
    --title="Add Bookmark" \
    --text="Enter a name for this bookmark:" \
    --entry-text="" 2>/dev/null)

  if [ -z "$NAME" ]; then
    notify-send "Bookmark Cancelled" "No name was provided."
    exit 0
  fi

  CLEAN_NAME=$(echo "$NAME" | tr '|' '-')

  if ! grep -q "|$URL$" "$BOOKMARKS_FILE"; then
    echo "$CLEAN_NAME|$URL" >>"$BOOKMARKS_FILE"
    notify-send "Bookmark Saved" "$CLEAN_NAME\n$URL"
  else
    notify-send "Bookmark" "This exact URL already exists!"
  fi
else
  notify-send "Bookmark Error" "Clipboard did not contain a valid URL."
fi