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