Files
shex.src
//command: shex (shellexec)
- //command: shex (shellexec) v0.2.0
- // Changelog:
- // * Added file checks
- // * Add automatic cleanup of older builds
- if not params or params[0] == "-h" or params[0] == "--help" then exit(launch_path.split("/")[-1]+" [source] [args]")
- cache_path = home_dir+"/"+"Cache"+"/"+"shex"
- source = get_shell.host_computer.File(current_path+"/"+params[0])
- if source == null then exit("Target is invalid."+char(10)+"It must be located at your Working Directory.")
- if source.is_binary then exit("Target is not a Source File.")
- if not source.has_permission("r") then exit("Target has no read permissions.")
- if not params[0].indexOf(".src") then exit("Target must have the suffix [*.src].")
- args = params[1:].join(" ")
- if params[0].indexOf(".src") then
source = get_shell.host_computer.File(current_path + "/" + params[0])
- if not source then exit(params[0] + " not found.")
- if source.is_binary then exit(params[0] + " a binary.")
- if source != null then
cache_path = home_dir+"/"+"Cache"+"/"+"shex"
- if get_shell.host_computer.File(cache_path) == null then
- get_shell.host_computer.create_folder(home_dir,"Cache")
- get_shell.host_computer.create_folder(home_dir+"/"+"Cache","shex")
- end if
- src = get_shell.host_computer.File(current_path+"/"+params[0])
- md5sum = md5(get_shell.host_computer.File(current_path+"/"+params[0]).get_content)
program = cache_path+"/"+md5sum
- BinName = params[0].remove(".src")
- program = cache_path+"/"+BinName+"-"+md5sum
- for file in get_shell.host_computer.File(cache_path).get_files
if file.name != md5sum then continue
if file.name == md5sum then
get_shell.launch(program, args)
- FileName = file.name.split("-")[0]
- FileSum = file.name.split("-")[1]
- if FileSum != md5sum and FileName == BinName then
- file.delete
- continue
- end if
- if FileSum == md5sum and FileName == BinName then
- get_shell.launch(file.path, args)
- exit
- end if
- end for
- print( get_shell.build(current_path+"/"+params[0],cache_path,false) )
bin = get_shell.host_computer.File(cache_path+"/"+params[0].remove(".src"))
if bin != null then
get_shell.host_computer.File(cache_path+"/"+params[0].remove(".src")).rename(md5sum)
- BinPath = get_shell.host_computer.File(cache_path+"/"+BinName)
- if BinPath != null then
- get_shell.host_computer.File(cache_path+"/"+BinName).rename(BinName+"-"+md5sum)
- else
- exit("File not compiled")
- end if
get_shell.launch(program, args)
- get_shell.launch(cache_path+"/"+BinName+"-"+md5sum, args)
- exit
- end if
- end if
- end if