mirror of
https://github.com/zerotier/ZeroTierOne.git
synced 2024-12-18 20:47:53 +00:00
.
This commit is contained in:
parent
63e6693255
commit
1711cced3e
@ -13,6 +13,51 @@
|
||||
|
||||
package cli
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
|
||||
"zerotier/pkg/zerotier"
|
||||
)
|
||||
|
||||
// Roots CLI command
|
||||
func Roots(basePath, authToken string, args []string) {
|
||||
func Roots(basePath, authToken string, args []string, jsonOutput bool) {
|
||||
var roots []zerotier.Root
|
||||
apiGet(basePath, authToken, "/root", &roots)
|
||||
|
||||
if jsonOutput {
|
||||
fmt.Println(jsonDump(roots))
|
||||
} else {
|
||||
fmt.Printf("%32s <ztaddr> <address(es)>\n", "<name>")
|
||||
for _, r := range roots {
|
||||
rn := r.Name
|
||||
if len(rn) > 32 {
|
||||
rn = rn[len(rn)-32:]
|
||||
}
|
||||
if r.Locator != nil {
|
||||
if len(r.Locator.Physical) == 0 && len(r.Locator.Virtual) == 0 {
|
||||
fmt.Printf("%32s %.10x -\n", rn, uint64(r.Locator.Identity.Address()))
|
||||
} else {
|
||||
fmt.Printf("%32s %.10x ", rn, uint64(r.Locator.Identity.Address()))
|
||||
for i, a := range r.Locator.Physical {
|
||||
if i > 0 {
|
||||
fmt.Print(',')
|
||||
}
|
||||
fmt.Print(a.String())
|
||||
}
|
||||
for i, a := range r.Locator.Virtual {
|
||||
if i > 0 || len(r.Locator.Physical) > 0 {
|
||||
fmt.Print(',')
|
||||
}
|
||||
fmt.Print(a.String())
|
||||
}
|
||||
fmt.Printf("\n")
|
||||
}
|
||||
} else {
|
||||
fmt.Printf("%32s - -\n", rn)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
os.Exit(0)
|
||||
}
|
||||
|
@ -115,7 +115,7 @@ func main() {
|
||||
cli.Peers(basePath, authToken, cmdArgs, *jflag)
|
||||
case "roots", "listroots", "listmoons":
|
||||
authTokenRequired(authToken)
|
||||
cli.Roots(basePath, authToken, cmdArgs)
|
||||
cli.Roots(basePath, authToken, cmdArgs, *jflag)
|
||||
case "addroot":
|
||||
authTokenRequired(authToken)
|
||||
cli.AddRoot(basePath, authToken, cmdArgs)
|
||||
|
@ -118,6 +118,9 @@ func NewIdentityFromString(s string) (*Identity, error) {
|
||||
return &id, nil
|
||||
}
|
||||
|
||||
// Address returns this identity's address
|
||||
func (id *Identity) Address() Address { return id.address }
|
||||
|
||||
// HasPrivate returns true if this identity has its own private portion.
|
||||
func (id *Identity) HasPrivate() bool { return len(id.privateKey) > 0 }
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user