github.com/scaleway/scaleway-cli@v1.11.1/pkg/cli/x_ips.go (about) 1 // Copyright (C) 2015 Scaleway. All rights reserved. 2 // Use of this source code is governed by a MIT-style 3 // license that can be found in the LICENSE.md file. 4 5 package cli 6 7 var cmdIPS = &Command{ 8 Exec: runIPS, 9 UsageLine: "_ips [OPTIONS] [IP_ID [SERVER_ID]]", 10 11 Description: "Interacts with your IPs", 12 Hidden: true, 13 Help: "Interacts with your IPs", 14 Examples: ` 15 $ scw _ips 16 $ scw _ips IP_ID 17 $ scw _ips --new 18 $ scw _ips --attach IP_ID SERVER_ID 19 $ scw _ips --delete IP_ID 20 $ scw _ips --detach IP_ID 21 `, 22 } 23 24 func init() { 25 cmdIPS.Flag.BoolVar(&ipHelp, []string{"h", "-help"}, false, "Print usage") 26 cmdIPS.Flag.BoolVar(&ipNew, []string{"n", "-new"}, false, "Add a new IP") 27 cmdIPS.Flag.BoolVar(&ipAttach, []string{"a", "-attach"}, false, "Attach an IP to a server") 28 cmdIPS.Flag.BoolVar(&ipDetach, []string{"-detach"}, false, "Detach an IP from a server") 29 cmdIPS.Flag.StringVar(&ipDelete, []string{"d", "-delete"}, "", "Detele an IP") 30 } 31 32 var ipHelp bool // -h, --help flag 33 var ipNew bool // -n, --new flag 34 var ipAttach bool // -a, --attach flag 35 var ipDetach bool // --detach flag 36 var ipDelete string // -d, --delete flag 37 38 func runIPS(cmd *Command, args []string) error { 39 if ipHelp { 40 return cmd.PrintUsage() 41 } 42 if ipNew { 43 ip, err := cmd.API.NewIP() 44 if err != nil { 45 return err 46 } 47 printRawMode(cmd.Streams().Stdout, ip) 48 return nil 49 } 50 if ipDelete != "" { 51 return cmd.API.DeleteIP(ipDelete) 52 } 53 if ipAttach { 54 if len(args) != 2 { 55 return cmd.PrintShortUsage() 56 } 57 return cmd.API.AttachIP(args[0], args[1]) 58 } 59 if ipDetach { 60 return cmd.API.DetachIP(args[0]) 61 } 62 if len(args) == 1 { 63 ip, err := cmd.API.GetIP(args[0]) 64 if err != nil { 65 return err 66 } 67 printRawMode(cmd.Streams().Stdout, *ip) 68 return nil 69 } 70 ips, err := cmd.API.GetIPS() 71 if err != nil { 72 return err 73 } 74 printRawMode(cmd.Streams().Stdout, *ips) 75 return nil 76 }