#submit #command-line #cli #umd #marmoset

bin+lib sagoin

UMD CS 提交服务器的命令行提交工具

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命令行实用工具

AGPL-3.0 或更高版本

44KB
937

sagoin

release version deps license ci

sagoin 是 UMD CS 提交服务器的命令行提交工具。该项目主要受 marmoset 项目的 marmoset 程序启发,并旨在成为其精神继承者,由 Jaime SpaccoWilliam 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 = "..."

变更日志

CHANGELOG.md

许可证

本仓库采用 GNU Affero 通用公共许可证 v3.0 或更高版本 许可。

依赖项

~21–39MB
~645K SLoC