dotfiles

My configuration files.
Log | Files | Refs | README

commit 701450b685e5f774adaa8d805c58e30d3c1a0d96
parent 7a0e1137d98679f3f4155ccb6f21c2c2f7d848b6
Author: Sven Möller <sven-moeller@outlook.de>
Date:   Sun, 26 Dec 2021 20:46:09 +0100

Improvements

Diffstat:
Mbin/.local/bin/bm | 63+++++++++++++++++++++++++++++++++++++++------------------------
1 file changed, 39 insertions(+), 24 deletions(-)

diff --git a/bin/.local/bin/bm b/bin/.local/bin/bm @@ -1,6 +1,6 @@ -#!/bin/sh +#!/bin/bash -selector=fzf +[ -z "$selector" ] && selector=fzf [ -z "$BM_DIR" ] \ && echo "No directory specified!" \ @@ -9,10 +9,6 @@ selector=fzf export GIT_WORK_TREE="$BM_DIR" export GIT_DIR="$BM_DIR/.git" -get_url () { - sed -n "$1p" "$BM_DIR/$2" | awk '{print $1}' -} - add () { url="$1" cat $BM_DIR/{unread,favorite,archive} | grep "$url" \ @@ -30,7 +26,7 @@ add () { } random () { - shuf -n 1 "$BM_DIR/unread" | awk '{print $1}' | xargs xdg-open + shuf -n 1 "$BM_DIR/unread" | awk '{print $1}' | xargs "$LINK_HANDLER" } move () { @@ -43,30 +39,49 @@ delete () { } open () { - url="$(get_url $1 $2)" + url="$1" "$LINK_HANDLER" "$url" } download () { - url="$(get_url $1 $2)" - title="$(echo "$url" | sed 's_/$__' | rev | cut -d'/' -f1 | rev | sed 's_\..*__')" - echo $title - pandoc --verbose -o "$BM_DIR/saved/$title.epub" "$url" + url="$1" + name="$(echo "$url" | sed 's_/$__' | rev | cut -d'/' -f1 | rev | sed 's_\..*__')" + pandoc --verbose -o "$BM_DIR/saved/$name.epub" "$url" +} + +qr () { + url="$1" + qrencode -t UTF8 "$url" +} + +clip () { + url="$1" + echo "$url" | xclip -selection "clipboard" } interactive () { list="$1" - actions="open\narchive\nfavorite\nunread\ndelete\ndownload\n" - while :; do - line="$(cat -n "$BM_DIR/$1" | "$selector" | awk '{print $1}')" - if [ -z "$line" ]; then exit; fi - action="$(printf "$actions" | grep -v "$list" | "$selector")" - if [ -z "$action" ]; then exit; fi - case "$action" in - unread|favorite|archive) move "$line" "$list" "$action" ;; - open|delete|download) "$action" "$line" "$list" ;; - esac - done + actions="open\narchive\nfavorite\nunread\ndelete\ndownload\necho\nqr\nclip\n" + l="$(cat -n "$BM_DIR/$list" | "$selector")" + line="$(echo "$l" | awk '{print $1}')" + url="$(echo "$l" | awk '{print $2}')" + if [ -z "$line" ]; then exit; fi + action="$(printf "$actions" | grep -v "$list" | "$selector")" + if [ -z "$action" ]; then exit; fi + case "$action" in + unread|favorite|archive) move "$line" "$list" "$action" ;; + delete) "$action" "$line" "$list" ;; + open|download|echo|qr|clip) "$action" "$url" ;; + esac +} + +all () { + actions="open\ndownload\necho\nqr\nclip" + line="$(cat -n "$BM_DIR"/{unread,favorite,archive} | "$selector")" + url="$(echo "$line" | awk '{print $2}')" + if [ -z "$line" ]; then exit; fi + action="$(printf "$actions" | "$selector")" + "$action" "$url" } sync () { @@ -113,7 +128,7 @@ if [ -z "$1" ]; then "$0" "unread"; exit; fi case "$1" in unread|favorite|archive) interactive "$1" ;; - git|sync|html|random) + git|sync|html|random|all) "$@"; exit ;; http://*|https://*) add "$1" "$2"; exit ;;