Skip to content

一个模块化、轻量的控制台环境,致敬 Gardens OS 的最后一作(真的是最后一作)。完美整合了 Garlib 的面向对象设计思想。当前版本概念已经成型,实现了基本构想。(bushi

License

Notifications You must be signed in to change notification settings

AyalaKaguya/Cyga

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Cyga 2.5

一个模块化、轻量的Batch 控制台环境,致敬 Gardens OS 的最后一作(真的是最后一作)。完美整合了 Garlib 的面向对象设计思想。当前版本概念已经成型,实现了基本构想。

比一代强在哪里?

Cyga2.0 相比 Cyga 一代来说,完全使用了原生CMD实现,具有一定的实用性。一些群友的评价:当Cyga2.0启用了Garlib2.0之后,会使得CMD具有一定的迷惑性,类似于REPL(Read-Eval-Print Loop),CMD表现的更像一个编程语言

由于 Cyga2.0 带来的架构更新,带来了无与伦比的兼容性和横向扩展性,但是它依旧只是个CMD。


如何使用

Cyga 并没有非常多的命令,但你可以通过一些操作来满足你的需求。

在以下教程中,我们将着重讲解如何定制你的 Cyga 体验以及 Garlib 的基本使用方法。

CygaBox

Cyga从2.5版本起提供了一系列便于命令行使用的快捷批处理,使用 h 指令获得帮助。

启用一个模块

我们开发了一个简陋的模块系统,使得 Cyga 的环境具有一定的定制能力,你可以通过使用不同的模块来获得不同的CMD体验,当然你也可以打开这些模块文件夹,并仿照它们编写自定义模块。

你可以使用以下指令来启用一个模块:

enable [moduleName]

如果不指定 moduleName ,那么 enable 将会展示 ./arch 目录下所有的文件夹,这些文件夹的每个在一般情况下代表着一个模块。

当成功指定一个存在的 moduleName,那么 enable 将会调用 ./arch/<moduleName>/<moduleName>.init.cmd ,如何编写 init 文件可以参考./arch/garlib/garlib.init.cmd 传送门

自定义工具

Cyga 存在一个目录 ./bin ,你可以将你常用但不想放在原版CMD的PATH里的工具放在这里,在启动 Cyga 之后,这些工具将会自动导入环境。

你可以在安全模式打开 Cyga ,这会使得你无法使用System32下的所有工具,但是在排查一些问题的时候安全模式会很有用。

./lib 是存放 Cyga 内部脚本的地方,这里一般不推荐乱动。

Garlib 面向对象的CMD

Garlib 为CMD提供了一个虚假的类型系统,使得CMD的一些行为变得反直觉,但是它的存在是喜人的,就像不知道做什么的时候突然发现了有意思的事情一样。

详细教程见garlib.md

脚本支持

如果你要在 Cyga 的环境下运行脚本,你需要知道以下几点:

  1. 所有 CygaGarlib 的方法需要在前面加 call 指令,比如说:
::cyga-script.bat
@echo off
call enable garlib
call String s = "Hello, World!"
call print s
...

当然如果有什么不依靠call还能正常执行的方法也请提给我。

  1. 后面几点想到再说。

用户启动脚本

当你在 Cyga 根目录创建名为 uservars.bat 的文件后,这个文件将会成为用户启动脚本,该脚本的编写遵循脚本支持中的部分,用户启动脚本会在 cygavars.bat 完成侧载后、更改目录前执行。

在这个脚本内你可以执行一些个性化的设置,比如修改CMD的窗口大小和样式、通过 call enable 来启用某些功能甚至修改 Cyga 的运行路径,以下举了个常用的例子:

::uservars.bat
call enable bcn
color 0f
mode con: cols=110 lines=35

关于可能的未来

Garlib 的类型系统仍然是不完善的,在后期我们可能会考虑使用以下存储库的内容来改善它:

https://github.com/npocmaka/batch.scripts

https://github.com/ritchielawrence/batchfunctionlibrary


版本变化

Revision Date Changes
1.0.1002 2021-01-02 Bug Fix
2.0b 2023-01-18 Total Upgrade
2.1b 2023-01-24 Add user config
2.2a 2023-02-16 Add bcn support ...
2.3b 2023-02-19 Add decmd support ...
2.4 2023-06-27 Add default cmd agent ...
2.5 2023-08-30 Add CygaBox ...

版权和许可证

Code and documentation copyright 2016-2023 TePuint Club. Code released under MIT License

About

一个模块化、轻量的控制台环境,致敬 Gardens OS 的最后一作(真的是最后一作)。完美整合了 Garlib 的面向对象设计思想。当前版本概念已经成型,实现了基本构想。(bushi

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published