LConsole开源

这货是啥

小萌在玩MConsole,浩然在玩HConsole,我就掺和一个LConsole。

暗影软件出品。源代码开放,如下。

 环境

Luaet5.2.1 (By Zyxwvu)

lcon (By Shuenhoy)

目前代码没有用到lcon,可以在require中将其去掉。

源代码

如下:
[lua]
–Tips
——————————————-
— lcon是一个提供彩色字体的库
— gotoXY 设置坐标
— cls 清屏
— cls_c 带颜色清屏
— set_colorx 字体色背景色一块设置
— set_color 只设置字体色
— hide_cursor 隐藏光标
— show_cursor 显示光标
— pcurpos 打印光标坐标(调试用)
— cur_x 取得x坐标
— cur_y 取得y坐标
——————————————-

–Require
require”socket”
require”coding”
require”lcon”
require”cjson”
require”luacom”
require”curl”

–Database
_VERSION=”1.0.4.4″
_MODE=”Windows”
_HELP=[[
欢迎使用System Console For Lua~
有效命令如下:
about 关于信息
help 帮助信息
cd 同Windows中的cd,单独使用无效果,紧随其后&以使用。
例如:cd .. & echo Hi
cls 清屏
mode 更换提示符模式,支持Windows/Linux/Lua三种模式。
使用方法:mode [模式]
lua 执行lua命令。
使用方法:lua [代码]

以及您的系统所支持的所有命令。
ping 测试对某个IP/网络地址的连接情况。
使用方法:ping [IP/地址]
echo 显示指定文字。
使用方法:echo [文字/环境变量名]

在Linux模式下你可以使用部分Linux命令。
cp 复制文件,同copy。
rm 删除文件,同del。
clean 清屏,同cls。

******以上命令均大小写支持******
[Eggs]另有两个隐藏命令,请自行挖掘:)
]]
_LINUXEXEC=[[doskey ls=dir $* &
doskey pwd=cd $* &
doskey mkdir=md $* &
doskey rmdir=rd $* & doskey rm=del $* &
doskey mv=move $* & doskey cp=copy $* &
doskey cat=type $* & doskey clear=cls &
doskey uname=ver & doskey id=whoami & doskey w=quser & ]]
_TIP={
Windows=”System Console For Lua [版本 “.._VERSION..[[]n(C) 版权所有
2012- Shadow Forest Software.n]],
Linux=os.date(“login: %a %b %d %X %Y”),
Lua=”Lua “.._VERSION..[[ Copyright (C) 2012- Shadow
Forest Software, Joshua]]
}

–Functions
function _DELS(str)
return str:match(“%s*(.-)%s*$”)
end

function _DOLUA(code)
local r=loadstring(code)
local a,b=pcall(r)
if b then
print(b)
end
end

function _WRITETIP()
if _MODE==”Windows” then
local md=io.popen(“cd”)
local this=md:read(“*a”)
md:close()
return this:match(“^(.+)n$”)..”>”
elseif _MODE==”Linux” then
local md=io.popen(“echo [%username%@%COMPUTERNAME% ~]”)
local this=md:read(“*a”)
md:close()
return this:match(“^(.+)n$”)
elseif _MODE==”Lua” then
return “> ”
else
_MODE=”Lua”
return “> ”
end
end

function _CLS()
os.execute(“cls”)
end

function _ENCSTR(str)
if str:find(“^[Cc][Dd] “) then
os.execute(str)
return
elseif str:find(“^[Mm][Oo][Dd][Ee] .-“) then
local mo=str:match(“^[Mm][Oo][Dd][Ee] (.+)”):lower()
if mo==”windows” then
_MODE=”Windows”
print(“设置模式 “.._MODE..” 成功。”)
os.execute(“pause & cls”)
print(_TIP[_MODE])
return
elseif mo==”linux” then
_MODE=”Linux”
print(“设置当前模式为 “.._MODE..” 成功。”)
os.execute(“pause & cls”)
print(_TIP[_MODE])
return
elseif mo==”lua” then
_MODE=”Lua”
print(“设置模式 “.._MODE..” 成功。”)
os.execute(“pause & cls”)
print(_TIP[_MODE])
return
else
print(“无此格式:Mode只支持Windows/Linux/Lua格式。”)
return
end
elseif str:find(“^[Cc][Ll][Ss]”) or str:find(“清屏”) then
_CLS()
return
elseif str:find(“^[Hh][Ee][Ll][Pp]”) then
print(_HELP)
return
elseif str:find(“^[Aa][Bb][Oo][Uu][Tt]”) then
print(_TIP[_MODE])
return
elseif str:find(“^[Ff][Uu][Cc][Kk] .-“) then
print(“Fucking “..str:match(“^[Ff][Uu][Cc][Kk] (.+)$”)..”~”)
return
elseif str:find(“^[Ll][Uu][Aa] .-“) then
_DOLUA(str:match(“^[Ll][Uu][Aa] (.*)”))
return
elseif str:find(“[Aa][Dd]”) then
os.execute(“@start http://sforest.in”)
return
else
if _MODE==”Windows” then
os.execute(str)
elseif _MODE==”Linux” then
local m=io.popen(_LINUXEXEC..str)
local s=m:read(“*all”)
m:close()
if s==”” then
print(“Bad command or not return value.n”)
else
print(s)
end
elseif _MODE==”Lua” then
local m=io.popen(str)
local s=m:read(“*all”)
m:close()
if s==”” then
print(“stdin:1: attempt to call global ‘”..str..”‘ (a nil command)n”)
else
print(s)
end
end
end
end

–Main
os.execute(“@title LConsole – “.._VERSION)
print(_TIP[_MODE])

while true do
io.write(_WRITETIP())
a,b=pcall(_ENCSTR,_DELS(io.read()))
if not a then
print(“恭喜您发现了一个Bug~n程序错误信息如下:n”..
b..”n请向小约反馈,多谢支持!n”)
end
end
[/lua]

3 thoughts on “LConsole开源”

发表评论

电子邮件地址不会被公开。