refactor: update CLI command usage and improve argument handling
This commit is contained in:
@@ -51,10 +51,10 @@ export MAILINABOX_PASSWORD=password
|
||||
Commands:
|
||||
|
||||
```sh
|
||||
miab list [--type TXT]
|
||||
miab set --name foo.example.com --type TXT --value "hello"
|
||||
miab add --name foo.example.com --type A --value 1.2.3.4
|
||||
miab delete --name foo.example.com --type TXT [--value "hello"]
|
||||
miab list [--type TXT]
|
||||
miab set [--type TXT] foo.example.com "hello"
|
||||
miab add [--type A] foo.example.com 1.2.3.4
|
||||
miab delete [--type TXT] foo.example.com ["hello"]
|
||||
```
|
||||
|
||||
## AI Disclaimer
|
||||
|
||||
+25
-27
@@ -13,10 +13,10 @@ func usage() {
|
||||
fmt.Fprintf(os.Stderr, `Usage: miab <command> [options]
|
||||
|
||||
Commands:
|
||||
list List custom DNS records
|
||||
set Set (replace) a DNS record
|
||||
delete Delete a DNS record
|
||||
add Add a DNS record
|
||||
list [--type TYPE] List custom DNS records
|
||||
set [--type TYPE] <name> <value> Set (replace) a DNS record
|
||||
add [--type TYPE] <name> <value> Add a DNS record
|
||||
delete [--type TYPE] <name> [value] Delete a DNS record
|
||||
|
||||
Credentials: any empty parameter falls back to environment variables.
|
||||
MIAB_HOST / MAILINABOX_BASE_URL Mail-in-a-Box hostname (MIAB_HOST takes precedence;
|
||||
@@ -26,7 +26,7 @@ Credentials: any empty parameter falls back to environment variables.
|
||||
`)
|
||||
}
|
||||
|
||||
func mustClient() *miab.Client {
|
||||
func miabClient() *miab.Client {
|
||||
c, err := miab.NewClient("", "", "")
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, err)
|
||||
@@ -68,7 +68,7 @@ func runList(args []string) {
|
||||
recordType := fs.String("type", "", "Filter by record type (e.g. A, TXT, MX)")
|
||||
fs.Parse(args)
|
||||
|
||||
client := mustClient()
|
||||
client := miabClient()
|
||||
records, err := client.ListRecords(*recordType)
|
||||
if err != nil {
|
||||
fmt.Fprintf(os.Stderr, "miab: %v\n", err)
|
||||
@@ -87,18 +87,17 @@ func runList(args []string) {
|
||||
|
||||
func runSet(args []string) {
|
||||
fs := flag.NewFlagSet("set", flag.ExitOnError)
|
||||
name := fs.String("name", "", "Domain name")
|
||||
recordType := fs.String("type", "", "Record type (e.g. A, TXT)")
|
||||
value := fs.String("value", "", "Record value")
|
||||
recordType := fs.String("type", "A", "Record type (e.g. A, TXT)")
|
||||
fs.Parse(args)
|
||||
|
||||
if *name == "" || *recordType == "" || *value == "" {
|
||||
fmt.Fprintln(os.Stderr, "miab set: --name, --type and --value are required")
|
||||
if fs.NArg() < 2 {
|
||||
fmt.Fprintln(os.Stderr, "miab set: usage: set [--type TYPE] <name> <value>")
|
||||
os.Exit(1)
|
||||
}
|
||||
name, value := fs.Arg(0), fs.Arg(1)
|
||||
|
||||
client := mustClient()
|
||||
if err := client.SetRecord(*name, *recordType, *value); err != nil {
|
||||
client := miabClient()
|
||||
if err := client.SetRecord(name, *recordType, value); err != nil {
|
||||
fmt.Fprintf(os.Stderr, "miab: %v\n", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
@@ -106,18 +105,18 @@ func runSet(args []string) {
|
||||
|
||||
func runDelete(args []string) {
|
||||
fs := flag.NewFlagSet("delete", flag.ExitOnError)
|
||||
name := fs.String("name", "", "Domain name")
|
||||
recordType := fs.String("type", "", "Record type (e.g. A, TXT)")
|
||||
value := fs.String("value", "", "Record value (optional)")
|
||||
recordType := fs.String("type", "A", "Record type (e.g. A, TXT)")
|
||||
fs.Parse(args)
|
||||
|
||||
if *name == "" || *recordType == "" {
|
||||
fmt.Fprintln(os.Stderr, "miab delete: --name and --type are required")
|
||||
if fs.NArg() < 1 {
|
||||
fmt.Fprintln(os.Stderr, "miab delete: usage: delete [--type TYPE] <name> [value]")
|
||||
os.Exit(1)
|
||||
}
|
||||
name := fs.Arg(0)
|
||||
value := fs.Arg(1)
|
||||
|
||||
client := mustClient()
|
||||
if err := client.DeleteRecord(*name, *recordType, *value); err != nil {
|
||||
client := miabClient()
|
||||
if err := client.DeleteRecord(name, *recordType, value); err != nil {
|
||||
fmt.Fprintf(os.Stderr, "miab: %v\n", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
@@ -125,18 +124,17 @@ func runDelete(args []string) {
|
||||
|
||||
func runAdd(args []string) {
|
||||
fs := flag.NewFlagSet("add", flag.ExitOnError)
|
||||
name := fs.String("name", "", "Domain name")
|
||||
recordType := fs.String("type", "", "Record type (e.g. A, TXT)")
|
||||
value := fs.String("value", "", "Record value")
|
||||
recordType := fs.String("type", "A", "Record type (e.g. A, TXT)")
|
||||
fs.Parse(args)
|
||||
|
||||
if *name == "" || *recordType == "" || *value == "" {
|
||||
fmt.Fprintln(os.Stderr, "miab add: --name, --type and --value are required")
|
||||
if fs.NArg() < 2 {
|
||||
fmt.Fprintln(os.Stderr, "miab add: usage: add [--type TYPE] <name> <value>")
|
||||
os.Exit(1)
|
||||
}
|
||||
name, value := fs.Arg(0), fs.Arg(1)
|
||||
|
||||
client := mustClient()
|
||||
if err := client.AddRecord(*name, *recordType, *value); err != nil {
|
||||
client := miabClient()
|
||||
if err := client.AddRecord(name, *recordType, value); err != nil {
|
||||
fmt.Fprintf(os.Stderr, "miab: %v\n", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user