Advertisement
Guest User

Untitled

a guest
Mar 23rd, 2017
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.97 KB | None | 0 0
  1. #!/bin/bash
  2. # TODO: Find some way to target specific lines without messy grep shit
  3.  
  4. ##########
  5. # Values #
  6. ##########
  7.  
  8. CONFDIR="$HOME/.config/tore/"
  9. TOREAD="$CONFDIR/toread.txt"
  10. READED="$CONFDIR/readed.txt"
  11. optstring=a:d:r:s:f:hlmec
  12.  
  13. #############
  14. # Functions #
  15. #############
  16.  
  17. display_usage() {
  18. cat <<-EndHelp
  19. Usage: tore [-a] [-d] [-r] [-s] [-f] [ARG] [-h] [-l] [-c] [-m(a|d|r|s|l|c|e)] [-e]
  20.  
  21. Actions:
  22. -a "[TITLE] - [AUTHOR]"
  23. -d [KEYWORD]
  24. -r "KEYWORD, VALUE"
  25. -s [KEYWORD]
  26. -f [KEYWORD] (Cannot use with -m)
  27. -l Display entires
  28. -c Random output to decide what to read next
  29. -h Display help
  30. -m Modify readed.txt instead of toread.txt. MUST BE FIRST TO WORK!
  31. -e Edit file directly"
  32.  
  33. EndHelp
  34. exit 0
  35. }
  36.  
  37. add_entry() {
  38. echo "$OPTARG" >> "$TOREAD" && exit 0
  39. }
  40.  
  41. remove_entry() {
  42. sed -i "/$OPTARG/Id" "$TOREAD"
  43. }
  44.  
  45. move_entry() {
  46. grep "$OPTARG" "$TOREAD" >> "$READED" &&
  47. sed -i "/$OPTARG/Id" "$TOREAD"
  48. }
  49.  
  50. refresh_entry() {
  51. sed -i "$(grep -i -n "$( printf "%s" "$OPTARG" | cut -d "," -f 1)" "$TOREAD" | cut -d : -f 1)s/[,].*//g" "$TOREAD" &&
  52.  
  53. grep -i -n "$( printf "%s" "$OPTARG" | cut -d "," -f 1)" "$TOREAD" | cut -d : -f 1 |
  54. while read -r num; do
  55. sed -i ""$num"s/$/,$(printf "$OPTARG" | cut -d "," -f 2)/" "$TOREAD"
  56. done
  57. }
  58.  
  59. search_entry() {
  60. grep -i "$OPTARG" "$TOREAD"
  61. }
  62.  
  63. list_entries() {
  64. printf "\e[31m%s\n\e[39m" "$(grep -E '[0-9]' "$TOREAD")";
  65. printf "\e[34m%s\n\e[39m" "$(grep -Ev '[0-9]' "$TOREAD")"
  66. }
  67.  
  68. modify() {
  69. export TOREAD=$READED
  70. }
  71.  
  72. edit() {
  73. vim "$TOREAD"
  74. }
  75.  
  76. choose_entry() {
  77. shuf -n 1 "$TOREAD"
  78. }
  79.  
  80. ###########
  81. # Options #
  82. ###########
  83.  
  84. while getopts $optstring opt
  85. do
  86. case "$opt" in
  87. a)
  88. add_entry
  89. ;;
  90. d)
  91. remove_entry
  92. ;;
  93. r)
  94. refresh_entry
  95. ;;
  96. s)
  97. search_entry
  98. ;;
  99. h)
  100. display_usage
  101. ;;
  102. l)
  103. list_entries
  104. ;;
  105. c)
  106. choose_entry
  107. ;;
  108. f)
  109. move_entry
  110. ;;
  111. \?)
  112. display_usage
  113. ;;
  114. m)
  115. modify
  116. ;;
  117. e)
  118. edit
  119. ;;
  120. esac
  121. done
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement