bin/open-tabs.sh
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 37 38 39 40 41 42 43 44 45 46 47 48 |
#!/bin/sh # misc. niceties red="\033[91m" green="\033[92m" yellow="\033[93m" rst="\033[0m" die() { printf "${red}error: $1${rst}\nAborting...\n" >&2 ; exit 1 } warn() { printf "${yellow}warn: $1${rst}\n" >&2 } url_file="$1" if [ "$#" -ne 1 ]; then echo "usage: $0 [path-to-URLs-file.url]" ; exit 1 fi if [ "$BROWSER" = "" ]; then die "BROWSER variable unset" fi # TODO check if file empty dry_run="" # TODO handle '--dry-run' browser_args=""; line="" while IFS='' read -r line || [ -n "${line}" ]; do # TODO: fix tabs not being counted here if (echo "$line" | grep -Eq '^[ \t]*#') || [ -z "${line}" ]; then : # comment or empty, pass # TODO handle '://' after both http and https elif (echo "$line" | grep -Eq '^[ \t]*http'); then line_stripped="$(echo -e "${line}" | tr -d ' \t')" browser_args="${browser_args} --new-tab $line_stripped" else warn "'$line' not valid URL or comment" fi done < "$url_file" if [ "$dry_run" != "" ]; then echo "dry run" echo "$BROWSER $browser_args" else $BROWSER $browser_args fi |