Open main menu
Posts
Gists
Guilds
Users
Decipher
Docs
Open user menu
Log in
Sign up
Create a new gist
Posts
Gists
Guilds
Users
Decipher
Docs
Files
shex.src
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(
progra
m, args)
get_shell.launch(
cache_path+"/"+BinName+"-"+md5su
m, args)
exit
end if
end if
end if