#!/bin/bash # Jackson's Awesome Project Helper # Jackson Taylor - 12/2/2020 # See README for more information JAPH_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" CMD_FILE="$JAPH_DIR/cmds" EDITOR="vim" function japh() { case $1 in "add") dir=$(pwd) printf "function cd_$2() { cd \"$dir\"; }\n" >> $JAPH_DIR/cmds echo "project added!" ;; "-a") # Show the currently added commands cat $CMD_FILE ;; "n") if [ -z $2 ]; then echo "Command must not be empty!" return fi cmd_name=$2 cmd_tmp_file=/tmp/japh_$cmd_name $EDITOR $cmd_tmp_file if [ ! -s $cmd_tmp_file ]; then echo "You must have a command!" else printf "function cmd_$cmd_name() {\n" >> $JAPH_DIR/cmds cat $cmd_tmp_file >> $JAPH_DIR/cmds printf "\n}\n" >> $JAPH_DIR/cmds rm $cmd_tmp_file fi ;; "r") if [ -z $2 ]; then echo "Command must not be empty!" japh_usage return fi source $JAPH_DIR/cmds type cmd_$2 &> /dev/null status=$? if [ $status -eq 0 ]; then cmd_$2 else echo "Command was not found!" japh_usage fi ;; "help" | "-h") japh_usage ;; *) if [ ! -z $1 ]; then source $JAPH_DIR/cmds type cd_$1 &> /dev/null status=$? if [ $status -eq 0 ]; then cd_$1 [ -d .git ] && git status; else echo "Command was not found!" japh_usage fi else japh_usage fi ;; esac } function japh_usage() { printf "JAPH - Jackson's Awesome Project Helper\n" printf "japh add \$projectName - Add current directory to japh's list as \$projectName\n" printf "japh \$projectName - cd to project directory\n" printf "japh n \$commandName - Open new editor so you can add series of steps in a command.\n" printf "japh r \$commandName - Run \$commandName in current session.\n" }