代码拉取完成,页面将自动刷新
同步操作将从 莫粒/runcode 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
#!/usr/bin/ruby
#encoding : utf-8
#
# 该程序为容器的一部分,所有的源码都将通过该脚本运行并返回
# 例子
# run.rb php
# 启动docker的例子
# docker run -i -t moli/run ruby ~/run.rb php PD9waHAKZWNobyAiaGVsbG8gd29ybGQiOwo/Pg==
if ARGV.length < 2
puts "参数需要 程序语言,程序代码(base64编码后的代码),例如: run.rb php base64(\"echo 'hello'\")"
exit 1
end
# 将代码写入文件
def write_code_to_file(filename, code)
file = nil
begin
file = File.new filename, "w"
file.write code
ensure
file.close if file
end
end
require 'base64'
lang = ARGV.shift.to_s.downcase
code = Base64.decode64 ARGV.shift
params = ARGV.shift
PHP = "php"
RUBY = "ruby"
PYTHON = "python"
JAVA = "java"
C = "c"
CPP = "cpp"
GO = "go"
PATH = "./" # 代码临时执行目录
result =
case lang
when PHP
filename = PATH + "temp.php"
write_code_to_file filename, code
`php -f #{filename}`
when RUBY
filename = PATH + "temp.rb"
write_code_to_file filename, code
`ruby #{filename}`
when PYTHON
filename = PATH + "temp.py"
write_code_to_file filename, code
`python #{filename}`
when JAVA
if params.nil?
"请传入java类名称."
else
filename = PATH + params +".java"
write_code_to_file filename, code
`javac #{filename}`
`java #{params}`
end
when C
filename = PATH + "temp.c"
write_code_to_file filename, code
`gcc #{filename} -o temp`
`#{PATH}c`
when CPP
filename = PATH + "temp.cpp"
write_code_to_file filename, code
`g++ #{filename} -o temp`
`#{PATH}cpp`
when GO
filename = PATH + "temp.go"
write_code_to_file filename, code
`go run #{filename}`
end
puts result
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。