Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/sh
- ##### config #####
- # command to filtering tool
- FILTER="peco"
- #FILTER="fzf --ansi --multi --reverse"
- # command to grep
- GREP_CMD="ag"
- # command to less
- LESS_CMD="less -giNMRXSW"
- DEFAULT_NAME="`date +%Y%m%d`"
- EXTENSION=".md"
- MEMO_DIR="$HOME/documents/workspace/memo"
- ##################
- function get_editor()
- {
- USE_EDITOR=`echo $VISUAL`
- if [[ -z $USE_EDITOR ]]; then
- USE_EDITOR=`echo $EDITOR`
- fi
- if [[ -z $USE_EDITOR ]]; then
- exit 1
- fi
- }
- function usage()
- {
- echo "Usage: $(basename ${0}) [-c] [-e] [-g PATTERN] [-h] [-l] [-n] [-s] [-t TITLE]"
- echo ""
- echo "Options:"
- echo " -c Copy or edit a memo with a default name [ $DEFAULT_NAME$EXTENSION ]"
- echo " -e Edit memo"
- echo " -g Grep memo"
- echo " -h Show this message"
- echo " -l Show memo list"
- echo " -n Create or edit a memo with a default name [ $DEFAULT_NAME$EXTENSION ]"
- echo " -s Show memo contents"
- echo " -t Create or edit a memo with the entered title [ $DEFAULT_NAME-TITLE$EXTENSION ]"
- exit 0
- }
- function new_memo()
- {
- get_editor
- if [[ -n $OPTARG ]]; then
- $USE_EDITOR $MEMO_DIR/`date +%Y/%m/`$DEFAULT_NAME-$OPTARG$EXTENSION
- else
- $USE_EDITOR $MEMO_DIR/`date +%Y/%m/`$DEFAULT_NAME$EXTENSION
- fi
- exit 0
- }
- function list_memo()
- {
- find $MEMO_DIR -type f | sort -r | $FILTER
- exit 0
- }
- function show_memo_contents()
- {
- find $MEMO_DIR -type f | sort -r | $FILTER | xargs $LESS_CMD
- exit 0
- }
- function edit_memo()
- {
- FILE_NAME=`find $MEMO_DIR -type f | sort -r | $FILTER`
- if [[ -z $FILE_NAME ]]; then
- exit 1
- fi
- get_editor
- $USE_EDITOR $FILE_NAME
- exit 0
- }
- function copy_memo()
- {
- FILE_NAME=`find $MEMO_DIR -type f | sort -r | $FILTER`
- if [[ -z $FILE_NAME ]]; then
- exit 1
- fi
- COPY_FILE=$MEMO_DIR/`date +%Y/%m/`$DEFAULT_NAME$EXTENSION
- if [[ ! -f $COPY_FILE ]]; then
- \cp $FILE_NAME $COPY_FILE
- fi
- get_editor
- $USE_EDITOR $COPY_FILE
- exit 0
- }
- function grep_memo()
- {
- if [[ -n $OPTARG ]]; then
- $GREP_CMD $OPTARG $MEMO_DIR
- fi
- exit 0
- }
- while getopts ceg:lnst:h OPT
- do
- case $OPT in
- "c" ) copy_memo ;;
- "e" ) edit_memo ;;
- "g" ) grep_memo ;;
- "l" ) list_memo ;;
- "n" ) new_memo ;;
- "s" ) show_memo_contents ;;
- "t" ) new_memo ;;
- "h" ) usage ;;
- * ) usage ;;
- esac
- done
- usage
Add Comment
Please, Sign In to add comment