86 lines
2 KiB
Go
86 lines
2 KiB
Go
|
package executor
|
||
|
|
||
|
import (
|
||
|
"flag"
|
||
|
|
||
|
"codeflow.dananglin.me.uk/apollo/enbas/internal/config"
|
||
|
"codeflow.dananglin.me.uk/apollo/enbas/internal/printer"
|
||
|
)
|
||
|
|
||
|
// 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", "Log into an account on GoToSocial", exe.FlagSet)
|
||
|
exe.StringVar(&exe.instance, "instance", "", "The instance that you want to log into")
|
||
|
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
|
||
|
}
|