Update dev script
This commit is contained in:
		
							parent
							
								
									3383a29a0f
								
							
						
					
					
						commit
						540cc47183
					
				
							
								
								
									
										71
									
								
								Linux/Scripts/dev.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										71
									
								
								Linux/Scripts/dev.sh
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,71 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
 | 
			
		||||
# Setup :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 | 
			
		||||
script_path=$0
 | 
			
		||||
script_dir=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
 | 
			
		||||
root_dir="${devenver_root}"
 | 
			
		||||
 | 
			
		||||
# Arguments :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 | 
			
		||||
clang_dir="$root_dir/LLVM"
 | 
			
		||||
cmake_dir="$root_dir/CMake"
 | 
			
		||||
node_dir="$root_dir/NodeJS"
 | 
			
		||||
python_dir="$root_dir/Python"
 | 
			
		||||
virustotal_url="https://www.virustotal.com/gui/file"
 | 
			
		||||
 | 
			
		||||
# Argument parsing ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 | 
			
		||||
option="$1"
 | 
			
		||||
shift
 | 
			
		||||
 | 
			
		||||
if [ "$option" = "clang"      ]; then exe_dir="$clang_dir/$1/bin"          && PATH="$exe_dir:$PATH" && cmd_line="$exe_dir/$2" && shift && shift; fi
 | 
			
		||||
if [ "$option" = "cmake"      ]; then exe_dir="$cmake_dir/$1"              && PATH="$exe_dir:$PATH" && cmd_line="$exe_dir/$2" && shift && shift; fi
 | 
			
		||||
if [ "$option" = "node"       ]; then exe_dir="$node_dir/$1/bin"           && PATH="$exe_dir:$PATH" && cmd_line="$exe_dir/$2" && shift && shift; fi
 | 
			
		||||
if [ "$option" = "python"     ]; then exe_dir="$python_dir/$1/install/bin" && PATH="$exe_dir:$PATH" && cmd_line="$exe_dir/$2" && shift && shift; fi
 | 
			
		||||
if [ "$option" = "python_env" ]; then PATH="$python_dir/$1/install/bin:$PATH" && shift && cmd_line="$1" && shift; fi
 | 
			
		||||
if [ "$option" = "virustotal" ]; then virustotal_hash=$(sha256sum "$1" | awk '{print $1}') && cmd_line="xdg-open $virustotal_url/$virustotal_hash &" && shift; fi
 | 
			
		||||
 | 
			
		||||
if [ -z "$cmd_line" ]; then option="help"; fi
 | 
			
		||||
if [ "$option" = "help" ]; then
 | 
			
		||||
    clang_versions=$(ls -1 "$clang_dir" 2>/dev/null | tr '\n' ' ')
 | 
			
		||||
    cmake_versions=$(ls -1 "$cmake_dir" 2>/dev/null | tr '\n' ' ')
 | 
			
		||||
    node_versions=$(ls -1 "$node_dir" 2>/dev/null | tr '\n' ' ')
 | 
			
		||||
    python_versions=$(ls -1 "$python_dir" 2>/dev/null | tr '\n' ' ')
 | 
			
		||||
    cat << EOF
 | 
			
		||||
USAGE: dev [option] [args...]
 | 
			
		||||
 | 
			
		||||
NOTES:
 | 
			
		||||
  Commands suffixed with '_env' augment the system PATH with the tool's path for the current shell session.
 | 
			
		||||
  You can chain the '_env' commands to augment the PATH, e.g:
 | 
			
		||||
 | 
			
		||||
    dev.sh python_env 3.12.9+20250317 dev.sh node 20.18.2 yarn build-everything
 | 
			
		||||
 | 
			
		||||
OPTIONS:
 | 
			
		||||
  cmake [version] [exe]  CMake build system:                    '$cmake_dir/[version]/[exe]'
 | 
			
		||||
                         Versions:                              $cmake_versions
 | 
			
		||||
 | 
			
		||||
  clang [version] [exe]  CLANG compiler:                        '$clang_dir/[version]/[exe]'
 | 
			
		||||
                         Example:                               'dev clang 18.1.4 clang++.exe --help'
 | 
			
		||||
                         Versions:                              $clang_versions
 | 
			
		||||
 | 
			
		||||
  node [version] [exe]   Node JS:                               '$node_dir/[version]/[exe]'
 | 
			
		||||
                         Versions:                              $node_versions
 | 
			
		||||
 | 
			
		||||
  python [version] [exe] Python:                                '$python_dir/[version]/install/bin/[exe]'
 | 
			
		||||
  python_env [cmd...]                                           '$python_dir/[version]/install/bin:[PATH]'
 | 
			
		||||
                         Versions:                              $python_versions
 | 
			
		||||
 | 
			
		||||
  virustotal [file]      Lookup file SHA256 hash on VirusTotal: '$virustotal_url/[file]'
 | 
			
		||||
EOF
 | 
			
		||||
    exit 0
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# Extract user arguments ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 | 
			
		||||
user_args=""
 | 
			
		||||
while [ $# -gt 0 ]; do user_args="$user_args $1"; shift; done
 | 
			
		||||
 | 
			
		||||
# Trim trailing space ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 | 
			
		||||
while [ "${user_args: -1}" = " " ]; do user_args="${user_args% }"; done
 | 
			
		||||
while [ "${cmd_line: -1}"  = " " ]; do cmd_line="${cmd_line% }"; done
 | 
			
		||||
 | 
			
		||||
# Eval ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 | 
			
		||||
echo "DEV: Running '$script_path' with '$cmd_line$user_args'"
 | 
			
		||||
eval "$cmd_line$user_args"
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user