Files
shex.src
//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
if not source then exit(params[0] + " not found.")
if source.is_binary then exit(params[0] + " a binary.")
if source != null then
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)
BinName = params[0].remove(".src")
program = cache_path+"/"+BinName+"-"+md5sum
for file in get_shell.host_computer.File(cache_path).get_files
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) )
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(cache_path+"/"+BinName+"-"+md5sum, args)
exit
end if
end if
end if