#!/usr/bin/env fish # This run(.fish) script serves as a central place to store frequently run commands for this project. # Source: https://github.com/mitchell/run.fish ### Config ### # Top-level configurations, like function prefixes and argument delimeters # set -g run_func_prefix 'run' set -g run_arg_delimeter ':' function define_aliases alias run_h='run_hello' alias run_l='run_lang' alias lang_f='lang_fr' end ### Commands ### # Add, edit, and remove commands freely below. # To add a command simply create a function with this naming scheme: {run_func_prefix}_{name}. # function run_hello -d 'Say hello to the world' echo 'hello, world!' end function run_hey -a name -d 'Say hey to someone specific' echo "hey, $name!" end function run_lang -a command -d 'Groups lang subcommands' function lang_en -d 'Say hello in english' run_hello end function lang_fr -a name -d 'Say hello the world or someone specific, in french' if test -n "$name" echo "bonjour, $name!" else echo 'bonjour, le monde!' end end execute_command 'lang' $command end ### Default Commands ### # Do not edit, unless you want to alter how the default commands work. # # Below is a set of default commands, like help and commands. They introspect on any valid run # script. # # Examples: # ./run help # ./run help:hello # ./run commands # function "$run_func_prefix"_commands -d 'List all available commands' functions --names | grep $run_func_prefix'_' | string replace $run_func_prefix'_' '' end function "$run_func_prefix"_help -a command -d 'Print command definition' if test -n "$command" functions $run_func_prefix'_'$command else echo 'Here are the available commands:' $run_func_prefix'_commands' echo \n"To see a command's definition and description do `./run help$run_arg_delimeter{command}`" end end ### Command Execution ### # Do not edit, unless you want to alter how the script executes commands. # # This script can execute 1 or more commands like make. It can also receive 1 argument per # command or subcommand in the following format: {name}{run_arg_delimeter}{argument}. # # Examples: # ./run hello # ./run hey:mitchell # ./run lang:fr:mitchell # ./run hello hey:mitchell lang:fr # function main define_aliases for command in $argv set -l last_status $status test $last_status -gt 0; and exit $last_status execute_command $run_func_prefix $command end end function execute_command -a prefix command set -l args (string split --max 1 $run_arg_delimeter $command) set -l func $prefix'_'$args[1] if functions -q $func $func $args[2] else echo "$prefix command '$command' does not exist" exit 1 end end main $argv