Guest User

Untitled

a guest
Feb 21st, 2018
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.24 KB | None | 0 0
  1. #!/bin/sh
  2.  
  3. ##### config #####
  4. # command to filtering tool
  5. FILTER="peco"
  6. #FILTER="fzf --ansi --multi --reverse"
  7.  
  8. # command to grep
  9. GREP_CMD="ag"
  10.  
  11. # command to less
  12. LESS_CMD="less -giNMRXSW"
  13.  
  14. DEFAULT_NAME="`date +%Y%m%d`"
  15. EXTENSION=".md"
  16. MEMO_DIR="$HOME/documents/workspace/memo"
  17. ##################
  18.  
  19. function get_editor()
  20. {
  21. USE_EDITOR=`echo $VISUAL`
  22. if [[ -z $USE_EDITOR ]]; then
  23. USE_EDITOR=`echo $EDITOR`
  24. fi
  25. if [[ -z $USE_EDITOR ]]; then
  26. exit 1
  27. fi
  28. }
  29.  
  30. function usage()
  31. {
  32. echo "Usage: $(basename ${0}) [-c] [-e] [-g PATTERN] [-h] [-l] [-n] [-s] [-t TITLE]"
  33. echo ""
  34. echo "Options:"
  35. echo " -c Copy or edit a memo with a default name [ $DEFAULT_NAME$EXTENSION ]"
  36. echo " -e Edit memo"
  37. echo " -g Grep memo"
  38. echo " -h Show this message"
  39. echo " -l Show memo list"
  40. echo " -n Create or edit a memo with a default name [ $DEFAULT_NAME$EXTENSION ]"
  41. echo " -s Show memo contents"
  42. echo " -t Create or edit a memo with the entered title [ $DEFAULT_NAME-TITLE$EXTENSION ]"
  43. exit 0
  44. }
  45.  
  46. function new_memo()
  47. {
  48. get_editor
  49. if [[ -n $OPTARG ]]; then
  50. $USE_EDITOR $MEMO_DIR/`date +%Y/%m/`$DEFAULT_NAME-$OPTARG$EXTENSION
  51. else
  52. $USE_EDITOR $MEMO_DIR/`date +%Y/%m/`$DEFAULT_NAME$EXTENSION
  53. fi
  54. exit 0
  55. }
  56.  
  57. function list_memo()
  58. {
  59. find $MEMO_DIR -type f | sort -r | $FILTER
  60. exit 0
  61. }
  62.  
  63. function show_memo_contents()
  64. {
  65. find $MEMO_DIR -type f | sort -r | $FILTER | xargs $LESS_CMD
  66. exit 0
  67. }
  68.  
  69. function edit_memo()
  70. {
  71. FILE_NAME=`find $MEMO_DIR -type f | sort -r | $FILTER`
  72.  
  73. if [[ -z $FILE_NAME ]]; then
  74. exit 1
  75. fi
  76.  
  77. get_editor
  78. $USE_EDITOR $FILE_NAME
  79. exit 0
  80. }
  81.  
  82. function copy_memo()
  83. {
  84. FILE_NAME=`find $MEMO_DIR -type f | sort -r | $FILTER`
  85.  
  86. if [[ -z $FILE_NAME ]]; then
  87. exit 1
  88. fi
  89.  
  90. COPY_FILE=$MEMO_DIR/`date +%Y/%m/`$DEFAULT_NAME$EXTENSION
  91. if [[ ! -f $COPY_FILE ]]; then
  92. \cp $FILE_NAME $COPY_FILE
  93. fi
  94.  
  95. get_editor
  96. $USE_EDITOR $COPY_FILE
  97. exit 0
  98. }
  99.  
  100. function grep_memo()
  101. {
  102. if [[ -n $OPTARG ]]; then
  103. $GREP_CMD $OPTARG $MEMO_DIR
  104. fi
  105. exit 0
  106. }
  107.  
  108. while getopts ceg:lnst:h OPT
  109. do
  110. case $OPT in
  111. "c" ) copy_memo ;;
  112. "e" ) edit_memo ;;
  113. "g" ) grep_memo ;;
  114. "l" ) list_memo ;;
  115. "n" ) new_memo ;;
  116. "s" ) show_memo_contents ;;
  117. "t" ) new_memo ;;
  118. "h" ) usage ;;
  119. * ) usage ;;
  120. esac
  121. done
  122.  
  123. usage
Add Comment
Please, Sign In to add comment