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