|
|
|
@ -1,7 +1,11 @@
|
|
|
|
|
package internal
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"github.com/urfave/cli/v2"
|
|
|
|
|
"os"
|
|
|
|
|
|
|
|
|
|
logrusStack "github.com/Gurpartap/logrus-stack"
|
|
|
|
|
"github.com/sirupsen/logrus"
|
|
|
|
|
"github.com/urfave/cli"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
// Secrets stores the variable from SecretsFlag
|
|
|
|
@ -9,9 +13,7 @@ var Secrets bool
|
|
|
|
|
|
|
|
|
|
// SecretsFlag turns on/off automatically generating secrets
|
|
|
|
|
var SecretsFlag = &cli.BoolFlag{
|
|
|
|
|
Name: "secrets",
|
|
|
|
|
Aliases: []string{"ss"},
|
|
|
|
|
Value: false,
|
|
|
|
|
Name: "secrets, ss",
|
|
|
|
|
Usage: "Automatically generate secrets",
|
|
|
|
|
Destination: &Secrets,
|
|
|
|
|
}
|
|
|
|
@ -21,9 +23,7 @@ var Pass bool
|
|
|
|
|
|
|
|
|
|
// PassFlag turns on/off storing generated secrets in pass
|
|
|
|
|
var PassFlag = &cli.BoolFlag{
|
|
|
|
|
Name: "pass",
|
|
|
|
|
Aliases: []string{"p"},
|
|
|
|
|
Value: false,
|
|
|
|
|
Name: "pass, p",
|
|
|
|
|
Usage: "Store the generated secrets in a local pass store",
|
|
|
|
|
Destination: &Pass,
|
|
|
|
|
}
|
|
|
|
@ -33,9 +33,8 @@ var Context string
|
|
|
|
|
|
|
|
|
|
// ContextFlag is temp
|
|
|
|
|
var ContextFlag = &cli.StringFlag{
|
|
|
|
|
Name: "context",
|
|
|
|
|
Name: "context, c",
|
|
|
|
|
Value: "",
|
|
|
|
|
Aliases: []string{"c"},
|
|
|
|
|
Destination: &Context,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -44,9 +43,7 @@ var Force bool
|
|
|
|
|
|
|
|
|
|
// ForceFlag turns on/off force functionality.
|
|
|
|
|
var ForceFlag = &cli.BoolFlag{
|
|
|
|
|
Name: "force",
|
|
|
|
|
Value: false,
|
|
|
|
|
Aliases: []string{"f"},
|
|
|
|
|
Name: "force, f",
|
|
|
|
|
Usage: "Perform action without further prompt. Use with care!",
|
|
|
|
|
Destination: &Force,
|
|
|
|
|
}
|
|
|
|
@ -56,9 +53,7 @@ var Chaos bool
|
|
|
|
|
|
|
|
|
|
// ChaosFlag turns on/off chaos functionality.
|
|
|
|
|
var ChaosFlag = &cli.BoolFlag{
|
|
|
|
|
Name: "chaos",
|
|
|
|
|
Value: false,
|
|
|
|
|
Aliases: []string{"ch"},
|
|
|
|
|
Name: "chaos, ch",
|
|
|
|
|
Usage: "Deploy uncommitted recipes changes. Use with care!",
|
|
|
|
|
Destination: &Chaos,
|
|
|
|
|
}
|
|
|
|
@ -68,18 +63,15 @@ var DNSProvider string
|
|
|
|
|
|
|
|
|
|
// DNSProviderFlag selects a DNS provider.
|
|
|
|
|
var DNSProviderFlag = &cli.StringFlag{
|
|
|
|
|
Name: "provider",
|
|
|
|
|
Name: "provider, p",
|
|
|
|
|
Value: "",
|
|
|
|
|
Aliases: []string{"p"},
|
|
|
|
|
Usage: "DNS provider",
|
|
|
|
|
Destination: &DNSProvider,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var NoInput bool
|
|
|
|
|
var NoInputFlag = &cli.BoolFlag{
|
|
|
|
|
Name: "no-input",
|
|
|
|
|
Value: false,
|
|
|
|
|
Aliases: []string{"n"},
|
|
|
|
|
Name: "no-input, n",
|
|
|
|
|
Usage: "Toggle non-interactive mode",
|
|
|
|
|
Destination: &NoInput,
|
|
|
|
|
}
|
|
|
|
@ -87,9 +79,8 @@ var NoInputFlag = &cli.BoolFlag{
|
|
|
|
|
var DNSType string
|
|
|
|
|
|
|
|
|
|
var DNSTypeFlag = &cli.StringFlag{
|
|
|
|
|
Name: "type",
|
|
|
|
|
Name: "type, t",
|
|
|
|
|
Value: "",
|
|
|
|
|
Aliases: []string{"t"},
|
|
|
|
|
Usage: "Domain name record type (e.g. A)",
|
|
|
|
|
Destination: &DNSType,
|
|
|
|
|
}
|
|
|
|
@ -97,9 +88,8 @@ var DNSTypeFlag = &cli.StringFlag{
|
|
|
|
|
var DNSName string
|
|
|
|
|
|
|
|
|
|
var DNSNameFlag = &cli.StringFlag{
|
|
|
|
|
Name: "name",
|
|
|
|
|
Name: "name, n",
|
|
|
|
|
Value: "",
|
|
|
|
|
Aliases: []string{"n"},
|
|
|
|
|
Usage: "Domain name record name (e.g. mysubdomain)",
|
|
|
|
|
Destination: &DNSName,
|
|
|
|
|
}
|
|
|
|
@ -107,18 +97,16 @@ var DNSNameFlag = &cli.StringFlag{
|
|
|
|
|
var DNSValue string
|
|
|
|
|
|
|
|
|
|
var DNSValueFlag = &cli.StringFlag{
|
|
|
|
|
Name: "value",
|
|
|
|
|
Name: "value, v",
|
|
|
|
|
Value: "",
|
|
|
|
|
Aliases: []string{"v"},
|
|
|
|
|
Usage: "Domain name record value (e.g. 192.168.1.1)",
|
|
|
|
|
Destination: &DNSValue,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var DNSTTL string
|
|
|
|
|
var DNSTTLFlag = &cli.StringFlag{
|
|
|
|
|
Name: "ttl",
|
|
|
|
|
Name: "ttl, T",
|
|
|
|
|
Value: "600s",
|
|
|
|
|
Aliases: []string{"T"},
|
|
|
|
|
Usage: "Domain name TTL value (seconds)",
|
|
|
|
|
Destination: &DNSTTL,
|
|
|
|
|
}
|
|
|
|
@ -126,9 +114,8 @@ var DNSTTLFlag = &cli.StringFlag{
|
|
|
|
|
var DNSPriority int
|
|
|
|
|
|
|
|
|
|
var DNSPriorityFlag = &cli.IntFlag{
|
|
|
|
|
Name: "priority",
|
|
|
|
|
Name: "priority, P",
|
|
|
|
|
Value: 10,
|
|
|
|
|
Aliases: []string{"P"},
|
|
|
|
|
Usage: "Domain name priority value",
|
|
|
|
|
Destination: &DNSPriority,
|
|
|
|
|
}
|
|
|
|
@ -136,8 +123,7 @@ var DNSPriorityFlag = &cli.IntFlag{
|
|
|
|
|
var ServerProvider string
|
|
|
|
|
|
|
|
|
|
var ServerProviderFlag = &cli.StringFlag{
|
|
|
|
|
Name: "provider",
|
|
|
|
|
Aliases: []string{"p"},
|
|
|
|
|
Name: "provider, p",
|
|
|
|
|
Usage: "3rd party server provider",
|
|
|
|
|
Destination: &ServerProvider,
|
|
|
|
|
}
|
|
|
|
@ -145,9 +131,8 @@ var ServerProviderFlag = &cli.StringFlag{
|
|
|
|
|
var CapsulInstanceURL string
|
|
|
|
|
|
|
|
|
|
var CapsulInstanceURLFlag = &cli.StringFlag{
|
|
|
|
|
Name: "capsul-url",
|
|
|
|
|
Name: "capsul-url, cu",
|
|
|
|
|
Value: "yolo.servers.coop",
|
|
|
|
|
Aliases: []string{"cu"},
|
|
|
|
|
Usage: "capsul instance URL",
|
|
|
|
|
Destination: &CapsulInstanceURL,
|
|
|
|
|
}
|
|
|
|
@ -155,9 +140,8 @@ var CapsulInstanceURLFlag = &cli.StringFlag{
|
|
|
|
|
var CapsulName string
|
|
|
|
|
|
|
|
|
|
var CapsulNameFlag = &cli.StringFlag{
|
|
|
|
|
Name: "capsul-name",
|
|
|
|
|
Name: "capsul-name, cn",
|
|
|
|
|
Value: "",
|
|
|
|
|
Aliases: []string{"cn"},
|
|
|
|
|
Usage: "capsul name",
|
|
|
|
|
Destination: &CapsulName,
|
|
|
|
|
}
|
|
|
|
@ -165,9 +149,8 @@ var CapsulNameFlag = &cli.StringFlag{
|
|
|
|
|
var CapsulType string
|
|
|
|
|
|
|
|
|
|
var CapsulTypeFlag = &cli.StringFlag{
|
|
|
|
|
Name: "capsul-type",
|
|
|
|
|
Name: "capsul-type, ct",
|
|
|
|
|
Value: "f1-xs",
|
|
|
|
|
Aliases: []string{"ct"},
|
|
|
|
|
Usage: "capsul type",
|
|
|
|
|
Destination: &CapsulType,
|
|
|
|
|
}
|
|
|
|
@ -175,38 +158,33 @@ var CapsulTypeFlag = &cli.StringFlag{
|
|
|
|
|
var CapsulImage string
|
|
|
|
|
|
|
|
|
|
var CapsulImageFlag = &cli.StringFlag{
|
|
|
|
|
Name: "capsul-image",
|
|
|
|
|
Name: "capsul-image, ci",
|
|
|
|
|
Value: "debian10",
|
|
|
|
|
Aliases: []string{"ci"},
|
|
|
|
|
Usage: "capsul image",
|
|
|
|
|
Destination: &CapsulImage,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var CapsulSSHKeys cli.StringSlice
|
|
|
|
|
|
|
|
|
|
var CapsulSSHKeysFlag = &cli.StringSliceFlag{
|
|
|
|
|
Name: "capsul-ssh-keys",
|
|
|
|
|
Aliases: []string{"cs"},
|
|
|
|
|
Usage: "capsul SSH key",
|
|
|
|
|
Destination: &CapsulSSHKeys,
|
|
|
|
|
Name: "capsul-ssh-keys, cs",
|
|
|
|
|
Usage: "capsul SSH key",
|
|
|
|
|
Value: &CapsulSSHKeys,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var CapsulAPIToken string
|
|
|
|
|
|
|
|
|
|
var CapsulAPITokenFlag = &cli.StringFlag{
|
|
|
|
|
Name: "capsul-token",
|
|
|
|
|
Aliases: []string{"ca"},
|
|
|
|
|
Name: "capsul-token, ca",
|
|
|
|
|
Usage: "capsul API token",
|
|
|
|
|
EnvVars: []string{"CAPSUL_TOKEN"},
|
|
|
|
|
EnvVar: "CAPSUL_TOKEN",
|
|
|
|
|
Destination: &CapsulAPIToken,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var HetznerCloudName string
|
|
|
|
|
|
|
|
|
|
var HetznerCloudNameFlag = &cli.StringFlag{
|
|
|
|
|
Name: "hetzner-name",
|
|
|
|
|
Name: "hetzner-name, hn",
|
|
|
|
|
Value: "",
|
|
|
|
|
Aliases: []string{"hn"},
|
|
|
|
|
Usage: "hetzner cloud name",
|
|
|
|
|
Destination: &HetznerCloudName,
|
|
|
|
|
}
|
|
|
|
@ -214,8 +192,7 @@ var HetznerCloudNameFlag = &cli.StringFlag{
|
|
|
|
|
var HetznerCloudType string
|
|
|
|
|
|
|
|
|
|
var HetznerCloudTypeFlag = &cli.StringFlag{
|
|
|
|
|
Name: "hetzner-type",
|
|
|
|
|
Aliases: []string{"ht"},
|
|
|
|
|
Name: "hetzner-type, ht",
|
|
|
|
|
Usage: "hetzner cloud type",
|
|
|
|
|
Destination: &HetznerCloudType,
|
|
|
|
|
Value: "cx11",
|
|
|
|
@ -224,8 +201,7 @@ var HetznerCloudTypeFlag = &cli.StringFlag{
|
|
|
|
|
var HetznerCloudImage string
|
|
|
|
|
|
|
|
|
|
var HetznerCloudImageFlag = &cli.StringFlag{
|
|
|
|
|
Name: "hetzner-image",
|
|
|
|
|
Aliases: []string{"hi"},
|
|
|
|
|
Name: "hetzner-image, hi",
|
|
|
|
|
Usage: "hetzner cloud image",
|
|
|
|
|
Value: "debian-10",
|
|
|
|
|
Destination: &HetznerCloudImage,
|
|
|
|
@ -234,17 +210,15 @@ var HetznerCloudImageFlag = &cli.StringFlag{
|
|
|
|
|
var HetznerCloudSSHKeys cli.StringSlice
|
|
|
|
|
|
|
|
|
|
var HetznerCloudSSHKeysFlag = &cli.StringSliceFlag{
|
|
|
|
|
Name: "hetzner-ssh-keys",
|
|
|
|
|
Aliases: []string{"hs"},
|
|
|
|
|
Usage: "hetzner cloud SSH keys (e.g. me@foo.com)",
|
|
|
|
|
Destination: &HetznerCloudSSHKeys,
|
|
|
|
|
Name: "hetzner-ssh-keys, hs",
|
|
|
|
|
Usage: "hetzner cloud SSH keys (e.g. me@foo.com)",
|
|
|
|
|
Value: &HetznerCloudSSHKeys,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var HetznerCloudLocation string
|
|
|
|
|
|
|
|
|
|
var HetznerCloudLocationFlag = &cli.StringFlag{
|
|
|
|
|
Name: "hetzner-location",
|
|
|
|
|
Aliases: []string{"hl"},
|
|
|
|
|
Name: "hetzner-location, hl",
|
|
|
|
|
Usage: "hetzner cloud server location",
|
|
|
|
|
Value: "hel1",
|
|
|
|
|
Destination: &HetznerCloudLocation,
|
|
|
|
@ -253,10 +227,9 @@ var HetznerCloudLocationFlag = &cli.StringFlag{
|
|
|
|
|
var HetznerCloudAPIToken string
|
|
|
|
|
|
|
|
|
|
var HetznerCloudAPITokenFlag = &cli.StringFlag{
|
|
|
|
|
Name: "hetzner-token",
|
|
|
|
|
Aliases: []string{"ha"},
|
|
|
|
|
Name: "hetzner-token, ha",
|
|
|
|
|
Usage: "hetzner cloud API token",
|
|
|
|
|
EnvVars: []string{"HCLOUD_TOKEN"},
|
|
|
|
|
EnvVar: "HCLOUD_TOKEN",
|
|
|
|
|
Destination: &HetznerCloudAPIToken,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -265,9 +238,7 @@ var Debug bool
|
|
|
|
|
|
|
|
|
|
// DebugFlag turns on/off verbose logging down to the DEBUG level.
|
|
|
|
|
var DebugFlag = &cli.BoolFlag{
|
|
|
|
|
Name: "debug",
|
|
|
|
|
Aliases: []string{"d"},
|
|
|
|
|
Value: false,
|
|
|
|
|
Name: "debug, d",
|
|
|
|
|
Destination: &Debug,
|
|
|
|
|
Usage: "Show DEBUG messages",
|
|
|
|
|
}
|
|
|
|
@ -278,60 +249,48 @@ var RC bool
|
|
|
|
|
// RCFlag chooses the latest release candidate for install
|
|
|
|
|
var RCFlag = &cli.BoolFlag{
|
|
|
|
|
Name: "rc",
|
|
|
|
|
Value: false,
|
|
|
|
|
Destination: &RC,
|
|
|
|
|
Usage: "Insatll the latest release candidate",
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var Major bool
|
|
|
|
|
var MajorFlag = &cli.BoolFlag{
|
|
|
|
|
Name: "major",
|
|
|
|
|
Name: "major, ma, x",
|
|
|
|
|
Usage: "Increase the major part of the version",
|
|
|
|
|
Value: false,
|
|
|
|
|
Aliases: []string{"ma", "x"},
|
|
|
|
|
Destination: &Major,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var Minor bool
|
|
|
|
|
var MinorFlag = &cli.BoolFlag{
|
|
|
|
|
Name: "minor",
|
|
|
|
|
Name: "minor, mi, y",
|
|
|
|
|
Usage: "Increase the minor part of the version",
|
|
|
|
|
Value: false,
|
|
|
|
|
Aliases: []string{"mi", "y"},
|
|
|
|
|
Destination: &Minor,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var Patch bool
|
|
|
|
|
var PatchFlag = &cli.BoolFlag{
|
|
|
|
|
Name: "patch",
|
|
|
|
|
Name: "patch, pa, z",
|
|
|
|
|
Usage: "Increase the patch part of the version",
|
|
|
|
|
Value: false,
|
|
|
|
|
Aliases: []string{"pa", "z"},
|
|
|
|
|
Destination: &Patch,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var Dry bool
|
|
|
|
|
var DryFlag = &cli.BoolFlag{
|
|
|
|
|
Name: "dry-run",
|
|
|
|
|
Name: "dry-run, d",
|
|
|
|
|
Usage: "Only reports changes that would be made",
|
|
|
|
|
Value: false,
|
|
|
|
|
Aliases: []string{"d"},
|
|
|
|
|
Destination: &Dry,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var Publish bool
|
|
|
|
|
var PublishFlag = &cli.BoolFlag{
|
|
|
|
|
Name: "publish",
|
|
|
|
|
Name: "publish, p",
|
|
|
|
|
Usage: "Publish changes to git.coopcloud.tech",
|
|
|
|
|
Value: false,
|
|
|
|
|
Aliases: []string{"p"},
|
|
|
|
|
Destination: &Publish,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var Domain string
|
|
|
|
|
var DomainFlag = &cli.StringFlag{
|
|
|
|
|
Name: "domain",
|
|
|
|
|
Aliases: []string{"d"},
|
|
|
|
|
Name: "domain, dn",
|
|
|
|
|
Value: "",
|
|
|
|
|
Usage: "Choose a domain name",
|
|
|
|
|
Destination: &Domain,
|
|
|
|
@ -339,8 +298,7 @@ var DomainFlag = &cli.StringFlag{
|
|
|
|
|
|
|
|
|
|
var NewAppServer string
|
|
|
|
|
var NewAppServerFlag = &cli.StringFlag{
|
|
|
|
|
Name: "server",
|
|
|
|
|
Aliases: []string{"s"},
|
|
|
|
|
Name: "server, s",
|
|
|
|
|
Value: "",
|
|
|
|
|
Usage: "Show apps of a specific server",
|
|
|
|
|
Destination: &NewAppServer,
|
|
|
|
@ -348,8 +306,7 @@ var NewAppServerFlag = &cli.StringFlag{
|
|
|
|
|
|
|
|
|
|
var NewAppName string
|
|
|
|
|
var NewAppNameFlag = &cli.StringFlag{
|
|
|
|
|
Name: "app-name",
|
|
|
|
|
Aliases: []string{"a"},
|
|
|
|
|
Name: "app-name, a",
|
|
|
|
|
Value: "",
|
|
|
|
|
Usage: "Choose an app name",
|
|
|
|
|
Destination: &NewAppName,
|
|
|
|
@ -357,92 +314,74 @@ var NewAppNameFlag = &cli.StringFlag{
|
|
|
|
|
|
|
|
|
|
var NoDomainChecks bool
|
|
|
|
|
var NoDomainChecksFlag = &cli.BoolFlag{
|
|
|
|
|
Name: "no-domain-checks",
|
|
|
|
|
Aliases: []string{"nd"},
|
|
|
|
|
Value: false,
|
|
|
|
|
Name: "no-domain-checks, nd",
|
|
|
|
|
Usage: "Disable app domain sanity checks",
|
|
|
|
|
Destination: &NoDomainChecks,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var StdErrOnly bool
|
|
|
|
|
var StdErrOnlyFlag = &cli.BoolFlag{
|
|
|
|
|
Name: "stderr",
|
|
|
|
|
Aliases: []string{"s"},
|
|
|
|
|
Value: false,
|
|
|
|
|
Name: "stderr, s",
|
|
|
|
|
Usage: "Only tail stderr",
|
|
|
|
|
Destination: &StdErrOnly,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var AutoDNSRecord bool
|
|
|
|
|
var AutoDNSRecordFlag = &cli.BoolFlag{
|
|
|
|
|
Name: "auto",
|
|
|
|
|
Aliases: []string{"a"},
|
|
|
|
|
Value: false,
|
|
|
|
|
Name: "auto, a",
|
|
|
|
|
Usage: "Automatically configure DNS records",
|
|
|
|
|
Destination: &AutoDNSRecord,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var DontWaitConverge bool
|
|
|
|
|
var DontWaitConvergeFlag = &cli.BoolFlag{
|
|
|
|
|
Name: "no-converge-checks",
|
|
|
|
|
Aliases: []string{"nc"},
|
|
|
|
|
Value: false,
|
|
|
|
|
Name: "no-converge-checks, nc",
|
|
|
|
|
Usage: "Don't wait for converge logic checks",
|
|
|
|
|
Destination: &DontWaitConverge,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var Watch bool
|
|
|
|
|
var WatchFlag = &cli.BoolFlag{
|
|
|
|
|
Name: "watch",
|
|
|
|
|
Aliases: []string{"w"},
|
|
|
|
|
Value: false,
|
|
|
|
|
Name: "watch, w",
|
|
|
|
|
Usage: "Watch status by polling repeatedly",
|
|
|
|
|
Destination: &Watch,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var OnlyErrors bool
|
|
|
|
|
var OnlyErrorFlag = &cli.BoolFlag{
|
|
|
|
|
Name: "errors",
|
|
|
|
|
Aliases: []string{"e"},
|
|
|
|
|
Value: false,
|
|
|
|
|
Name: "errors, e",
|
|
|
|
|
Usage: "Only show errors",
|
|
|
|
|
Destination: &OnlyErrors,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var SkipUpdates bool
|
|
|
|
|
var SkipUpdatesFlag = &cli.BoolFlag{
|
|
|
|
|
Name: "skip-updates",
|
|
|
|
|
Aliases: []string{"s"},
|
|
|
|
|
Value: false,
|
|
|
|
|
Name: "skip-updates, s",
|
|
|
|
|
Usage: "Skip updating recipe repositories",
|
|
|
|
|
Destination: &SkipUpdates,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var RegistryUsername string
|
|
|
|
|
var RegistryUsernameFlag = &cli.StringFlag{
|
|
|
|
|
Name: "username",
|
|
|
|
|
Aliases: []string{"user"},
|
|
|
|
|
Name: "username, user",
|
|
|
|
|
Value: "",
|
|
|
|
|
Usage: "Registry username",
|
|
|
|
|
EnvVars: []string{"REGISTRY_USERNAME"},
|
|
|
|
|
EnvVar: "REGISTRY_USERNAME",
|
|
|
|
|
Destination: &RegistryUsername,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var RegistryPassword string
|
|
|
|
|
var RegistryPasswordFlag = &cli.StringFlag{
|
|
|
|
|
Name: "password",
|
|
|
|
|
Aliases: []string{"pass"},
|
|
|
|
|
Name: "password, pass",
|
|
|
|
|
Value: "",
|
|
|
|
|
Usage: "Registry password",
|
|
|
|
|
EnvVars: []string{"REGISTRY_PASSWORD"},
|
|
|
|
|
EnvVar: "REGISTRY_PASSWORD",
|
|
|
|
|
Destination: &RegistryUsername,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var AllTags bool
|
|
|
|
|
var AllTagsFlag = &cli.BoolFlag{
|
|
|
|
|
Name: "all-tags",
|
|
|
|
|
Aliases: []string{"a"},
|
|
|
|
|
Value: false,
|
|
|
|
|
Name: "all-tags, a",
|
|
|
|
|
Usage: "List all tags, not just upgrades",
|
|
|
|
|
Destination: &AllTags,
|
|
|
|
|
}
|
|
|
|
@ -495,3 +434,15 @@ Host foo.coopcloud.tech
|
|
|
|
|
Good luck!
|
|
|
|
|
|
|
|
|
|
`
|
|
|
|
|
|
|
|
|
|
// SubCommandBefore wires up pre-action machinery (e.g. --debug handling).
|
|
|
|
|
func SubCommandBefore(c *cli.Context) error {
|
|
|
|
|
if Debug {
|
|
|
|
|
logrus.SetLevel(logrus.DebugLevel)
|
|
|
|
|
logrus.SetFormatter(&logrus.TextFormatter{})
|
|
|
|
|
logrus.SetOutput(os.Stderr)
|
|
|
|
|
logrus.AddHook(logrusStack.StandardHook())
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return nil
|
|
|
|
|
}
|