feat: allow to only destroy remote server

This commit is contained in:
decentral1se 2022-01-02 01:52:49 +01:00
parent 2c78ac22e0
commit 93c7612efc
Signed by: decentral1se
GPG Key ID: 03789458B3D0C410
2 changed files with 18 additions and 12 deletions

View File

@ -222,7 +222,6 @@ API tokens are read from the environment if specified, e.g.
Where "$provider_TOKEN" is the expected env var format. Where "$provider_TOKEN" is the expected env var format.
`, `,
ArgsUsage: "<provider>",
Flags: []cli.Flag{ Flags: []cli.Flag{
internal.ServerProviderFlag, internal.ServerProviderFlag,

View File

@ -102,7 +102,7 @@ destroyed.
var serverRemoveCommand = &cli.Command{ var serverRemoveCommand = &cli.Command{
Name: "remove", Name: "remove",
Aliases: []string{"rm"}, Aliases: []string{"rm"},
ArgsUsage: "<server>", ArgsUsage: "[<server>]",
Usage: "Remove a managed server", Usage: "Remove a managed server",
Description: ` Description: `
This command removes a server from Abra management. This command removes a server from Abra management.
@ -117,15 +117,20 @@ like tears in rain.
`, `,
Flags: []cli.Flag{ Flags: []cli.Flag{
rmServerFlag, rmServerFlag,
internal.ServerProviderFlag,
// Hetzner // Hetzner
internal.HetznerCloudNameFlag, internal.HetznerCloudNameFlag,
internal.HetznerCloudAPITokenFlag, internal.HetznerCloudAPITokenFlag,
}, },
Action: func(c *cli.Context) error { Action: func(c *cli.Context) error {
serverName, err := internal.ValidateServer(c) serverName := c.Args().Get(1)
if err != nil { if serverName != "" {
logrus.Fatal(err) var err error
serverName, err = internal.ValidateServer(c)
if err != nil {
logrus.Fatal(err)
}
} }
if !rmServer { if !rmServer {
@ -160,15 +165,17 @@ like tears in rain.
} }
if err := client.DeleteContext(serverName); err != nil { if serverName != "" {
logrus.Fatal(err) if err := client.DeleteContext(serverName); err != nil {
} logrus.Fatal(err)
}
if err := os.RemoveAll(filepath.Join(config.SERVERS_DIR, serverName)); err != nil { if err := os.RemoveAll(filepath.Join(config.SERVERS_DIR, serverName)); err != nil {
logrus.Fatal(err) logrus.Fatal(err)
} }
logrus.Infof("server at %s has been lost in time, like tears in rain", serverName) logrus.Infof("server at %s has been lost in time, like tears in rain", serverName)
}
return nil return nil
}, },