Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- # TODO: Find some way to target specific lines without messy grep shit
- ##########
- # Values #
- ##########
- CONFDIR="$HOME/.config/tore/"
- TOREAD="$CONFDIR/toread.txt"
- READED="$CONFDIR/readed.txt"
- optstring=a:d:r:s:f:hlmec
- #############
- # Functions #
- #############
- display_usage() {
- cat <<-EndHelp
- Usage: tore [-a] [-d] [-r] [-s] [-f] [ARG] [-h] [-l] [-c] [-m(a|d|r|s|l|c|e)] [-e]
- Actions:
- -a "[TITLE] - [AUTHOR]"
- -d [KEYWORD]
- -r "KEYWORD, VALUE"
- -s [KEYWORD]
- -f [KEYWORD] (Cannot use with -m)
- -l Display entires
- -c Random output to decide what to read next
- -h Display help
- -m Modify readed.txt instead of toread.txt. MUST BE FIRST TO WORK!
- -e Edit file directly"
- EndHelp
- exit 0
- }
- add_entry() {
- echo "$OPTARG" >> "$TOREAD" && exit 0
- }
- remove_entry() {
- sed -i "/$OPTARG/Id" "$TOREAD"
- }
- move_entry() {
- grep "$OPTARG" "$TOREAD" >> "$READED" &&
- sed -i "/$OPTARG/Id" "$TOREAD"
- }
- refresh_entry() {
- sed -i "$(grep -i -n "$( printf "%s" "$OPTARG" | cut -d "," -f 1)" "$TOREAD" | cut -d : -f 1)s/[,].*//g" "$TOREAD" &&
- grep -i -n "$( printf "%s" "$OPTARG" | cut -d "," -f 1)" "$TOREAD" | cut -d : -f 1 |
- while read -r num; do
- sed -i ""$num"s/$/,$(printf "$OPTARG" | cut -d "," -f 2)/" "$TOREAD"
- done
- }
- search_entry() {
- grep -i "$OPTARG" "$TOREAD"
- }
- list_entries() {
- printf "\e[31m%s\n\e[39m" "$(grep -E '[0-9]' "$TOREAD")";
- printf "\e[34m%s\n\e[39m" "$(grep -Ev '[0-9]' "$TOREAD")"
- }
- modify() {
- export TOREAD=$READED
- }
- edit() {
- vim "$TOREAD"
- }
- choose_entry() {
- shuf -n 1 "$TOREAD"
- }
- ###########
- # Options #
- ###########
- while getopts $optstring opt
- do
- case "$opt" in
- a)
- add_entry
- ;;
- d)
- remove_entry
- ;;
- r)
- refresh_entry
- ;;
- s)
- search_entry
- ;;
- h)
- display_usage
- ;;
- l)
- list_entries
- ;;
- c)
- choose_entry
- ;;
- f)
- move_entry
- ;;
- \?)
- display_usage
- ;;
- m)
- modify
- ;;
- e)
- edit
- ;;
- esac
- done
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement