Skip to content

Latest commit

ย 

History

History
149 lines (107 loc) ยท 6.43 KB

README.md

File metadata and controls

149 lines (107 loc) ยท 6.43 KB

bitsrun

GitHub Workflow Status (CI) GitHub Workflow Status (Release) GitHub release Crates.io

๐ŸŒ A headless login and logout CLI for 10.0.0.55 at BIT, now in Rust.

CleanShot 2023-12-04 at 16 47 26@2x

Install

One-line install (Linux / macOS, recommended)

  • curl -fsSL https://cdn.jsdelivr.net/gh/spencerwooo/bitsrun-rs@main/install.sh | sh -

Ubuntu / Debian (recommended for systemd support)

  • Download the latest .deb package from Releases.
  • sudo apt install </path/to/file>.deb

If bitsrun.service systemd service required:

  • Edit /lib/systemd/system/bitsrun.service to specify absolute config path
  • Then start service with sudo systemctl start bitsrun

Cargo

  • cargo install bitsrun

Download binary

  • Download the latest binary from Releases.
  • Uncompress file: tar -xvf <file>.tar.gz
  • Move binary to $PATH, such as: mv <file>/bitsrun ~/.local/bin/

Usage

To log into or out of the campus network, simply:

$ bitsrun login -u <username> -p <password>
bitsrun: <ip> (<username>) logged in

$ bitsrun logout -u <username>
bitsrun: <ip> logged out

To check device login status:

$ bitsrun status
bitsrun: <ip> (<username>) is online
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ Traffic Used   โ”‚ Online Time   โ”‚ User Balance  โ”‚ Wallet  โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ 188.10 GiB     โ”‚ 2 months      โ”‚ 10.00         โ”‚ 0.00    โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

To keep the session alive, use bitsrun keep-alive:

$ bitsrun keep-alive
 INFO  bitsrun::daemon > starting daemon (<username>) with polling interval=3600s
 INFO  bitsrun::daemon > <ip> (<username>): login success,
 ...
 ^C INFO  bitsrun::daemon > <username>: gracefully exiting

Note

Use available system service managers to run bitsrun keep-alive as a daemon. (e.g., systemd for Linux, launchd for macOS, and Windows Service for Windows).

Available commands

$ bitsrun --help
A headless login and logout CLI for 10.0.0.55 at BIT

Usage: bitsrun [OPTIONS] [COMMAND]

Commands:
  login         Login to the campus network
  logout        Logout from the campus network
  status        Check device login status
  config-paths  List all possible config file paths
  keep-alive    Poll the server with login requests to keep the session alive
  help          Print this message or the help of the given subcommand(s)

Options:
  -v, --verbose  Verbose output
  -h, --help     Print help
  -V, --version  Print version

Tip

Use environment variable NO_COLOR=true to disable colored output.

Config and credentials

To save your credentials and configurations, create config file bit-user.json under an available config path as:

{
  "username": "<username>",
  "password": "<password>",
  "dm": true,
  "poll_interval": 3600
}
  • dm is for specifying whether the current device is a dumb terminal, and requires logging out through the alternative endpoint. Set to true (no quotes!) if the device you are working with is a dumb terminal.
  • poll_interval is an optional field for specifying the interval (in seconds) of polling login requests. Default is 3600 seconds (1 hour). Used by bitsrun keep-alive only.

Available config file paths can be listed with:

$ bitsrun config-paths
bitsrun: list of possible config paths
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ Priority โ”‚ Possible Config Path                                        โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ 1        โ”‚ /Users/spencerwoo/.config/bit-user.json                     โ”‚
โ”‚ 2        โ”‚ /Users/spencerwoo/.config/bitsrun/bit-user.json             โ”‚
โ”‚ 3        โ”‚ /Users/spencerwoo/Library/Preferences/bitsrun/bit-user.json โ”‚
โ”‚ 4        โ”‚ bit-user.json                                               โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Note

The config file location is OS-dependent. Run the command to check the accepted locations on your system.

Set permissions of this file to 600 on Linux and macOS, or bitsrun will refuse to read it.

$ chmod 600 <path/to/bit-user.json>

Related

  • zu1k/srun - Srun authentication system login tools. (Rust)
  • Mmx233/BitSrunLoginGo - ๆทฑๆพœๆ กๅ›ญ็ฝ‘็™ปๅฝ•่„šๆœฌ Go ่ฏญ่จ€็‰ˆ (Go)
  • vouv/srun - An efficient client for BIT campus network. (Go)
  • BITNP/bitsrun - A headless login / logout script for 10.0.0.55 at BIT. (Python)

License

MIT