110 lines
3.5 KiB
Python
110 lines
3.5 KiB
Python
import configparser
|
||
import sys,os
|
||
import fun
|
||
version = "1.5.5"
|
||
|
||
config = configparser.ConfigParser()
|
||
if not os.path.exists(os.path.expanduser('~') + '/.ashrc'):
|
||
with open(os.path.expanduser('~') + '/.ashrc', 'w') as f:
|
||
pass
|
||
config.read(os.path.expanduser('~') + '/.ashrc')
|
||
if not config.has_option('ash', 'ash_theme'):
|
||
# 添加新的节(section)
|
||
config.add_section('ash')
|
||
config.set('ash', 'ash_theme', 'default')
|
||
with open(os.path.expanduser('~') + '/.ashrc', 'w') as f:
|
||
config.write(f)
|
||
|
||
if not config.has_option('ash', 'plugin'):
|
||
config.set('ash', 'plugin', '')
|
||
with open(os.path.expanduser('~') + '/.ashrc', 'w') as f:
|
||
config.write(f)
|
||
|
||
def hhelp():
|
||
print(f"""
|
||
AutozShell v{version}
|
||
ash
|
||
-v version
|
||
""")
|
||
|
||
|
||
|
||
if __name__ == '__main__':
|
||
|
||
|
||
if len(sys.argv) > 1:
|
||
if sys.argv[1] == '-h':
|
||
hhelp()
|
||
|
||
elif sys.argv[1] == '-v':
|
||
print(f"AutozShell v{version}")
|
||
|
||
|
||
elif sys.argv[1] == 'theme':
|
||
# if len(sys.argv) > 2:
|
||
# 判断theme目录里有没有这个主题文件
|
||
# print(os.listdir("./theme/" + sys.argv[2]))
|
||
if sys.argv[2] in os.listdir("./theme"):
|
||
print(f"Set theme to {sys.argv[2]}")
|
||
os.system("python3 ./theme/" + sys.argv[2] + "/theme.py")
|
||
config.set('ash', 'ash_theme', sys.argv[2])
|
||
with open(os.path.expanduser('~') + '/.ashrc', 'w') as f:
|
||
config.write(f)
|
||
|
||
elif sys.argv[1] == 'plugin':
|
||
if len(sys.argv) > 2:
|
||
# 判断plugin目录里有没有这个插件文件
|
||
if sys.argv[2] in os.listdir("./plugin"):
|
||
|
||
print(f"Set plugin to {sys.argv[2]}")
|
||
if config.get('ash', 'plugin') == '':
|
||
config.set('ash', 'plugin', sys.argv[2])
|
||
else:
|
||
config.set('ash', 'plugin', config['ash']['plugin'] + "," + sys.argv[2])
|
||
|
||
with open(os.path.expanduser('~') + '/.ashrc', 'w') as f:
|
||
config.write(f)
|
||
print("插件已添加,请重新启动ash以生效")
|
||
|
||
|
||
if sys.argv[2] == 'list':
|
||
print(f"Plugin list: {config['ash']['plugin']}")
|
||
|
||
# 取消插件
|
||
elif sys.argv[1] == 'unplugin':
|
||
if len(sys.argv) > 2:
|
||
|
||
# 判断plugin目录里有没有这个插件文件
|
||
if sys.argv[2] in os.listdir("./plugin"):
|
||
|
||
print(f"Unset plugin to {sys.argv[2]}")
|
||
|
||
pluginlist = config['ash']['plugin'].split(',')
|
||
|
||
pluginlist.remove(sys.argv[2])
|
||
|
||
config.set('ash', 'plugin', ','.join(pluginlist))
|
||
|
||
with open(os.path.expanduser('~') + '/.ashrc', 'w') as f:
|
||
config.write(f)
|
||
|
||
print("插件已取消,请重新启动ash以生效")
|
||
|
||
|
||
|
||
|
||
|
||
elif not sys.argv[1] in fun.fun_list:
|
||
# 判断是不是sh文件
|
||
if sys.argv[1].endswith('.sh'):
|
||
|
||
os.system(f"bash {sys.argv[1]}")
|
||
else:
|
||
print(f"Command not found: {sys.argv[1]}")
|
||
|
||
|
||
|
||
else:
|
||
print(f"""AutozShell {version}
|
||
Help:ash -h""")
|
||
import chatmode |