#!/bin/bash function timecolor() { cat - } function filelist() { shopt -s nullglob TODO=(*md) } [[ "$1" = "-h" ]] && { echo ' Maintain a set of TODOs in the current folder ' exit } . qolop 2>/dev/null || { function _qCol() { true; } } VI=vimd which $VI &>/dev/null || VI=vim while :;do filelist files=${#TODO[@]} { _qCol G; printf '\n# List of TODOs: [unchecked/check boxes/lines]\n'; _qCol z; } i=0 EDITFILE="" for ((n=0;n (q)uit, (n)ew, ## to edit: '; _qCol z; } read -n ${#i} ANS ANS="${ANS//[^[:alnum:]]/}" echo "" [[ "$ANS" = "q" ]] && exit 0 [[ "$ANS" = "x" ]] && exit 0 [[ "$ANS" = "n" ]] && { ANS="" { _qCol W; printf '\n> Name (.md will be added): '; _qCol z; } read NEWFILE [[ -z $NEWFILE ]] && { continue; } [[ -f "$NEWFILE".md ]] && { echo File already exists; continue; } echo "# $NEWFILE" > "$NEWFILE".md || { echo Cannot write file; continue; } } done :