cmd/stcli: Make it build again
This commit is contained in:
parent
d8d3f05164
commit
81a9d7f2b9
@ -30,7 +30,7 @@ func init() {
|
|||||||
Name: "clear",
|
Name: "clear",
|
||||||
Usage: "Clear pending errors",
|
Usage: "Clear pending errors",
|
||||||
Requires: &cli.Requires{},
|
Requires: &cli.Requires{},
|
||||||
Action: wrappedHttpPost("system/error/clear"),
|
Action: wrappedHTTPPost("system/error/clear"),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|||||||
@ -102,7 +102,7 @@ func foldersList(c *cli.Context) {
|
|||||||
}
|
}
|
||||||
fmt.Fprintln(writer, "ID:\t", folder.ID, "\t")
|
fmt.Fprintln(writer, "ID:\t", folder.ID, "\t")
|
||||||
fmt.Fprintln(writer, "Path:\t", folder.RawPath, "\t(directory)")
|
fmt.Fprintln(writer, "Path:\t", folder.RawPath, "\t(directory)")
|
||||||
fmt.Fprintln(writer, "Folder master:\t", folder.ReadOnly, "\t(master)")
|
fmt.Fprintln(writer, "Folder type:\t", folder.Type, "\t(type)")
|
||||||
fmt.Fprintln(writer, "Ignore permissions:\t", folder.IgnorePerms, "\t(permissions)")
|
fmt.Fprintln(writer, "Ignore permissions:\t", folder.IgnorePerms, "\t(permissions)")
|
||||||
fmt.Fprintln(writer, "Rescan interval in seconds:\t", folder.RescanIntervalS, "\t(rescan)")
|
fmt.Fprintln(writer, "Rescan interval in seconds:\t", folder.RescanIntervalS, "\t(rescan)")
|
||||||
|
|
||||||
@ -112,9 +112,6 @@ func foldersList(c *cli.Context) {
|
|||||||
fmt.Fprintf(writer, "Versioning %s:\t %s \t(versioning-%s)\n", key, value, key)
|
fmt.Fprintf(writer, "Versioning %s:\t %s \t(versioning-%s)\n", key, value, key)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if folder.Invalid != "" {
|
|
||||||
fmt.Fprintln(writer, "Invalid:\t", folder.Invalid, "\t")
|
|
||||||
}
|
|
||||||
first = false
|
first = false
|
||||||
}
|
}
|
||||||
writer.Flush()
|
writer.Flush()
|
||||||
@ -151,7 +148,7 @@ func foldersOverride(c *cli.Context) {
|
|||||||
cfg := getConfig(c)
|
cfg := getConfig(c)
|
||||||
rid := c.Args()[0]
|
rid := c.Args()[0]
|
||||||
for _, folder := range cfg.Folders {
|
for _, folder := range cfg.Folders {
|
||||||
if folder.ID == rid && folder.ReadOnly {
|
if folder.ID == rid && folder.Type == config.FolderTypeReadOnly {
|
||||||
response := httpPost(c, "db/override", "")
|
response := httpPost(c, "db/override", "")
|
||||||
if response.StatusCode != 200 {
|
if response.StatusCode != 200 {
|
||||||
err := fmt.Sprint("Failed to override changes\nStatus code: ", response.StatusCode)
|
err := fmt.Sprint("Failed to override changes\nStatus code: ", response.StatusCode)
|
||||||
@ -187,8 +184,8 @@ func foldersGet(c *cli.Context) {
|
|||||||
switch arg {
|
switch arg {
|
||||||
case "directory":
|
case "directory":
|
||||||
fmt.Println(folder.RawPath)
|
fmt.Println(folder.RawPath)
|
||||||
case "master":
|
case "type":
|
||||||
fmt.Println(folder.ReadOnly)
|
fmt.Println(folder.Type)
|
||||||
case "permissions":
|
case "permissions":
|
||||||
fmt.Println(folder.IgnorePerms)
|
fmt.Println(folder.IgnorePerms)
|
||||||
case "rescan":
|
case "rescan":
|
||||||
@ -198,7 +195,7 @@ func foldersGet(c *cli.Context) {
|
|||||||
fmt.Println(folder.Versioning.Type)
|
fmt.Println(folder.Versioning.Type)
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
die("Invalid property: " + c.Args()[1] + "\nAvailable properties: directory, master, permissions, versioning, versioning-<key>")
|
die("Invalid property: " + c.Args()[1] + "\nAvailable properties: directory, type, permissions, versioning, versioning-<key>")
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -222,8 +219,12 @@ func foldersSet(c *cli.Context) {
|
|||||||
switch arg {
|
switch arg {
|
||||||
case "directory":
|
case "directory":
|
||||||
cfg.Folders[i].RawPath = val
|
cfg.Folders[i].RawPath = val
|
||||||
case "master":
|
case "type":
|
||||||
cfg.Folders[i].ReadOnly = parseBool(val)
|
var t config.FolderType
|
||||||
|
if err := t.UnmarshalText([]byte(val)); err != nil {
|
||||||
|
die("Invalid folder type: " + err.Error())
|
||||||
|
}
|
||||||
|
cfg.Folders[i].Type = t
|
||||||
case "permissions":
|
case "permissions":
|
||||||
cfg.Folders[i].IgnorePerms = parseBool(val)
|
cfg.Folders[i].IgnorePerms = parseBool(val)
|
||||||
case "rescan":
|
case "rescan":
|
||||||
|
|||||||
@ -25,25 +25,25 @@ func init() {
|
|||||||
Name: "restart",
|
Name: "restart",
|
||||||
Usage: "Restart syncthing",
|
Usage: "Restart syncthing",
|
||||||
Requires: &cli.Requires{},
|
Requires: &cli.Requires{},
|
||||||
Action: wrappedHttpPost("system/restart"),
|
Action: wrappedHTTPPost("system/restart"),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
Name: "shutdown",
|
Name: "shutdown",
|
||||||
Usage: "Shutdown syncthing",
|
Usage: "Shutdown syncthing",
|
||||||
Requires: &cli.Requires{},
|
Requires: &cli.Requires{},
|
||||||
Action: wrappedHttpPost("system/shutdown"),
|
Action: wrappedHTTPPost("system/shutdown"),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
Name: "reset",
|
Name: "reset",
|
||||||
Usage: "Reset syncthing deleting all folders and devices",
|
Usage: "Reset syncthing deleting all folders and devices",
|
||||||
Requires: &cli.Requires{},
|
Requires: &cli.Requires{},
|
||||||
Action: wrappedHttpPost("system/reset"),
|
Action: wrappedHTTPPost("system/reset"),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
Name: "upgrade",
|
Name: "upgrade",
|
||||||
Usage: "Upgrade syncthing (if a newer version is available)",
|
Usage: "Upgrade syncthing (if a newer version is available)",
|
||||||
Requires: &cli.Requires{},
|
Requires: &cli.Requires{},
|
||||||
Action: wrappedHttpPost("system/upgrade"),
|
Action: wrappedHTTPPost("system/upgrade"),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
Name: "version",
|
Name: "version",
|
||||||
@ -72,5 +72,5 @@ func generalVersion(c *cli.Context) {
|
|||||||
response := httpGet(c, "system/version")
|
response := httpGet(c, "system/version")
|
||||||
version := make(map[string]interface{})
|
version := make(map[string]interface{})
|
||||||
json.Unmarshal(responseToBArray(response), &version)
|
json.Unmarshal(responseToBArray(response), &version)
|
||||||
prettyPrintJson(version)
|
prettyPrintJSON(version)
|
||||||
}
|
}
|
||||||
|
|||||||
@ -45,8 +45,8 @@ func guiDump(c *cli.Context) {
|
|||||||
cfg := getConfig(c).GUI
|
cfg := getConfig(c).GUI
|
||||||
writer := newTableWriter()
|
writer := newTableWriter()
|
||||||
fmt.Fprintln(writer, "Enabled:\t", cfg.Enabled, "\t(enabled)")
|
fmt.Fprintln(writer, "Enabled:\t", cfg.Enabled, "\t(enabled)")
|
||||||
fmt.Fprintln(writer, "Use HTTPS:\t", cfg.UseTLS, "\t(tls)")
|
fmt.Fprintln(writer, "Use HTTPS:\t", cfg.UseTLS(), "\t(tls)")
|
||||||
fmt.Fprintln(writer, "Listen Addresses:\t", cfg.Address, "\t(address)")
|
fmt.Fprintln(writer, "Listen Addresses:\t", cfg.Address(), "\t(address)")
|
||||||
if cfg.User != "" {
|
if cfg.User != "" {
|
||||||
fmt.Fprintln(writer, "Authentication User:\t", cfg.User, "\t(username)")
|
fmt.Fprintln(writer, "Authentication User:\t", cfg.User, "\t(username)")
|
||||||
fmt.Fprintln(writer, "Authentication Password:\t", cfg.Password, "\t(password)")
|
fmt.Fprintln(writer, "Authentication Password:\t", cfg.Password, "\t(password)")
|
||||||
@ -64,9 +64,9 @@ func guiGet(c *cli.Context) {
|
|||||||
case "enabled":
|
case "enabled":
|
||||||
fmt.Println(cfg.Enabled)
|
fmt.Println(cfg.Enabled)
|
||||||
case "tls":
|
case "tls":
|
||||||
fmt.Println(cfg.UseTLS)
|
fmt.Println(cfg.UseTLS())
|
||||||
case "address":
|
case "address":
|
||||||
fmt.Println(cfg.Address)
|
fmt.Println(cfg.Address())
|
||||||
case "user":
|
case "user":
|
||||||
if cfg.User != "" {
|
if cfg.User != "" {
|
||||||
fmt.Println(cfg.User)
|
fmt.Println(cfg.User)
|
||||||
@ -92,10 +92,10 @@ func guiSet(c *cli.Context) {
|
|||||||
case "enabled":
|
case "enabled":
|
||||||
cfg.GUI.Enabled = parseBool(val)
|
cfg.GUI.Enabled = parseBool(val)
|
||||||
case "tls":
|
case "tls":
|
||||||
cfg.GUI.UseTLS = parseBool(val)
|
cfg.GUI.RawUseTLS = parseBool(val)
|
||||||
case "address":
|
case "address":
|
||||||
validAddress(val)
|
validAddress(val)
|
||||||
cfg.GUI.Address = val
|
cfg.GUI.RawAddress = val
|
||||||
case "user":
|
case "user":
|
||||||
cfg.GUI.User = val
|
cfg.GUI.User = val
|
||||||
case "password":
|
case "password":
|
||||||
|
|||||||
@ -39,7 +39,7 @@ func optionsDump(c *cli.Context) {
|
|||||||
cfg := getConfig(c).Options
|
cfg := getConfig(c).Options
|
||||||
writer := newTableWriter()
|
writer := newTableWriter()
|
||||||
|
|
||||||
fmt.Fprintln(writer, "Sync protocol listen addresses:\t", strings.Join(cfg.ListenAddress, " "), "\t(address)")
|
fmt.Fprintln(writer, "Sync protocol listen addresses:\t", strings.Join(cfg.ListenAddresses, " "), "\t(addresses)")
|
||||||
fmt.Fprintln(writer, "Global discovery enabled:\t", cfg.GlobalAnnEnabled, "\t(globalannenabled)")
|
fmt.Fprintln(writer, "Global discovery enabled:\t", cfg.GlobalAnnEnabled, "\t(globalannenabled)")
|
||||||
fmt.Fprintln(writer, "Global discovery servers:\t", strings.Join(cfg.GlobalAnnServers, " "), "\t(globalannserver)")
|
fmt.Fprintln(writer, "Global discovery servers:\t", strings.Join(cfg.GlobalAnnServers, " "), "\t(globalannserver)")
|
||||||
|
|
||||||
@ -50,9 +50,9 @@ func optionsDump(c *cli.Context) {
|
|||||||
fmt.Fprintln(writer, "Incoming rate limit in KiB/s:\t", cfg.MaxRecvKbps, "\t(maxrecv)")
|
fmt.Fprintln(writer, "Incoming rate limit in KiB/s:\t", cfg.MaxRecvKbps, "\t(maxrecv)")
|
||||||
fmt.Fprintln(writer, "Reconnect interval in seconds:\t", cfg.ReconnectIntervalS, "\t(reconnect)")
|
fmt.Fprintln(writer, "Reconnect interval in seconds:\t", cfg.ReconnectIntervalS, "\t(reconnect)")
|
||||||
fmt.Fprintln(writer, "Start browser:\t", cfg.StartBrowser, "\t(browser)")
|
fmt.Fprintln(writer, "Start browser:\t", cfg.StartBrowser, "\t(browser)")
|
||||||
fmt.Fprintln(writer, "Enable UPnP:\t", cfg.UPnPEnabled, "\t(upnp)")
|
fmt.Fprintln(writer, "Enable UPnP:\t", cfg.NATEnabled, "\t(nat)")
|
||||||
fmt.Fprintln(writer, "UPnP Lease in minutes:\t", cfg.UPnPLeaseM, "\t(upnplease)")
|
fmt.Fprintln(writer, "UPnP Lease in minutes:\t", cfg.NATLeaseM, "\t(natlease)")
|
||||||
fmt.Fprintln(writer, "UPnP Renewal period in minutes:\t", cfg.UPnPRenewalM, "\t(upnprenew)")
|
fmt.Fprintln(writer, "UPnP Renewal period in minutes:\t", cfg.NATRenewalM, "\t(natrenew)")
|
||||||
fmt.Fprintln(writer, "Restart on Wake Up:\t", cfg.RestartOnWakeup, "\t(wake)")
|
fmt.Fprintln(writer, "Restart on Wake Up:\t", cfg.RestartOnWakeup, "\t(wake)")
|
||||||
|
|
||||||
reporting := "unrecognized value"
|
reporting := "unrecognized value"
|
||||||
@ -74,7 +74,7 @@ func optionsGet(c *cli.Context) {
|
|||||||
arg := c.Args()[0]
|
arg := c.Args()[0]
|
||||||
switch strings.ToLower(arg) {
|
switch strings.ToLower(arg) {
|
||||||
case "address":
|
case "address":
|
||||||
fmt.Println(strings.Join(cfg.ListenAddress, "\n"))
|
fmt.Println(strings.Join(cfg.ListenAddresses, "\n"))
|
||||||
case "globalannenabled":
|
case "globalannenabled":
|
||||||
fmt.Println(cfg.GlobalAnnEnabled)
|
fmt.Println(cfg.GlobalAnnEnabled)
|
||||||
case "globalannservers":
|
case "globalannservers":
|
||||||
@ -91,12 +91,12 @@ func optionsGet(c *cli.Context) {
|
|||||||
fmt.Println(cfg.ReconnectIntervalS)
|
fmt.Println(cfg.ReconnectIntervalS)
|
||||||
case "browser":
|
case "browser":
|
||||||
fmt.Println(cfg.StartBrowser)
|
fmt.Println(cfg.StartBrowser)
|
||||||
case "upnp":
|
case "nat":
|
||||||
fmt.Println(cfg.UPnPEnabled)
|
fmt.Println(cfg.NATEnabled)
|
||||||
case "upnplease":
|
case "natlease":
|
||||||
fmt.Println(cfg.UPnPLeaseM)
|
fmt.Println(cfg.NATLeaseM)
|
||||||
case "upnprenew":
|
case "natrenew":
|
||||||
fmt.Println(cfg.UPnPRenewalM)
|
fmt.Println(cfg.NATRenewalM)
|
||||||
case "reporting":
|
case "reporting":
|
||||||
switch cfg.URAccepted {
|
switch cfg.URAccepted {
|
||||||
case -1:
|
case -1:
|
||||||
@ -124,7 +124,7 @@ func optionsSet(c *cli.Context) {
|
|||||||
for _, item := range c.Args().Tail() {
|
for _, item := range c.Args().Tail() {
|
||||||
validAddress(item)
|
validAddress(item)
|
||||||
}
|
}
|
||||||
config.Options.ListenAddress = c.Args().Tail()
|
config.Options.ListenAddresses = c.Args().Tail()
|
||||||
case "globalannenabled":
|
case "globalannenabled":
|
||||||
config.Options.GlobalAnnEnabled = parseBool(val)
|
config.Options.GlobalAnnEnabled = parseBool(val)
|
||||||
case "globalannserver":
|
case "globalannserver":
|
||||||
@ -144,12 +144,12 @@ func optionsSet(c *cli.Context) {
|
|||||||
config.Options.ReconnectIntervalS = parseUint(val)
|
config.Options.ReconnectIntervalS = parseUint(val)
|
||||||
case "browser":
|
case "browser":
|
||||||
config.Options.StartBrowser = parseBool(val)
|
config.Options.StartBrowser = parseBool(val)
|
||||||
case "upnp":
|
case "nat":
|
||||||
config.Options.UPnPEnabled = parseBool(val)
|
config.Options.NATEnabled = parseBool(val)
|
||||||
case "upnplease":
|
case "natlease":
|
||||||
config.Options.UPnPLeaseM = parseUint(val)
|
config.Options.NATLeaseM = parseUint(val)
|
||||||
case "upnprenew":
|
case "natrenew":
|
||||||
config.Options.UPnPRenewalM = parseUint(val)
|
config.Options.NATRenewalM = parseUint(val)
|
||||||
case "reporting":
|
case "reporting":
|
||||||
switch strings.ToLower(val) {
|
switch strings.ToLower(val) {
|
||||||
case "u", "undecided", "unset":
|
case "u", "undecided", "unset":
|
||||||
|
|||||||
@ -39,7 +39,7 @@ func reportSystem(c *cli.Context) {
|
|||||||
response := httpGet(c, "system/status")
|
response := httpGet(c, "system/status")
|
||||||
data := make(map[string]interface{})
|
data := make(map[string]interface{})
|
||||||
json.Unmarshal(responseToBArray(response), &data)
|
json.Unmarshal(responseToBArray(response), &data)
|
||||||
prettyPrintJson(data)
|
prettyPrintJSON(data)
|
||||||
}
|
}
|
||||||
|
|
||||||
func reportConnections(c *cli.Context) {
|
func reportConnections(c *cli.Context) {
|
||||||
@ -53,12 +53,12 @@ func reportConnections(c *cli.Context) {
|
|||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
value["Device ID"] = key
|
value["Device ID"] = key
|
||||||
prettyPrintJson(value)
|
prettyPrintJSON(value)
|
||||||
fmt.Println()
|
fmt.Println()
|
||||||
}
|
}
|
||||||
if overall != nil {
|
if overall != nil {
|
||||||
fmt.Println("=== Overall statistics ===")
|
fmt.Println("=== Overall statistics ===")
|
||||||
prettyPrintJson(overall)
|
prettyPrintJSON(overall)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -66,5 +66,5 @@ func reportUsage(c *cli.Context) {
|
|||||||
response := httpGet(c, "svc/report")
|
response := httpGet(c, "svc/report")
|
||||||
report := make(map[string]interface{})
|
report := make(map[string]interface{})
|
||||||
json.Unmarshal(responseToBArray(response), &report)
|
json.Unmarshal(responseToBArray(response), &report)
|
||||||
prettyPrintJson(report)
|
prettyPrintJSON(report)
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
var jsonAttributeLabels map[string]string = map[string]string{
|
var jsonAttributeLabels = map[string]string{
|
||||||
"folderMaxMiB": "Largest folder size in MiB",
|
"folderMaxMiB": "Largest folder size in MiB",
|
||||||
"folderMaxFiles": "Largest folder file count",
|
"folderMaxFiles": "Largest folder file count",
|
||||||
"longVersion": "Long version",
|
"longVersion": "Long version",
|
||||||
|
|||||||
@ -34,13 +34,13 @@ func die(vals ...interface{}) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func wrappedHttpPost(url string) func(c *cli.Context) {
|
func wrappedHTTPPost(url string) func(c *cli.Context) {
|
||||||
return func(c *cli.Context) {
|
return func(c *cli.Context) {
|
||||||
httpPost(c, url, "")
|
httpPost(c, url, "")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func prettyPrintJson(json map[string]interface{}) {
|
func prettyPrintJSON(json map[string]interface{}) {
|
||||||
writer := newTableWriter()
|
writer := newTableWriter()
|
||||||
remap := make(map[string]interface{})
|
remap := make(map[string]interface{})
|
||||||
for k, v := range json {
|
for k, v := range json {
|
||||||
@ -51,12 +51,12 @@ func prettyPrintJson(json map[string]interface{}) {
|
|||||||
remap[key] = v
|
remap[key] = v
|
||||||
}
|
}
|
||||||
|
|
||||||
json_keys := make([]string, 0, len(remap))
|
jsonKeys := make([]string, 0, len(remap))
|
||||||
for key := range remap {
|
for key := range remap {
|
||||||
json_keys = append(json_keys, key)
|
jsonKeys = append(jsonKeys, key)
|
||||||
}
|
}
|
||||||
sort.Strings(json_keys)
|
sort.Strings(jsonKeys)
|
||||||
for _, k := range json_keys {
|
for _, k := range jsonKeys {
|
||||||
value := ""
|
value := ""
|
||||||
rvalue := remap[k]
|
rvalue := remap[k]
|
||||||
switch rvalue.(type) {
|
switch rvalue.(type) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user