4 个版本
0.2.2 | 2023 年 6 月 2 日 |
---|---|
0.2.1 | 2023 年 2 月 20 日 |
0.2.0 | 2022 年 11 月 19 日 |
0.1.0 | 2022 年 10 月 25 日 |
#1632 在 命令行实用工具 中
44KB
937 行
sagoin
sagoin
是 UMD CS 提交服务器的命令行提交工具。该项目主要受 marmoset 项目的 marmoset 程序启发,并旨在成为其精神继承者,由 Jaime Spacco、William Pugh 等人开发,因此采用 AGPL-3.0 或更高版本 许可协议,并以 sagoin 命名,该名称指代 狨猴。
安装
最新预编译的二进制文件可在 github 上找到。
或者您可以使用 cargo 从 crates.io 安装 sagoin。
cargo install sagoin
从源代码构建
cargo build --release
快速开始
在当前目录提交项目
sagoin
在 ProjectName
目录下提交项目
sagoin ProjectName
在 ProjectName
目录下提交项目,并在网页浏览器中打开项目页面
sagoin ProjectName -o
用法
Usage: sagoin [OPTIONS] [DIRECTORY]
Arguments:
[DIRECTORY] Set the working directory, all commands will be run under this directory
Options:
-n, --no-submit Don't submit the project
-l, --list-files List files without submitting them
-i, --info Show information about the project and exit
-o, --open Open the project page in a web browser
-f, --field <KEY> <VALUE> Additional key-value pairs to send to the submit server, this will not affect authentication
--color <WHEN> Controls when to use color [default: auto] [possible values: auto, always, never]
-c, --config <FILE> Specify the path to the config file, looks for sagoin/config.toml under XDG configuration directories on unix-like systems, and defaults to {FOLDERID_RoamingAppData}\sagoin\config.toml on windows when unspecified [env: SAGOIN_CONFIG=]
-t, --time-format <FORMAT> Specify how to format the due date, ignored without the --info flag, defaults to "[month repr:short] [day padding:none], [hour]:[minute]" when unspecified [env: SAGOIN_TIME_FORMAT=]
-u, --username <USERNAME> Specify the username for authentication, see --username-type for more information [env: SAGOIN_USERNAME=]
-U, --username-type <TYPE> Specify the type for the username, defaults to text when unspecified [env: SAGOIN_USERNAME_TYPE=] [possible values: command, file, text]
-p, --password <PASSWORD> Specify the password for authentication, see --password-type for more information [env: SAGOIN_PASSWORD=]
-P, --password-type <TYPE> Specify the type for the password, defaults to text when unspecified [env: SAGOIN_PASSWORD_TYPE=] [possible values: command, file, text]
-s, --pre-submit-hook <COMMAND> Command to run before submission [env: SAGOIN_PRE_SUBMIT_HOOK=]
-S, --post-submit-hook <COMMAND> Command to run after successful submissions [env: SAGOIN_POST_SUBMIT_HOOK=]
--client-name <NAME> Change the client name used to submit the project [env: SAGOIN_CLIENT_NAME=]
--client-version <VERSION> Change the client version used to submit the project [env: SAGOIN_CLIENT_VERSION=]
-h, --help Print help information (use `-h` for a summary, use `--help` for more detail)
-V, --version Print version information
功能比较
功能 | 萨格因 | CommandLineSubmission | 课程项目管理器 Eclipse 插件 |
---|---|---|---|
提交 | ✓ | ✓ | ✓ |
无需 Eclipse 运行 | ✓ | ✓ | ✗ |
LDAP 验证 | ✓ | ✓ | ✓ |
OpenID 验证 | ✗ | ✓ | ✓ |
CVS 集成 | ✗ | ✗ | ✓ |
CVS 忽略 | ✗ | ✓ | ✓ |
Git 忽略 | ✓ | ✗ | ✗ |
自定义凭据输入 | ✓ | ✗ | ✗ |
打开项目页面 | ✓ | ✗ | ✗ |
提交钩子 | ✓ | ✗ | ✗ |
显示项目信息 | ✓ | ✗ | ✗ |
配置
文件解析
- 对于类 Unix 系统:在 XDG 配置目录下查找
sagoin/config.toml
,例如/home/<user>/.config/sagoin/config.toml
- 对于 Windows:默认为
{FOLDERID_RoamingAppData}\sagoin\config.toml
,例如C:\Users\<user>\AppData\Roaming\sagoin\config.toml
配置文件以 TOML 编写。运行 sagoin --help
获取更多信息。
# all possible fields in config.toml
time_format = "..."
username = "..."
username_type = "command | file | text"
password = "..."
password_type = "command | file | text"
pre_submit_hook = "..."
post_submit_hook = "..."
client_name = "..."
client_version = "..."
变更日志
许可证
本仓库采用 GNU Affero 通用公共许可证 v3.0 或更高版本 许可。
依赖项
~21–39MB
~645K SLoC