new/clear-command #8
17
README.md
17
README.md
@ -1,6 +1,13 @@
|
||||
# mctl
|
||||
mctl is a terminal-friendly remote console client
|
||||
|
||||
## Index
|
||||
1. [Installation](#installation)
|
||||
2. [Setup](#setup)
|
||||
3. [Documentation](#documentation)
|
||||
4. [Security](#security)
|
||||
5. [Development](#development)
|
||||
|
||||
## Installation
|
||||
Install mctl using golang
|
||||
```bash
|
||||
@ -75,6 +82,13 @@ Commands can be deleted with:
|
||||
mctl delete <name>
|
||||
```
|
||||
|
||||
### Clear configuration file
|
||||
To clear all fields from the configuration file use:
|
||||
```bash
|
||||
#CAUTION: If the config file is cleared all data previously saved will be lost forever
|
||||
mctl clear
|
||||
```
|
||||
|
||||
## Documentation
|
||||
### Commands
|
||||
|Command|Description|
|
||||
@ -85,6 +99,7 @@ mctl delete <name>
|
||||
|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|
|
||||
|
||||
### Flags
|
||||
#### config
|
||||
@ -102,4 +117,4 @@ RCon is an inherently insecure protocol, passwords are sent in plaintext and, if
|
||||
mctl utilizes [govulncheck](https://pkg.go.dev/golang.org/x/vuln/cmd/govulncheck) and [gosec](https://github.com/securego/gosec) in workflows to ensure quality, secure code is being pushed. These workflow steps must pass before a PR will be accepted
|
||||
|
||||
## Development
|
||||
this repo is currently in heavy development and may encounter breaking changes, use a tag to prevent any surprises
|
||||
this repo is currently in development and may encounter breaking changes, use a tag to prevent any surprises
|
44
cmd/clear.go
Normal file
44
cmd/clear.go
Normal file
@ -0,0 +1,44 @@
|
||||
/*
|
||||
Copyright © 2025 Jake jake.young.dev@gmail.com
|
||||
*/
|
||||
package cmd
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
|
||||
"code.jakeyoungdev.com/jake/mctl/models"
|
||||
"github.com/spf13/cobra"
|
||||
"github.com/spf13/viper"
|
||||
)
|
||||
|
||||
// clearCmd represents the clear command
|
||||
var clearCmd = &cobra.Command{
|
||||
Use: "clear",
|
||||
Short: "Clear config file",
|
||||
Long: `Removes the configuration file from the system. The
|
||||
config command must be run before use after clearing.`,
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
home, err := os.UserHomeDir()
|
||||
cobra.CheckErr(err)
|
||||
|
||||
viper.AddConfigPath(home)
|
||||
viper.SetConfigType("yaml")
|
||||
viper.SetConfigName(".mctl")
|
||||
|
||||
err = viper.ReadInConfig()
|
||||
if err == nil {
|
||||
//clear values if file exists
|
||||
for _, v := range models.ConfigFields {
|
||||
viper.Set(v, "")
|
||||
}
|
||||
err := viper.WriteConfig()
|
||||
cobra.CheckErr(err)
|
||||
fmt.Println("Config file cleared, use 'config' command to re-populate it")
|
||||
}
|
||||
},
|
||||
}
|
||||
|
||||
func init() {
|
||||
rootCmd.AddCommand(clearCmd)
|
||||
}
|
@ -76,9 +76,8 @@ func initConfig() {
|
||||
viper.SetConfigName(".mctl")
|
||||
viper.AutomaticEnv()
|
||||
err = viper.ReadInConfig()
|
||||
cobra.CheckErr(err)
|
||||
|
||||
if err := viper.ReadInConfig(); err != nil {
|
||||
if err != nil {
|
||||
//file does not exist, create it
|
||||
viper.Set("server", cfgserver)
|
||||
viper.Set("password", "")
|
||||
|
4
models/data.go
Normal file
4
models/data.go
Normal file
@ -0,0 +1,4 @@
|
||||
package models
|
||||
|
||||
//list of all fields kept in config file
|
||||
var ConfigFields = [6]string{"customcmd", "device", "nonce", "port", "server", "password"}
|
Loading…
x
Reference in New Issue
Block a user