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.
`,
ArgsUsage: "<provider>",
Flags: []cli.Flag{
internal.ServerProviderFlag,

View File

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