lots o progress

- added 'command' subcommand
- removed viper
- setup commands added
- still a WIP
- readme TODO update
This commit is contained in:
2025-06-17 23:12:49 -04:00
parent 77bb3166c4
commit fe37cac2da
25 changed files with 456 additions and 488 deletions

View File

@@ -3,8 +3,7 @@ mctl is a terminal-friendly remote console client
# Index
1. [Installation](#installation)
2. [Setup](#setup)
3. [Documentation](#documentation)
2. [Use](#use)
4. [Security](#security)
5. [Development](#development)
@@ -13,18 +12,31 @@ mctl is a terminal-friendly remote console client
# Installation
Install mctl using golang
```bash
go install code.jakeyoungdev.com/jake/mctl@main #it is recommended to use a tagged version
go install code.jakeyoungdev.com/jake/mctl@main
```
<br />
# Setup
# Use
### Configuring mctl
mctl requires a one-time setup via the 'config' command before interacting with any servers, password is entered securely from the terminal and encrypted
mctl requires a one-time setup via the 'init' command before using any other commands
```bash
mctl config -s <serveraddress> -p <rconport>
mctl init
```
### Add a server
A
### Connecting to server
Once the client has been configured commands can be sent to the server using the 'login' command. This will authenticate you with the game server and enter the command loop, the session is logged out when the command loop is broken
@@ -94,23 +106,6 @@ mctl clear
<br />
# Documentation
### Commands
|Command|Description|
|---|---|
|config|used to update the config file|
|login|makes connection request to the server using saved configuration and enters command loop|
|save \<name>|saves specific command for reuse|
|view \<name>|displays saved command|
|delete \<name>|deletes saved command|
|run \<name> args...|runs saved command filling placeholders with supplied args|
|clear|clears config file|
### Configuration file
All configuration data will be kept in the home directory and any sensitive data is encrypted for added security
<br />
# Security
RCon is an inherently insecure protocol, passwords are sent in plaintext and, if possible, the port should not be exposed to the internet. It is best to keep these connections local or over a VPN.
@@ -122,8 +117,10 @@ mctl utilizes [govulncheck](https://pkg.go.dev/golang.org/x/vuln/cmd/govulncheck
this repo is currently in development and may encounter breaking changes, use a tag to prevent any surprises
# TODO
1. continue sqlite update
2. migrate the credentials to sqlite as well
3. login too
4. MCR client also has viper stuff, gut it
5. Since we are now using sqlite should we just encode the pwd and insert
6. Do we use CheckErr or use RunE
7. update readme, the commands are all broken
9. do saved commands run on default server only? Yes, but add -s
mctl command run tp nutlift -s server
10. RUN COMMAND
11. Command descriptions, examples, and silence usage
12. lol "default" server functionality (which means setting which one w default command)