Compare commits
No commits in common. "e23e7de2627a7d6777aebb6b30135681f3983d69" and "d1f5e577037f8aa29c9e9bcf5ae048c9dc30503d" have entirely different histories.
e23e7de262
...
d1f5e57703
12 changed files with 165 additions and 205 deletions
|
@ -5,7 +5,6 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
"os"
|
||||||
"os/exec"
|
"os/exec"
|
||||||
"strings"
|
|
||||||
"text/template"
|
"text/template"
|
||||||
"unicode"
|
"unicode"
|
||||||
)
|
)
|
||||||
|
@ -36,10 +35,9 @@ func main() {
|
||||||
|
|
||||||
func generateExecutors(schema enbasCLISchema, output string) error {
|
func generateExecutors(schema enbasCLISchema, output string) error {
|
||||||
funcMap := template.FuncMap{
|
funcMap := template.FuncMap{
|
||||||
"capitalise": capitalise,
|
"capitalise": capitalise,
|
||||||
"convertFlagToMixedCaps": convertFlagToMixedCaps,
|
"getFlagType": schema.Flags.getType,
|
||||||
"getFlagType": schema.Flags.getType,
|
"getFlagDescription": schema.Flags.getDescription,
|
||||||
"getFlagDescription": schema.Flags.getDescription,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
tmpl := template.Must(template.New("executor-template").Funcs(funcMap).Parse(executorsFileTemplate))
|
tmpl := template.Must(template.New("executor-template").Funcs(funcMap).Parse(executorsFileTemplate))
|
||||||
|
@ -74,28 +72,3 @@ func capitalise(str string) string {
|
||||||
|
|
||||||
return string(runes)
|
return string(runes)
|
||||||
}
|
}
|
||||||
|
|
||||||
func convertFlagToMixedCaps(value string) string {
|
|
||||||
var builder strings.Builder
|
|
||||||
|
|
||||||
runes := []rune(value)
|
|
||||||
numRunes := len(runes)
|
|
||||||
cursor := 0
|
|
||||||
|
|
||||||
for cursor < numRunes {
|
|
||||||
if runes[cursor] != '-' {
|
|
||||||
builder.WriteRune(runes[cursor])
|
|
||||||
|
|
||||||
cursor++
|
|
||||||
} else {
|
|
||||||
if cursor != numRunes-1 && unicode.IsLower(runes[cursor+1]) {
|
|
||||||
builder.WriteRune(unicode.ToUpper(runes[cursor+1]))
|
|
||||||
cursor += 2
|
|
||||||
} else {
|
|
||||||
cursor++
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return builder.String()
|
|
||||||
}
|
|
||||||
|
|
|
@ -16,7 +16,7 @@ type {{ $struct_name }} struct {
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- range $flag := $command.Flags -}}
|
{{- range $flag := $command.Flags -}}
|
||||||
{{ print "" }}
|
{{ print "" }}
|
||||||
{{ convertFlagToMixedCaps $flag.Flag }} {{ getFlagType $flag.Flag }}
|
{{ $flag.Flag }} {{ getFlagType $flag.Flag }}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- range $field := $command.AdditionalFields -}}
|
{{- range $field := $command.AdditionalFields -}}
|
||||||
{{ print "" }}
|
{{ print "" }}
|
||||||
|
@ -57,11 +57,9 @@ func {{ $new_executor_function_name }}(
|
||||||
{{ print "" }}
|
{{ print "" }}
|
||||||
{{- range $flag := $command.Flags -}}
|
{{- range $flag := $command.Flags -}}
|
||||||
{{- if eq (getFlagType $flag.Flag) "string" -}}
|
{{- if eq (getFlagType $flag.Flag) "string" -}}
|
||||||
{{ print "" }}
|
exe.StringVar(&exe.{{ $flag.Flag }}, {{ printf "%q" $flag.Flag }}, {{ printf "%q" $flag.Default }}, {{ getFlagDescription $flag.Flag | printf "%q" }})
|
||||||
exe.StringVar(&exe.{{ convertFlagToMixedCaps $flag.Flag }}, {{ printf "%q" $flag.Flag }}, {{ printf "%q" $flag.Default }}, {{ getFlagDescription $flag.Flag | printf "%q" }})
|
|
||||||
{{- else if eq (getFlagType $flag.Flag) "bool" -}}
|
{{- else if eq (getFlagType $flag.Flag) "bool" -}}
|
||||||
{{ print "" }}
|
exe.BoolVar(&exe.{{ $flag.Flag }}, {{ printf "%q" $flag.Flag }}, {{ $flag.Default }}, {{ getFlagDescription $flag.Flag | printf "%q" }})
|
||||||
exe.BoolVar(&exe.{{ convertFlagToMixedCaps $flag.Flag }}, {{ printf "%q" $flag.Flag }}, {{ $flag.Default }}, {{ getFlagDescription $flag.Flag | printf "%q" }})
|
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{ print "" }}
|
{{ print "" }}
|
||||||
|
|
|
@ -140,6 +140,8 @@ func run() error {
|
||||||
executor.CommandLogin: executor.NewLoginExecutor(
|
executor.CommandLogin: executor.NewLoginExecutor(
|
||||||
enbasPrinter,
|
enbasPrinter,
|
||||||
enbasConfig,
|
enbasConfig,
|
||||||
|
executor.CommandLogin,
|
||||||
|
executor.CommandSummaryLookup(executor.CommandLogin),
|
||||||
),
|
),
|
||||||
executor.CommandMute: executor.NewMuteOrUnmuteExecutor(
|
executor.CommandMute: executor.NewMuteOrUnmuteExecutor(
|
||||||
enbasPrinter,
|
enbasPrinter,
|
||||||
|
@ -162,6 +164,8 @@ func run() error {
|
||||||
executor.CommandSwitch: executor.NewSwitchExecutor(
|
executor.CommandSwitch: executor.NewSwitchExecutor(
|
||||||
enbasPrinter,
|
enbasPrinter,
|
||||||
enbasConfig,
|
enbasConfig,
|
||||||
|
executor.CommandSwitch,
|
||||||
|
executor.CommandSummaryLookup(executor.CommandSwitch),
|
||||||
),
|
),
|
||||||
executor.CommandUnfollow: executor.NewFollowOrUnfollowExecutor(
|
executor.CommandUnfollow: executor.NewFollowOrUnfollowExecutor(
|
||||||
enbasPrinter,
|
enbasPrinter,
|
||||||
|
@ -189,14 +193,18 @@ func run() error {
|
||||||
),
|
),
|
||||||
executor.CommandVersion: executor.NewVersionExecutor(
|
executor.CommandVersion: executor.NewVersionExecutor(
|
||||||
enbasPrinter,
|
enbasPrinter,
|
||||||
|
executor.CommandVersion,
|
||||||
|
executor.CommandSummaryLookup(executor.CommandVersion),
|
||||||
binaryVersion,
|
binaryVersion,
|
||||||
buildTime,
|
buildTime,
|
||||||
goVersion,
|
goVersion,
|
||||||
gitCommit,
|
gitCommit,
|
||||||
),
|
),
|
||||||
executor.CommandWhoami: executor.NewWhoamiExecutor(
|
executor.CommandWhoami: executor.NewWhoAmIExecutor(
|
||||||
enbasPrinter,
|
enbasPrinter,
|
||||||
enbasConfig,
|
enbasConfig,
|
||||||
|
executor.CommandWhoami,
|
||||||
|
executor.CommandSummaryLookup(executor.CommandWhoami),
|
||||||
),
|
),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,135 +0,0 @@
|
||||||
package executor
|
|
||||||
|
|
||||||
import (
|
|
||||||
"flag"
|
|
||||||
|
|
||||||
"codeflow.dananglin.me.uk/apollo/enbas/internal/config"
|
|
||||||
"codeflow.dananglin.me.uk/apollo/enbas/internal/printer"
|
|
||||||
)
|
|
||||||
|
|
||||||
// InitExecutor is the executor for the init command.
|
|
||||||
type InitExecutor struct {
|
|
||||||
*flag.FlagSet
|
|
||||||
printer *printer.Printer
|
|
||||||
configDir string
|
|
||||||
}
|
|
||||||
|
|
||||||
func NewInitExecutor(
|
|
||||||
printer *printer.Printer,
|
|
||||||
configDir string,
|
|
||||||
) *InitExecutor {
|
|
||||||
exe := InitExecutor{
|
|
||||||
FlagSet: flag.NewFlagSet("init", flag.ExitOnError),
|
|
||||||
printer: printer,
|
|
||||||
configDir: configDir,
|
|
||||||
}
|
|
||||||
|
|
||||||
exe.Usage = commandUsageFunc("init", "Creates a new configuration file in the specified configuration directory", exe.FlagSet)
|
|
||||||
|
|
||||||
return &exe
|
|
||||||
}
|
|
||||||
|
|
||||||
// LoginExecutor is the executor for the login command.
|
|
||||||
type LoginExecutor struct {
|
|
||||||
*flag.FlagSet
|
|
||||||
printer *printer.Printer
|
|
||||||
config *config.Config
|
|
||||||
instance string
|
|
||||||
}
|
|
||||||
|
|
||||||
func NewLoginExecutor(
|
|
||||||
printer *printer.Printer,
|
|
||||||
config *config.Config,
|
|
||||||
) *LoginExecutor {
|
|
||||||
exe := LoginExecutor{
|
|
||||||
FlagSet: flag.NewFlagSet("login", flag.ExitOnError),
|
|
||||||
printer: printer,
|
|
||||||
config: config,
|
|
||||||
}
|
|
||||||
|
|
||||||
exe.Usage = commandUsageFunc("login", "Logs into an account on GoToSocial", exe.FlagSet)
|
|
||||||
|
|
||||||
exe.StringVar(&exe.instance, "instance", "", "The instance that you want to log into")
|
|
||||||
return &exe
|
|
||||||
}
|
|
||||||
|
|
||||||
// SwitchExecutor is the executor for the switch command.
|
|
||||||
type SwitchExecutor struct {
|
|
||||||
*flag.FlagSet
|
|
||||||
printer *printer.Printer
|
|
||||||
config *config.Config
|
|
||||||
accountName string
|
|
||||||
to string
|
|
||||||
}
|
|
||||||
|
|
||||||
func NewSwitchExecutor(
|
|
||||||
printer *printer.Printer,
|
|
||||||
config *config.Config,
|
|
||||||
) *SwitchExecutor {
|
|
||||||
exe := SwitchExecutor{
|
|
||||||
FlagSet: flag.NewFlagSet("switch", flag.ExitOnError),
|
|
||||||
printer: printer,
|
|
||||||
config: config,
|
|
||||||
}
|
|
||||||
|
|
||||||
exe.Usage = commandUsageFunc("switch", "Performs a switch operation (e.g. switching between logged in accounts)", exe.FlagSet)
|
|
||||||
|
|
||||||
exe.StringVar(&exe.accountName, "account-name", "", "The name of the account")
|
|
||||||
exe.StringVar(&exe.to, "to", "", "TBC")
|
|
||||||
return &exe
|
|
||||||
}
|
|
||||||
|
|
||||||
// VersionExecutor is the executor for the version command.
|
|
||||||
type VersionExecutor struct {
|
|
||||||
*flag.FlagSet
|
|
||||||
printer *printer.Printer
|
|
||||||
full bool
|
|
||||||
binaryVersion string
|
|
||||||
buildTime string
|
|
||||||
goVersion string
|
|
||||||
gitCommit string
|
|
||||||
}
|
|
||||||
|
|
||||||
func NewVersionExecutor(
|
|
||||||
printer *printer.Printer,
|
|
||||||
binaryVersion string,
|
|
||||||
buildTime string,
|
|
||||||
goVersion string,
|
|
||||||
gitCommit string,
|
|
||||||
) *VersionExecutor {
|
|
||||||
exe := VersionExecutor{
|
|
||||||
FlagSet: flag.NewFlagSet("version", flag.ExitOnError),
|
|
||||||
printer: printer,
|
|
||||||
binaryVersion: binaryVersion,
|
|
||||||
buildTime: buildTime,
|
|
||||||
goVersion: goVersion,
|
|
||||||
gitCommit: gitCommit,
|
|
||||||
}
|
|
||||||
|
|
||||||
exe.Usage = commandUsageFunc("version", "Prints the application's version and build information", exe.FlagSet)
|
|
||||||
|
|
||||||
exe.BoolVar(&exe.full, "full", false, "Set to true to print the build information in full")
|
|
||||||
return &exe
|
|
||||||
}
|
|
||||||
|
|
||||||
// WhoamiExecutor is the executor for the whoami command.
|
|
||||||
type WhoamiExecutor struct {
|
|
||||||
*flag.FlagSet
|
|
||||||
printer *printer.Printer
|
|
||||||
config *config.Config
|
|
||||||
}
|
|
||||||
|
|
||||||
func NewWhoamiExecutor(
|
|
||||||
printer *printer.Printer,
|
|
||||||
config *config.Config,
|
|
||||||
) *WhoamiExecutor {
|
|
||||||
exe := WhoamiExecutor{
|
|
||||||
FlagSet: flag.NewFlagSet("whoami", flag.ExitOnError),
|
|
||||||
printer: printer,
|
|
||||||
config: config,
|
|
||||||
}
|
|
||||||
|
|
||||||
exe.Usage = commandUsageFunc("whoami", "Prints the account that you are currently logged into", exe.FlagSet)
|
|
||||||
|
|
||||||
return &exe
|
|
||||||
}
|
|
|
@ -24,6 +24,7 @@ const (
|
||||||
flagExcludeReplies = "exclude-replies"
|
flagExcludeReplies = "exclude-replies"
|
||||||
flagFrom = "from"
|
flagFrom = "from"
|
||||||
flagFromFile = "from-file"
|
flagFromFile = "from-file"
|
||||||
|
flagFull = "full"
|
||||||
flagInReplyTo = "in-reply-to"
|
flagInReplyTo = "in-reply-to"
|
||||||
flagInstance = "instance"
|
flagInstance = "instance"
|
||||||
flagLanguage = "language"
|
flagLanguage = "language"
|
||||||
|
|
|
@ -1,12 +1,34 @@
|
||||||
package executor
|
package executor
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"flag"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"codeflow.dananglin.me.uk/apollo/enbas/internal/config"
|
"codeflow.dananglin.me.uk/apollo/enbas/internal/config"
|
||||||
|
"codeflow.dananglin.me.uk/apollo/enbas/internal/printer"
|
||||||
"codeflow.dananglin.me.uk/apollo/enbas/internal/utilities"
|
"codeflow.dananglin.me.uk/apollo/enbas/internal/utilities"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
type InitExecutor struct {
|
||||||
|
*flag.FlagSet
|
||||||
|
|
||||||
|
printer *printer.Printer
|
||||||
|
configDir string
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewInitExecutor(printer *printer.Printer, configDir, name, summary string) *InitExecutor {
|
||||||
|
initExe := InitExecutor{
|
||||||
|
FlagSet: flag.NewFlagSet(name, flag.ExitOnError),
|
||||||
|
|
||||||
|
printer: printer,
|
||||||
|
configDir: configDir,
|
||||||
|
}
|
||||||
|
|
||||||
|
initExe.Usage = commandUsageFunc(name, summary, initExe.FlagSet)
|
||||||
|
|
||||||
|
return &initExe
|
||||||
|
}
|
||||||
|
|
||||||
func (i *InitExecutor) Execute() error {
|
func (i *InitExecutor) Execute() error {
|
||||||
if err := utilities.EnsureDirectory(i.configDir); err != nil {
|
if err := utilities.EnsureDirectory(i.configDir); err != nil {
|
||||||
return fmt.Errorf("unable to ensure that the configuration directory is present: %w", err)
|
return fmt.Errorf("unable to ensure that the configuration directory is present: %w", err)
|
||||||
|
|
|
@ -1,14 +1,40 @@
|
||||||
package executor
|
package executor
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"flag"
|
||||||
"fmt"
|
"fmt"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"codeflow.dananglin.me.uk/apollo/enbas/internal/client"
|
"codeflow.dananglin.me.uk/apollo/enbas/internal/client"
|
||||||
"codeflow.dananglin.me.uk/apollo/enbas/internal/config"
|
"codeflow.dananglin.me.uk/apollo/enbas/internal/config"
|
||||||
|
"codeflow.dananglin.me.uk/apollo/enbas/internal/printer"
|
||||||
"codeflow.dananglin.me.uk/apollo/enbas/internal/utilities"
|
"codeflow.dananglin.me.uk/apollo/enbas/internal/utilities"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
type LoginExecutor struct {
|
||||||
|
*flag.FlagSet
|
||||||
|
|
||||||
|
printer *printer.Printer
|
||||||
|
config *config.Config
|
||||||
|
instance string
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewLoginExecutor(printer *printer.Printer, config *config.Config, name, summary string) *LoginExecutor {
|
||||||
|
loginExe := LoginExecutor{
|
||||||
|
FlagSet: flag.NewFlagSet(name, flag.ExitOnError),
|
||||||
|
|
||||||
|
printer: printer,
|
||||||
|
config: config,
|
||||||
|
instance: "",
|
||||||
|
}
|
||||||
|
|
||||||
|
loginExe.StringVar(&loginExe.instance, flagInstance, "", "Specify the instance that you want to login to.")
|
||||||
|
|
||||||
|
loginExe.Usage = commandUsageFunc(name, summary, loginExe.FlagSet)
|
||||||
|
|
||||||
|
return &loginExe
|
||||||
|
}
|
||||||
|
|
||||||
func (l *LoginExecutor) Execute() error {
|
func (l *LoginExecutor) Execute() error {
|
||||||
var err error
|
var err error
|
||||||
|
|
||||||
|
|
|
@ -1,19 +1,46 @@
|
||||||
package executor
|
package executor
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"flag"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"codeflow.dananglin.me.uk/apollo/enbas/internal/config"
|
"codeflow.dananglin.me.uk/apollo/enbas/internal/config"
|
||||||
|
"codeflow.dananglin.me.uk/apollo/enbas/internal/printer"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
type SwitchExecutor struct {
|
||||||
|
*flag.FlagSet
|
||||||
|
|
||||||
|
config *config.Config
|
||||||
|
printer *printer.Printer
|
||||||
|
toResourceType string
|
||||||
|
accountName string
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewSwitchExecutor(printer *printer.Printer, config *config.Config, name, summary string) *SwitchExecutor {
|
||||||
|
switchExe := SwitchExecutor{
|
||||||
|
FlagSet: flag.NewFlagSet(name, flag.ExitOnError),
|
||||||
|
|
||||||
|
config: config,
|
||||||
|
printer: printer,
|
||||||
|
}
|
||||||
|
|
||||||
|
switchExe.StringVar(&switchExe.toResourceType, flagTo, "", "The account to switch to")
|
||||||
|
switchExe.StringVar(&switchExe.accountName, flagAccountName, "", "The name of the account to switch to")
|
||||||
|
|
||||||
|
switchExe.Usage = commandUsageFunc(name, summary, switchExe.FlagSet)
|
||||||
|
|
||||||
|
return &switchExe
|
||||||
|
}
|
||||||
|
|
||||||
func (s *SwitchExecutor) Execute() error {
|
func (s *SwitchExecutor) Execute() error {
|
||||||
funcMap := map[string]func() error{
|
funcMap := map[string]func() error{
|
||||||
resourceAccount: s.switchToAccount,
|
resourceAccount: s.switchToAccount,
|
||||||
}
|
}
|
||||||
|
|
||||||
doFunc, ok := funcMap[s.to]
|
doFunc, ok := funcMap[s.toResourceType]
|
||||||
if !ok {
|
if !ok {
|
||||||
return UnsupportedTypeError{resourceType: s.to}
|
return UnsupportedTypeError{resourceType: s.toResourceType}
|
||||||
}
|
}
|
||||||
|
|
||||||
return doFunc()
|
return doFunc()
|
||||||
|
|
|
@ -1,7 +1,51 @@
|
||||||
package executor
|
package executor
|
||||||
|
|
||||||
|
import (
|
||||||
|
"flag"
|
||||||
|
|
||||||
|
"codeflow.dananglin.me.uk/apollo/enbas/internal/printer"
|
||||||
|
)
|
||||||
|
|
||||||
|
type VersionExecutor struct {
|
||||||
|
*flag.FlagSet
|
||||||
|
|
||||||
|
printer *printer.Printer
|
||||||
|
showFullVersion bool
|
||||||
|
binaryVersion string
|
||||||
|
buildTime string
|
||||||
|
goVersion string
|
||||||
|
gitCommit string
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewVersionExecutor(
|
||||||
|
printer *printer.Printer,
|
||||||
|
name,
|
||||||
|
summary,
|
||||||
|
binaryVersion,
|
||||||
|
buildTime,
|
||||||
|
goVersion,
|
||||||
|
gitCommit string,
|
||||||
|
) *VersionExecutor {
|
||||||
|
command := VersionExecutor{
|
||||||
|
FlagSet: flag.NewFlagSet(name, flag.ExitOnError),
|
||||||
|
|
||||||
|
printer: printer,
|
||||||
|
binaryVersion: binaryVersion,
|
||||||
|
buildTime: buildTime,
|
||||||
|
goVersion: goVersion,
|
||||||
|
gitCommit: gitCommit,
|
||||||
|
showFullVersion: false,
|
||||||
|
}
|
||||||
|
|
||||||
|
command.BoolVar(&command.showFullVersion, flagFull, false, "prints the full build information")
|
||||||
|
|
||||||
|
command.Usage = commandUsageFunc(name, summary, command.FlagSet)
|
||||||
|
|
||||||
|
return &command
|
||||||
|
}
|
||||||
|
|
||||||
func (v *VersionExecutor) Execute() error {
|
func (v *VersionExecutor) Execute() error {
|
||||||
v.printer.PrintVersion(v.full, v.binaryVersion, v.buildTime, v.goVersion, v.gitCommit)
|
v.printer.PrintVersion(v.showFullVersion, v.binaryVersion, v.buildTime, v.goVersion, v.gitCommit)
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,18 +1,40 @@
|
||||||
package executor
|
package executor
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"flag"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"codeflow.dananglin.me.uk/apollo/enbas/internal/config"
|
"codeflow.dananglin.me.uk/apollo/enbas/internal/config"
|
||||||
|
"codeflow.dananglin.me.uk/apollo/enbas/internal/printer"
|
||||||
)
|
)
|
||||||
|
|
||||||
func (e *WhoamiExecutor) Execute() error {
|
type WhoAmIExecutor struct {
|
||||||
config, err := config.NewCredentialsConfigFromFile(e.config.CredentialsFile)
|
*flag.FlagSet
|
||||||
|
|
||||||
|
printer *printer.Printer
|
||||||
|
config *config.Config
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewWhoAmIExecutor(printer *printer.Printer, config *config.Config, name, summary string) *WhoAmIExecutor {
|
||||||
|
whoExe := WhoAmIExecutor{
|
||||||
|
FlagSet: flag.NewFlagSet(name, flag.ExitOnError),
|
||||||
|
|
||||||
|
printer: printer,
|
||||||
|
config: config,
|
||||||
|
}
|
||||||
|
|
||||||
|
whoExe.Usage = commandUsageFunc(name, summary, whoExe.FlagSet)
|
||||||
|
|
||||||
|
return &whoExe
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *WhoAmIExecutor) Execute() error {
|
||||||
|
config, err := config.NewCredentialsConfigFromFile(c.config.CredentialsFile)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("unable to load the credential config: %w", err)
|
return fmt.Errorf("unable to load the credential config: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
e.printer.PrintInfo("You are logged in as '" + config.CurrentAccount + "'.\n")
|
c.printer.PrintInfo("You are logged in as '" + config.CurrentAccount + "'.\n")
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
package internal
|
package internal
|
||||||
|
|
||||||
//go:generate go run ../cmd/enbas-cli-generators --path-to-enbas-cli-schema ../schema/enbas_cli_schema.json --path-to-enbas-executors ./executor/executors.go
|
//go:generate go run ../cmd/enbas-cli-generators --path-to-enbas-cli-schema ../schema/enbas_cli_schema.json --path-to-enbas-executors ../executors-wip.go
|
||||||
|
|
||||||
const (
|
const (
|
||||||
ApplicationName = "enbas"
|
ApplicationName = "enbas"
|
||||||
|
|
|
@ -1,9 +1,5 @@
|
||||||
{
|
{
|
||||||
"flags": {
|
"flags": {
|
||||||
"account-name": {
|
|
||||||
"type": "string",
|
|
||||||
"description": "The name of the account"
|
|
||||||
},
|
|
||||||
"full": {
|
"full": {
|
||||||
"type": "bool",
|
"type": "bool",
|
||||||
"description": "Set to true to print the build information in full"
|
"description": "Set to true to print the build information in full"
|
||||||
|
@ -11,37 +7,15 @@
|
||||||
"instance": {
|
"instance": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"description": "The instance that you want to log into"
|
"description": "The instance that you want to log into"
|
||||||
},
|
|
||||||
"to": {
|
|
||||||
"type": "string",
|
|
||||||
"description": "TBC"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
"commands": {
|
"commands": {
|
||||||
"init": {
|
|
||||||
"additionalFields": [
|
|
||||||
{ "name": "configDir", "type": "string"}
|
|
||||||
],
|
|
||||||
"flags": [],
|
|
||||||
"summary": "Creates a new configuration file in the specified configuration directory",
|
|
||||||
"useConfig": false,
|
|
||||||
"usePrinter": true
|
|
||||||
},
|
|
||||||
"login": {
|
"login": {
|
||||||
"flags": [
|
"flags": [
|
||||||
{ "flag": "instance", "default": "" }
|
{ "flag": "instance", "default": "" }
|
||||||
],
|
],
|
||||||
"summary": "Logs into an account on GoToSocial",
|
"summary": "Log into an account on GoToSocial",
|
||||||
"useConfig": true,
|
|
||||||
"usePrinter": true
|
|
||||||
},
|
|
||||||
"switch": {
|
|
||||||
"flags": [
|
|
||||||
{ "flag": "account-name", "default": "" },
|
|
||||||
{ "flag": "to", "default": "" }
|
|
||||||
],
|
|
||||||
"summary": "Performs a switch operation (e.g. switching between logged in accounts)",
|
|
||||||
"useConfig": true,
|
"useConfig": true,
|
||||||
"usePrinter": true
|
"usePrinter": true
|
||||||
},
|
},
|
||||||
|
|
Loading…
Reference in a new issue