Files
AutozShell/main.py
2024-07-07 01:16:18 +08:00

110 lines
3.5 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import configparser
import sys,os
import fun
version = "1.5.0"
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