#!/bin/bash # Title......: bp # Description: boiler plate tool # Author.....: Mitchell Johnston - uid 0 # Contact....: mitch@crn.hopto.org # Updated....: Wed 01 Dec 2021 02:45:51 PM CST #---------------------------------- # variables #--------------------------- [ "$1" == "-D" ] && DEBUG=1 && shift 1 # -D to turn on debug mode DOW=$(date +%a) # day of week: Thu TODAY=$(date +%m/%d) # month/day: 03/25 DOM=$(date +%d) # day of month: 25 OS=$(uname -s) # OS type: SunOS Linux NAME=${0##*/} # name of the script BPDIR=~/Documents/Templates # Location of templates # Colors - uncomment if needed R=$(tput setaf 1) # red BR=$(tput setaf 1; tput bold) # bold red G=$(tput setaf 2) # green BG=$(tput setaf 2; tput bold) # bold green Y=$(tput setaf 3) # yellow BY=$(tput setaf 3; tput bold) # bold yellow B=$(tput setaf 4) # blue BM=$(tput setaf 5; tput bold) # bold magenta BC=$(tput setaf 6; tput bold) # bold cyan BL=$(tput setaf 7; tput bold) # bold light grey BLD=$(tput bold) # bold N=$(tput sgr0) # normal SIT=$(tput sitm) # italics RIT=$(tput ritm) # remove italics UL=$(tput smul) # turn underline on NL=$(tput rmul) # turn underline off RV=$(tput rev) # turn on reverse mode ROWS=$(tput lines) COLS=$(tput cols) # functions #--------------------------- bl(){ ## write a blank line # Use: bl [ "$DEBUG" == "1" ] && set -x echo "" } html(){ ## mark up code vim -f +"syn on" +"set nonu" +"set foldenable!" +"set nospell" +"run! syntax/2html.vim" +"wq" +"q" $1 } log(){ ## creates a basic log entry $LOG must be defined # Use: log {entry} [ "$DEBUG" == "1" ] && set -x logger -i -t "$NAME" "$*" } pause(){ ## simple pause routine # Use: pause {optional number of seconds} or "-nt" for no time out [ "$DEBUG" == "1" ] && set -x [ "$1" == "-nt" ] && TMOUT="" && shift echo "$BY"; if [ $# -gt 0 ] then read -t $1 -r -p "${C}Hit any key (${BY}$1${C} second timeout)${N}" -n 1 FOO; else read -r -p "${C}Hit any key${N}" -n 1 FOO; fi; bl } xtitle(){ ## set window title # Use: xtitle "Text to display" printf "\033]0;%s\007" "$*" } # setup #---------------------------------- # this provides a quick way to edit all my scripts on the fly if [ "$1" == "-E" ] then vim $0 sed -i -e "7s/.*/# Updated....: $(date)/" $0 log "Updated $0" html $0 cp $0 /var/www/unix mv $0.html /var/www/unix cp $0 /var/gopher/scripts exit fi # display help if needed if [ "$1" == "-h" ] || [ "$1" == "--help" ] then fmt -s -w $(tput cols) </dev/null || sudo apt install bash -qyy # main #--------------------------- [ "$DEBUG" == 1 ] && set -x case $1 in -l) # list templates clear echo "${UL}Templates: ${BY}$BPDIR${N}" cd $BPDIR || exit 1 for FILE in * do printf '%-15s' "$FILE"|tr ' ' '\056' echo ":${C}$(head -1 "${BPDIR}/${FILE}")${N}" done exit 0 ;; -e) clear if [ -a "$BPDIR/$2" ] then log "edit: $BPDIR/$2" vi "$BPDIR/$2" exit 0 else echo "${C}$NAME${BR} $2${BY} not found, opening new file${N}" pause log "edit: $BPDIR/$2" vi "$BPDIR/$2" exit 0 fi;; *) : if [ -a "$BPDIR/$1" ] then tail -n +2 "$BPDIR/$1" exit 0 else echo "${BR}$NAME $1 not found${N}" exit 1 fi;; esac