mirror of
				https://github.com/mitchell/swim.fish.git
				synced 2025-11-03 23:35:25 +00:00 
			
		
		
		
	Add run script v0
This commit is contained in:
		
						commit
						7276f25128
					
				
							
								
								
									
										65
									
								
								run
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										65
									
								
								run
									
									
									
									
									
										Executable file
									
								
							| 
						 | 
					@ -0,0 +1,65 @@
 | 
				
			||||||
 | 
					#!/usr/bin/env fish
 | 
				
			||||||
 | 
					# This 'run script' serves as a central place to store frequently run commands for this project.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Config ###
 | 
				
			||||||
 | 
					# Top-level configurations, like function prefixes and argument delimeters
 | 
				
			||||||
 | 
					set -g run_func_prefix 'run'
 | 
				
			||||||
 | 
					set -g run_arg_delimeter ':'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Commands ###
 | 
				
			||||||
 | 
					# Add, edit, and remove commands freely below.
 | 
				
			||||||
 | 
					# To add a command simply create a function with this naming scheme: run_{command}.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					function run_hello
 | 
				
			||||||
 | 
					    echo 'hello, world!'
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function run_hey -a name
 | 
				
			||||||
 | 
					    echo "hey, $name!"
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function run_lang -a command
 | 
				
			||||||
 | 
					    function lang_en
 | 
				
			||||||
 | 
					        run_hello
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    function lang_fr
 | 
				
			||||||
 | 
					        echo 'bonjour, le monde!'
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    execute_command 'lang' $command
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Command Execution ###
 | 
				
			||||||
 | 
					# Do not edit, unless you want to alter how to script runs commands.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# This script can execute 1 or more commands like makefile. It can also receive 1 argument per
 | 
				
			||||||
 | 
					# command in the following format: {command}.{argument}.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Examples:
 | 
				
			||||||
 | 
					# ./run hello
 | 
				
			||||||
 | 
					# ./run hey:mitchell
 | 
				
			||||||
 | 
					# ./run hello hey:mitchell lang:fr
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					function main
 | 
				
			||||||
 | 
					    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"
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					main $argv
 | 
				
			||||||
		Loading…
	
		Reference in a new issue