github.com/dim13/unifi@v0.0.0-20230308161331-9b04946f5e93/cmd/list-sites/main.go (about) 1 // Copyright (c) 2014 Dimitri Sokolyuk. All rights reserved. 2 // Use of this source code is governed by ISC-style license 3 // that can be found in the LICENSE file. 4 5 // Example command list-sites 6 // List sites of a given controller 7 package main 8 9 import ( 10 "flag" 11 "fmt" 12 "log" 13 "os" 14 "strconv" 15 "strings" 16 "text/tabwriter" 17 18 "github.com/dim13/unifi" 19 ) 20 21 var ( 22 host = flag.String("host", "unifi", "Controller hostname") 23 user = flag.String("user", "ubnt", "Controller username") 24 pass = flag.String("pass", "ubnt", "Controller password") 25 port = flag.String("port", "8443", "Controller port") 26 version = flag.Int("version", 5, "Controller base version") 27 site = flag.String("siteid", "defaulid", "Site name or description, UniFi v3 only") 28 ) 29 30 func main() { 31 w := new(tabwriter.Writer) 32 w.Init(os.Stdout, 0, 8, 3, ' ', 0) 33 defer w.Flush() 34 35 flag.Parse() 36 u, err := unifi.Login(*user, *pass, *host, *port, *site, *version) 37 if err != nil { 38 log.Fatal("Login returned error: ", err) 39 } 40 defer u.Logout() 41 42 sites, err := u.Sites() 43 if err != nil { 44 log.Fatal(err) 45 } 46 47 fmt.Fprintln(w, "Description\tName\tRole\tAttrHiddenID,\tAttrNoDelete") 48 for _, s := range sites { 49 p := []string{ 50 s.Desc, 51 s.Name, 52 s.Role, 53 s.AttrHiddenID, 54 strconv.FormatBool(s.AttrNoDelete), 55 } 56 fmt.Fprintln(w, strings.Join(p, "\t")) 57 } 58 }