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