cli
API
cli
packageAPI reference for the cli
package.
Imports
(7)
F
function
genericPkgManagerCommand
Parameters
subsystemName
string
action
string
Returns
error
internal/cli/runtime.go:216-237
func genericPkgManagerCommand(subsystemName string, action string) error
{
subSystem, err := core.LoadSubSystem(subsystemName, false)
if err != nil {
return err
}
pkgManager, err := subSystem.Stack.GetPkgManager()
if err != nil {
return fmt.Errorf(Apx.LC.Get("runtimeCommand.error.cantAccessPkgManager"), err)
}
cmdStr, err := pkgManagerCommands(pkgManager, action)
if err != nil {
return err
}
finalArgs := pkgManager.GenCmd(cmdStr)
_, err = subSystem.Exec(false, false, finalArgs...)
if err != nil {
return fmt.Errorf(Apx.LC.Get("runtimeCommand.error.executingCommand"), err)
}
return nil
}
F
function
genericPkgManagerArgsCommand
Parameters
subsystemName
string
action
string
args
[]string
Returns
error
internal/cli/runtime.go:239-260
func genericPkgManagerArgsCommand(subsystemName string, action string, args []string) error
{
subSystem, err := core.LoadSubSystem(subsystemName, false)
if err != nil {
return err
}
pkgManager, err := subSystem.Stack.GetPkgManager()
if err != nil {
return fmt.Errorf(Apx.LC.Get("runtimeCommand.error.cantAccessPkgManager"), err)
}
cmdStr, err := pkgManagerCommands(pkgManager, action)
if err != nil {
return err
}
finalArgs := pkgManager.GenCmd(cmdStr, args...)
_, err = subSystem.Exec(false, false, finalArgs...)
if err != nil {
return fmt.Errorf(Apx.LC.Get("runtimeCommand.error.executingCommand"), err)
}
return nil
}
F
function
pkgManagerCommands
Parameters
pkgManager
command
string
Returns
string
error
internal/cli/runtime.go:262-287
func pkgManagerCommands(pkgManager *core.PkgManager, command string) (string, error)
{
switch command {
case "autoremove":
return pkgManager.CmdAutoRemove, nil
case "clean":
return pkgManager.CmdClean, nil
case "install":
return pkgManager.CmdInstall, nil
case "list":
return pkgManager.CmdList, nil
case "purge":
return pkgManager.CmdPurge, nil
case "remove":
return pkgManager.CmdRemove, nil
case "search":
return pkgManager.CmdSearch, nil
case "show":
return pkgManager.CmdShow, nil
case "update":
return pkgManager.CmdUpdate, nil
case "upgrade":
return pkgManager.CmdUpgrade, nil
default:
return "", fmt.Errorf(Apx.LC.Get("apx.errors.unknownCommand"), command)
}
}
S
struct
RootCmd
internal/cli/structs.go:19-28
type RootCmd struct
Fields
| Name | Type | Description |
|---|---|---|
| Version | string | |
| Stacks | StacksCmd | cmd:"stacks" help:"pr:apx.cmd.stacks" |
| Subsystems | SubsystemsCmd | cmd:"subsystems" help:"pr:apx.cmd.subsystems" |
| PkgManagers | PkgManagersCmd | cmd:"pkgmanagers" help:"pr:apx.cmd.pkgmanagers" |
| DynamicSubsystems | *map[string]*SubsystemCmd | cmd:"*" help:"apx.subsystem" |
S
struct
SubsystemCmd
internal/cli/structs.go:30-50
type SubsystemCmd struct
Fields
| Name | Type | Description |
|---|---|---|
| Name | string | json:"-" |
| Enter | SubsystemEnterCmd | cmd:"enter" help:"pr:apx.cmd.subsystem.enter" |
| Run | SubsystemRunCmd | cmd:"run" help:"pr:apx.cmd.subsystem.run" |
| Install | SubsystemInstallCmd | cmd:"install" help:"pr:apx.cmd.subsystem.install" |
| Remove | SubsystemRemoveCmd | cmd:"remove" help:"pr:apx.cmd.subsystem.remove" |
| Update | SubsystemUpdateCmd | cmd:"update" help:"pr:apx.cmd.subsystem.update" |
| Upgrade | SubsystemUpgradeCmd | cmd:"upgrade" help:"pr:apx.cmd.subsystem.upgrade" |
| List | SubsystemListCmd | cmd:"list" help:"pr:apx.cmd.subsystem.list" |
| Search | SubsystemSearchCmd | cmd:"search" help:"pr:apx.cmd.subsystem.search" |
| Show | SubsystemShowCmd | cmd:"show" help:"pr:apx.cmd.subsystem.show" |
| Export | SubsystemExportCmd | cmd:"export" help:"pr:apx.cmd.subsystem.export" |
| Unexport | SubsystemUnexportCmd | cmd:"unexport" help:"pr:apx.cmd.subsystem.unexport" |
| Start | SubsystemStartCmd | cmd:"start" help:"pr:apx.cmd.subsystem.start" |
| Stop | SubsystemStopCmd | cmd:"stop" help:"pr:apx.cmd.subsystem.stop" |
| AutoRemove | SubsystemAutoRemoveCmd | cmd:"autoremove" help:"pr:apx.cmd.subsystem.autoremove" |
| Clean | SubsystemCleanCmd | cmd:"clean" help:"pr:apx.cmd.subsystem.clean" |
| Purge | SubsystemPurgeCmd | cmd:"purge" help:"pr:apx.cmd.subsystem.purge" |
Uses
SubsystemEnterCmd
(cli)
SubsystemRunCmd
(cli)
SubsystemInstallCmd
(cli)
SubsystemRemoveCmd
(cli)
SubsystemUpdateCmd
(cli)
SubsystemUpgradeCmd
(cli)
SubsystemListCmd
(cli)
SubsystemSearchCmd
(cli)
SubsystemShowCmd
(cli)
SubsystemExportCmd
(cli)
SubsystemUnexportCmd
(cli)
SubsystemStartCmd
(cli)
SubsystemStopCmd
(cli)
SubsystemAutoRemoveCmd
(cli)
SubsystemCleanCmd
(cli)
SubsystemPurgeCmd
(cli)
S
struct
SubsystemEnterCmd
internal/cli/structs.go:52-55
type SubsystemEnterCmd struct
Methods
Run
Method
Returns
error
func (*SubsystemEnterCmd) Run() error
{
subSystem, err := core.LoadSubSystem(c.Name, false)
if err != nil {
return err
}
err = subSystem.Enter()
if err != nil {
return fmt.Errorf(Apx.LC.Get("runtimeCommand.error.enteringContainer"), err)
}
return nil
}
Fields
| Name | Type | Description |
|---|---|---|
| Name | string | json:"-" |
S
struct
SubsystemRunCmd
internal/cli/structs.go:57-61
type SubsystemRunCmd struct
Methods
Run
Method
Returns
error
func (*SubsystemRunCmd) Run() error
{
subSystem, err := core.LoadSubSystem(c.Name, false)
if err != nil {
return err
}
_, err = subSystem.Exec(false, false, c.Args...)
if err != nil {
return fmt.Errorf(Apx.LC.Get("runtimeCommand.error.executingCommand"), err)
}
return nil
}
Fields
| Name | Type | Description |
|---|---|---|
| Name | string | json:"-" |
| Args | []string | arg:"" optional:"" name:"command" help:"pr:apx.arg.command" |
S
struct
SubsystemInstallCmd
internal/cli/structs.go:63-68
type SubsystemInstallCmd struct
Methods
Run
Method
Returns
error
func (*SubsystemInstallCmd) Run() error
{
subSystem, err := core.LoadSubSystem(c.Name, false)
if err != nil {
return err
}
pkgManager, err := subSystem.Stack.GetPkgManager()
if err != nil {
return fmt.Errorf(Apx.LC.Get("runtimeCommand.error.cantAccessPkgManager"), err)
}
finalArgs := pkgManager.GenCmd(pkgManager.CmdInstall, c.Args...)
_, err = subSystem.Exec(false, false, finalArgs...)
if err != nil {
return fmt.Errorf(Apx.LC.Get("runtimeCommand.error.executingCommand"), err)
}
if !c.NoExport {
exportedN, err := subSystem.ExportDesktopEntries(c.Args...)
if err == nil {
Apx.Log.Infof(Apx.LC.Get("runtimeCommand.info.exportedApps"), exportedN)
}
}
return nil
}
Fields
| Name | Type | Description |
|---|---|---|
| Name | string | json:"-" |
| NoExport | bool | flag:"short:n, long:no-export, name:pr:apx.cmd.subsystem.install.options.noExport" |
| Args | []string | arg:"" optional:"" name:"packages" help:"pr:apx.arg.packages" |
S
struct
SubsystemRemoveCmd
internal/cli/structs.go:70-74
type SubsystemRemoveCmd struct
Methods
Run
Method
Returns
error
func (*SubsystemRemoveCmd) Run() error
{
subSystem, err := core.LoadSubSystem(c.Name, false)
if err != nil {
return err
}
pkgManager, err := subSystem.Stack.GetPkgManager()
if err != nil {
return fmt.Errorf(Apx.LC.Get("runtimeCommand.error.cantAccessPkgManager"), err)
}
exportedN, err := subSystem.UnexportDesktopEntries(c.Args...)
if err == nil {
Apx.Log.Infof(Apx.LC.Get("runtimeCommand.info.unexportedApps"), exportedN)
}
finalArgs := pkgManager.GenCmd(pkgManager.CmdRemove, c.Args...)
_, err = subSystem.Exec(false, false, finalArgs...)
if err != nil {
return fmt.Errorf(Apx.LC.Get("runtimeCommand.error.executingCommand"), err)
}
return nil
}
Fields
| Name | Type | Description |
|---|---|---|
| Name | string | json:"-" |
| Args | []string | arg:"" optional:"" name:"packages" help:"pr:apx.arg.packages" |
S
struct
SubsystemUpdateCmd
internal/cli/structs.go:76-79
type SubsystemUpdateCmd struct
Methods
Run
Method
Returns
error
func (*SubsystemUpdateCmd) Run() error
{
return genericPkgManagerCommand(c.Name, "update")
}
Fields
| Name | Type | Description |
|---|---|---|
| Name | string | json:"-" |
S
struct
SubsystemUpgradeCmd
internal/cli/structs.go:81-84
type SubsystemUpgradeCmd struct
Methods
Run
Method
Returns
error
func (*SubsystemUpgradeCmd) Run() error
{
return genericPkgManagerCommand(c.Name, "upgrade")
}
Fields
| Name | Type | Description |
|---|---|---|
| Name | string | json:"-" |
S
struct
SubsystemListCmd
internal/cli/structs.go:86-89
type SubsystemListCmd struct
Methods
Run
Method
Returns
error
func (*SubsystemListCmd) Run() error
{
return genericPkgManagerCommand(c.Name, "list")
}
Fields
| Name | Type | Description |
|---|---|---|
| Name | string | json:"-" |
S
struct
SubsystemSearchCmd
internal/cli/structs.go:91-95
type SubsystemSearchCmd struct
Methods
Run
Method
Returns
error
func (*SubsystemSearchCmd) Run() error
{
return genericPkgManagerArgsCommand(c.Name, "search", c.Args)
}
Fields
| Name | Type | Description |
|---|---|---|
| Name | string | json:"-" |
| Args | []string | arg:"" optional:"" name:"query" help:"pr:apx.arg.query" |
S
struct
SubsystemShowCmd
internal/cli/structs.go:97-101
type SubsystemShowCmd struct
Methods
Run
Method
Returns
error
func (*SubsystemShowCmd) Run() error
{
return genericPkgManagerArgsCommand(c.Name, "show", c.Args)
}
Fields
| Name | Type | Description |
|---|---|---|
| Name | string | json:"-" |
| Args | []string | arg:"" optional:"" name:"package" help:"pr:apx.arg.package" |
S
struct
SubsystemExportCmd
internal/cli/structs.go:103-110
type SubsystemExportCmd struct
Methods
Run
Method
Returns
error
func (*SubsystemExportCmd) Run() error
{
subSystem, err := core.LoadSubSystem(c.Name, false)
if err != nil {
return err
}
if c.AppName == "" && c.Bin == "" {
return fmt.Errorf(Apx.LC.Get("runtimeCommand.error.noAppNameOrBin"))
}
if c.AppName != "" && c.Bin != "" {
return fmt.Errorf(Apx.LC.Get("runtimeCommand.error.sameAppOrBin"))
}
if c.AppName != "" {
err := subSystem.ExportDesktopEntry(c.AppName)
if err != nil {
return fmt.Errorf(Apx.LC.Get("runtimeCommand.error.exportingApp"), err)
}
Apx.Log.Infof(Apx.LC.Get("runtimeCommand.info.exportedApp"), c.AppName)
} else {
err := subSystem.ExportBin(c.Bin, c.BinOutput)
if err != nil {
return fmt.Errorf(Apx.LC.Get("runtimeCommand.error.exportingBin"), err)
}
Apx.Log.Infof(Apx.LC.Get("runtimeCommand.info.exportedBin"), c.Bin)
}
return nil
}
Fields
| Name | Type | Description |
|---|---|---|
| Name | string | json:"-" |
| AppName | string | flag:"short:a, long:app-name, name:pr:apx.cmd.subsystem.export.options.appName" |
| Bin | string | flag:"short:b, long:bin, name:pr:apx.cmd.subsystem.export.options.bin" |
| BinOutput | string | flag:"short:o, long:bin-output, name:pr:apx.cmd.subsystem.export.options.binOutput" |
| Args | []string | arg:"" optional:"" name:"applications" help:"pr:apx.arg.applications" |
S
struct
SubsystemUnexportCmd
internal/cli/structs.go:112-119
type SubsystemUnexportCmd struct
Methods
Run
Method
Returns
error
func (*SubsystemUnexportCmd) Run() error
{
subSystem, err := core.LoadSubSystem(c.Name, false)
if err != nil {
return err
}
if c.AppName == "" && c.Bin == "" {
return fmt.Errorf(Apx.LC.Get("runtimeCommand.error.noAppNameOrBin"))
}
if c.AppName != "" && c.Bin != "" {
return fmt.Errorf(Apx.LC.Get("runtimeCommand.error.sameAppOrBin"))
}
if c.AppName != "" {
err := subSystem.UnexportDesktopEntry(c.AppName)
if err != nil {
return fmt.Errorf(Apx.LC.Get("runtimeCommand.error.unexportingApp"), err)
}
Apx.Log.Infof(Apx.LC.Get("runtimeCommand.info.unexportedApp"), c.AppName)
} else {
err := subSystem.UnexportBin(c.Bin, c.BinOutput)
if err != nil {
return fmt.Errorf(Apx.LC.Get("runtimeCommand.error.unexportingBin"), err)
}
Apx.Log.Infof(Apx.LC.Get("runtimeCommand.info.unexportedBin"), c.Bin)
}
return nil
}
Fields
| Name | Type | Description |
|---|---|---|
| Name | string | json:"-" |
| AppName | string | flag:"short:a, long:app-name, name:pr:apx.cmd.subsystem.unexport.options.appName" |
| Bin | string | flag:"short:b, long:bin, name:pr:apx.cmd.subsystem.unexport.options.bin" |
| BinOutput | string | flag:"short:o, long:bin-output, name:pr:apx.cmd.subsystem.unexport.options.binOutput" |
| Args | []string | arg:"" optional:"" name:"applications" help:"pr:apx.arg.applications" |
S
struct
SubsystemStartCmd
internal/cli/structs.go:121-124
type SubsystemStartCmd struct
Methods
Run
Method
Returns
error
func (*SubsystemStartCmd) Run() error
{
subSystem, err := core.LoadSubSystem(c.Name, false)
if err != nil {
return err
}
Apx.Log.Infof(Apx.LC.Get("runtimeCommand.info.startingContainer"), subSystem.Name)
err = subSystem.Start()
if err != nil {
return fmt.Errorf(Apx.LC.Get("runtimeCommand.error.startingContainer"), err)
}
Apx.Log.Info(Apx.LC.Get("runtimeCommand.info.startedContainer"))
return nil
}
Fields
| Name | Type | Description |
|---|---|---|
| Name | string | json:"-" |
S
struct
SubsystemStopCmd
internal/cli/structs.go:126-129
type SubsystemStopCmd struct
Methods
Run
Method
Returns
error
func (*SubsystemStopCmd) Run() error
{
subSystem, err := core.LoadSubSystem(c.Name, false)
if err != nil {
return err
}
Apx.Log.Infof(Apx.LC.Get("runtimeCommand.info.stoppingContainer"), subSystem.Name)
err = subSystem.Stop()
if err != nil {
return fmt.Errorf(Apx.LC.Get("runtimeCommand.error.stoppingContainer"), err)
}
Apx.Log.Info(Apx.LC.Get("runtimeCommand.info.stoppedContainer"))
return nil
}
Fields
| Name | Type | Description |
|---|---|---|
| Name | string | json:"-" |
S
struct
SubsystemAutoRemoveCmd
internal/cli/structs.go:131-134
type SubsystemAutoRemoveCmd struct
Methods
Run
Method
Returns
error
func (*SubsystemAutoRemoveCmd) Run() error
{
return genericPkgManagerCommand(c.Name, "autoremove")
}
Fields
| Name | Type | Description |
|---|---|---|
| Name | string | json:"-" |
S
struct
SubsystemCleanCmd
internal/cli/structs.go:136-139
type SubsystemCleanCmd struct
Methods
Run
Method
Returns
error
func (*SubsystemCleanCmd) Run() error
{
return genericPkgManagerCommand(c.Name, "clean")
}
Fields
| Name | Type | Description |
|---|---|---|
| Name | string | json:"-" |
S
struct
SubsystemPurgeCmd
internal/cli/structs.go:141-145
type SubsystemPurgeCmd struct
Methods
Run
Method
Returns
error
func (*SubsystemPurgeCmd) Run() error
{
return genericPkgManagerArgsCommand(c.Name, "purge", c.Args)
}
Fields
| Name | Type | Description |
|---|---|---|
| Name | string | json:"-" |
| Args | []string | arg:"" optional:"" name:"packages" help:"pr:apx.arg.packages" |
S
struct
StacksCmd
internal/cli/structs.go:149-158
type StacksCmd struct
Fields
| Name | Type | Description |
|---|---|---|
| List | StacksListCmd | cmd:"list" help:"pr:apx.cmd.stacks.list" |
| Show | StacksShowCmd | cmd:"show" help:"pr:apx.cmd.stacks.show" |
| New | StacksNewCmd | cmd:"new" help:"pr:apx.cmd.stacks.new" |
| Update | StacksUpdateCmd | cmd:"update" help:"pr:apx.cmd.stacks.update" |
| Rm | StacksRmCmd | cmd:"rm" help:"pr:apx.cmd.stacks.rm" |
| Export | StacksExportCmd | cmd:"export" help:"pr:apx.cmd.stacks.export" |
| Import | StacksImportCmd | cmd:"import" help:"pr:apx.cmd.stacks.import" |
S
struct
StacksListCmd
internal/cli/structs.go:160-163
type StacksListCmd struct
Methods
Run
Method
Returns
error
func (*StacksListCmd) Run() error
{
stacks := core.ListStacks()
if !c.Json {
stacksCount := len(stacks)
if stacksCount == 0 {
fmt.Println(Apx.LC.Get("stacks.list.info.noStacks"))
return nil
}
Apx.Log.Infof(Apx.LC.Get("stacks.list.info.foundStacks"), stacksCount)
headers := []string{Apx.LC.Get("stacks.labels.name"), "Base", Apx.LC.Get("stacks.labels.builtIn"), "Pkgs", "Pkg manager"}
var data [][]string
for _, stack := range stacks {
builtIn := Apx.LC.Get("apx.terminal.no")
if stack.BuiltIn {
builtIn = Apx.LC.Get("apx.terminal.yes")
}
data = append(data, []string{stack.Name, stack.Base, builtIn, fmt.Sprintf("%d", len(stack.Packages)), stack.PkgManager})
}
Apx.CLI.Table(headers, data)
} else {
jsonStacks, err := json.MarshalIndent(stacks, "", " ")
if err != nil {
return err
}
fmt.Println(string(jsonStacks))
}
return nil
}
Fields
| Name | Type | Description |
|---|---|---|
| Json | bool | flag:"short:j, long:json, name:pr:apx.cmd.stacks.list.options.json" |
S
struct
StacksShowCmd
internal/cli/structs.go:165-168
type StacksShowCmd struct
Methods
Run
Method
Returns
error
func (*StacksShowCmd) Run() error
{
args := c.Args
if len(args) == 0 {
return fmt.Errorf("stack name required")
}
stack, error := core.LoadStack(args[0])
if error != nil {
return error
}
headers := []string{"Property", "Value"}
data := [][]string{
{Apx.LC.Get("stacks.labels.name"), stack.Name},
{"Base", stack.Base},
{"Packages", strings.Join(stack.Packages, ", ")},
{"Package manager", stack.PkgManager},
}
Apx.CLI.Table(headers, data)
return nil
}
Fields
| Name | Type | Description |
|---|---|---|
| Args | []string | arg:"" optional:"" name:"stack" help:"pr:apx.arg.stack" |
S
struct
StacksNewCmd
internal/cli/structs.go:170-177
type StacksNewCmd struct
Methods
Run
Method
Returns
error
func (*StacksNewCmd) Run() error
{
if c.Name == "" {
if !c.NoPrompt {
name, err := Apx.CLI.PromptText(Apx.LC.Get("stacks.new.info.askName"), "")
if err != nil {
return err
}
c.Name = name
if c.Name == "" {
Apx.Log.Error(Apx.LC.Get("stacks.new.error.emptyName"))
return nil
}
} else {
Apx.Log.Error(Apx.LC.Get("stacks.new.error.noName"))
return nil
}
}
ok := core.StackExists(c.Name)
if ok {
if ok {
Apx.Log.Errorf(Apx.LC.Get("stacks.new.error.alreadyExists"), c.Name)
return nil
}
}
if c.BaseImage == "" {
if !c.NoPrompt {
base, err := Apx.CLI.PromptText(Apx.LC.Get("stacks.new.info.askBase"), "")
if err != nil {
return err
}
c.BaseImage = base
if c.BaseImage == "" {
Apx.Log.Error(Apx.LC.Get("stacks.new.error.emptyBase"))
return nil
}
} else {
Apx.Log.Error(Apx.LC.Get("stacks.new.error.noBase"))
return nil
}
}
if c.PkgManager == "" {
pkgManagers := core.ListPkgManagers()
if len(pkgManagers) == 0 {
Apx.Log.Error(Apx.LC.Get("stacks.new.error.noPkgManagers"))
return nil
}
var options []string
for _, manager := range pkgManagers {
options = append(options, manager.Name)
}
selected, err := Apx.CLI.SelectOption(Apx.LC.Get("stacks.new.info.selectPkgManager"), options)
if err != nil {
return err
}
c.PkgManager = selected
}
ok = core.PkgManagerExists(c.PkgManager)
if !ok {
Apx.Log.Error(Apx.LC.Get("stacks.new.error.pkgManagerDoesNotExist"))
return nil
}
packagesArray := strings.Fields(c.Packages)
if len(packagesArray) == 0 && !c.NoPrompt {
confirm, _ := Apx.CLI.ConfirmAction(
Apx.LC.Get("stacks.new.info.noPackages"),
"y", "N",
false,
)
if confirm {
pkgs, _ := Apx.CLI.PromptText(Apx.LC.Get("stacks.new.info.askPackages"), "")
packagesInput := strings.TrimSpace(pkgs)
packagesArray = strings.Fields(packagesInput)
} else {
packagesArray = []string{}
}
}
stack := core.NewStack(c.Name, c.BaseImage, packagesArray, c.PkgManager, false)
err := stack.Save()
if err != nil {
return err
}
Apx.Log.Infof(Apx.LC.Get("stacks.new.info.success"), c.Name)
return nil
}
Fields
| Name | Type | Description |
|---|---|---|
| NoPrompt | bool | flag:"short:y, long:no-prompt, name:pr:apx.cmd.stacks.new.options.noPrompt" |
| Name | string | flag:"short:n, long:name, name:pr:apx.cmd.stacks.new.options.name" |
| BaseImage | string | flag:"short:b, long:base, name:pr:apx.cmd.stacks.new.options.base" |
| Packages | string | flag:"short:p, long:packages, name:pr:apx.cmd.stacks.new.options.packages" |
| PkgManager | string | flag:"short:k, long:pkg-manager, name:pr:apx.cmd.stacks.new.options.pkgManager" |
S
struct
StacksUpdateCmd
internal/cli/structs.go:179-187
type StacksUpdateCmd struct
Methods
Run
Method
Returns
error
func (*StacksUpdateCmd) Run() error
{
args := c.Args
if c.Name == "" {
if len(args) != 1 || args[0] == "" {
Apx.Log.Error(Apx.LC.Get("stacks.update.error.noName"))
return nil
}
c.Name = args[0]
}
stack, error := core.LoadStack(c.Name)
if error != nil {
return error
}
if stack.BuiltIn {
Apx.Log.Error(Apx.LC.Get("stacks.update.error.builtIn"))
os.Exit(126)
}
if c.BaseImage == "" {
if !c.NoPrompt {
base, err := Apx.CLI.PromptText(fmt.Sprintf(Apx.LC.Get("stacks.update.info.askBase"), stack.Base), stack.Base)
if err != nil {
return err
}
c.BaseImage = base
if c.BaseImage == "" {
c.BaseImage = stack.Base
}
} else {
Apx.Log.Error(Apx.LC.Get("stacks.update.error.noBase"))
return nil
}
}
if c.PkgManager == "" {
if !c.NoPrompt {
manager, err := Apx.CLI.PromptText(fmt.Sprintf(Apx.LC.Get("stacks.update.info.askPkgManager"), stack.PkgManager), stack.PkgManager)
if err != nil {
return err
}
c.PkgManager = manager
if c.PkgManager == "" {
c.PkgManager = stack.PkgManager
}
} else {
Apx.Log.Error(Apx.LC.Get("stacks.update.error.noPkgManager"))
return nil
}
}
ok := core.PkgManagerExists(c.PkgManager)
if !ok {
Apx.Log.Error(Apx.LC.Get("stacks.update.error.pkgManagerDoesNotExist"))
return nil
}
if len(c.Packages) > 0 {
stack.Packages = strings.Fields(c.Packages)
} else if !c.NoPrompt {
msg := Apx.LC.Get("stacks.update.info.noPackages")
if len(stack.Packages) > 0 {
msg = Apx.LC.Get("stacks.update.info.confirmPackages") + "\n\t -" + strings.Join(stack.Packages, "\n\t - ")
}
confirm, _ := Apx.CLI.ConfirmAction(msg, "y", "N", false)
packagesArray := []string{}
if confirm {
pkgs, _ := Apx.CLI.PromptText(Apx.LC.Get("stacks.update.info.askPackages"), "")
packagesInput := strings.TrimSpace(pkgs)
packagesArray = strings.Fields(packagesInput)
stack.Packages = packagesArray
}
}
stack.Base = c.BaseImage
stack.PkgManager = c.PkgManager
err := stack.Save()
if err != nil {
return err
}
Apx.Log.Infof(Apx.LC.Get("stacks.update.info.success"), c.Name)
return nil
}
Fields
| Name | Type | Description |
|---|---|---|
| NoPrompt | bool | flag:"short:y, long:no-prompt, name:pr:apx.cmd.stacks.update.options.noPrompt" |
| Name | string | flag:"short:n, long:name, name:pr:apx.cmd.stacks.update.options.name" |
| BaseImage | string | flag:"short:b, long:base, name:pr:apx.cmd.stacks.update.options.base" |
| Packages | string | flag:"short:p, long:packages, name:pr:apx.cmd.stacks.update.options.packages" |
| PkgManager | string | flag:"short:k, long:pkg-manager, name:pr:apx.cmd.stacks.update.options.pkgManager" |
| Args | []string | arg:"" optional:"" name:"stack" help:"pr:apx.arg.stack" |
S
struct
PkgManagersShowCmd
internal/cli/structs.go:189-192
type PkgManagersShowCmd struct
Methods
Run
Method
Returns
error
func (*PkgManagersShowCmd) Run() error
{
args := c.Args
if len(args) == 0 {
return fmt.Errorf("package manager name required")
}
pkgManagerName := args[0]
pkgManager, err := core.LoadPkgManager(pkgManagerName)
if err != nil {
Apx.Log.Error(err.Error())
return nil
}
headers := []string{"Property", "Value"}
data := [][]string{
{Apx.LC.Get("pkgmanagers.labels.name"), pkgManager.Name},
{"NeedSudo", fmt.Sprintf("%t", pkgManager.NeedSudo)},
{"AutoRemove", pkgManager.CmdAutoRemove},
{"Clean", pkgManager.CmdClean},
{"Install", pkgManager.CmdInstall},
{"List", pkgManager.CmdList},
{"Purge", pkgManager.CmdPurge},
{"Remove", pkgManager.CmdRemove},
{"Search", pkgManager.CmdSearch},
{"Show", pkgManager.CmdShow},
{"Update", pkgManager.CmdUpdate},
{"Upgrade", pkgManager.CmdUpgrade},
}
err = Apx.CLI.Table(headers, data)
if err != nil {
return err
}
return nil
}
Fields
| Name | Type | Description |
|---|---|---|
| Args | []string | arg:"" optional:"" name:"pkgmanager" help:"pr:apx.arg.pkgmanager" |
S
struct
PkgManagersUpdateCmd
internal/cli/structs.go:194-210
type PkgManagersUpdateCmd struct
Methods
Run
Method
Returns
error
func (*PkgManagersUpdateCmd) Run() error
{
args := c.Args
if c.Name == "" {
if len(args) != 1 || args[0] == "" {
Apx.Log.Error(Apx.LC.Get("pkgmanagers.update.error.noName"))
return nil
}
c.Name = args[0]
}
pkgmanager, error := core.LoadPkgManager(c.Name)
if error != nil {
return error
}
if pkgmanager.BuiltIn {
Apx.Log.Error(Apx.LC.Get("pkgmanagers.update.error.builtIn"))
os.Exit(126)
}
if c.AutoRemove == "" {
if !c.NoPrompt {
answer, err := Apx.CLI.PromptText(fmt.Sprintf(Apx.LC.Get("pkgmanagers.update.info.askNewCommand"), "autoRemove", pkgmanager.CmdAutoRemove), pkgmanager.CmdAutoRemove)
if err != nil {
return err
}
c.AutoRemove = strings.TrimSpace(answer)
if c.AutoRemove == "" {
c.AutoRemove = pkgmanager.CmdAutoRemove
}
} else {
Apx.Log.Errorf(Apx.LC.Get("pkgmanagers.update.error.missingCommand"), "autoRemove")
return nil
}
}
if c.Clean == "" {
if !c.NoPrompt {
answer, err := Apx.CLI.PromptText(fmt.Sprintf(Apx.LC.Get("pkgmanagers.update.info.askNewCommand"), "clean", pkgmanager.CmdClean), pkgmanager.CmdClean)
if err != nil {
return err
}
c.Clean = strings.TrimSpace(answer)
if c.Clean == "" {
c.Clean = pkgmanager.CmdClean
}
} else {
Apx.Log.Errorf(Apx.LC.Get("pkgmanagers.update.error.missingCommand"), "clean")
return nil
}
}
if c.Install == "" {
if !c.NoPrompt {
answer, err := Apx.CLI.PromptText(fmt.Sprintf(Apx.LC.Get("pkgmanagers.update.info.askNewCommand"), "install", pkgmanager.CmdInstall), pkgmanager.CmdInstall)
if err != nil {
return err
}
c.Install = strings.TrimSpace(answer)
if c.Install == "" {
c.Install = pkgmanager.CmdInstall
}
} else {
Apx.Log.Errorf(Apx.LC.Get("pkgmanagers.update.error.missingCommand"), "install")
return nil
}
}
if c.List == "" {
if !c.NoPrompt {
answer, err := Apx.CLI.PromptText(fmt.Sprintf(Apx.LC.Get("pkgmanagers.update.info.askNewCommand"), "list", pkgmanager.CmdList), pkgmanager.CmdList)
if err != nil {
return err
}
c.List = strings.TrimSpace(answer)
if c.List == "" {
c.List = pkgmanager.CmdList
}
} else {
Apx.Log.Errorf(Apx.LC.Get("pkgmanagers.update.error.missingCommand"), "list")
return nil
}
}
if c.Purge == "" {
if !c.NoPrompt {
answer, err := Apx.CLI.PromptText(fmt.Sprintf(Apx.LC.Get("pkgmanagers.update.info.askNewCommand"), "purge", pkgmanager.CmdPurge), pkgmanager.CmdPurge)
if err != nil {
return err
}
c.Purge = strings.TrimSpace(answer)
if c.Purge == "" {
c.Purge = pkgmanager.CmdPurge
}
} else {
Apx.Log.Errorf(Apx.LC.Get("pkgmanagers.update.error.missingCommand"), "purge")
return nil
}
}
if c.Remove == "" {
if !c.NoPrompt {
answer, err := Apx.CLI.PromptText(fmt.Sprintf(Apx.LC.Get("pkgmanagers.update.info.askNewCommand"), "remove", pkgmanager.CmdRemove), pkgmanager.CmdRemove)
if err != nil {
return err
}
c.Remove = strings.TrimSpace(answer)
if c.Remove == "" {
c.Remove = pkgmanager.CmdRemove
}
} else {
Apx.Log.Errorf(Apx.LC.Get("pkgmanagers.update.error.missingCommand"), "remove")
return nil
}
}
if c.Search == "" {
if !c.NoPrompt {
answer, err := Apx.CLI.PromptText(fmt.Sprintf(Apx.LC.Get("pkgmanagers.update.info.askNewCommand"), "search", pkgmanager.CmdSearch), pkgmanager.CmdSearch)
if err != nil {
return err
}
c.Search = strings.TrimSpace(answer)
if c.Search == "" {
c.Search = pkgmanager.CmdSearch
}
} else {
Apx.Log.Errorf(Apx.LC.Get("pkgmanagers.update.error.missingCommand"), "search")
return nil
}
}
if c.Show == "" {
if !c.NoPrompt {
answer, err := Apx.CLI.PromptText(fmt.Sprintf(Apx.LC.Get("pkgmanagers.update.info.askNewCommand"), "show", pkgmanager.CmdShow), pkgmanager.CmdShow)
if err != nil {
return err
}
c.Show = strings.TrimSpace(answer)
if c.Show == "" {
c.Show = pkgmanager.CmdShow
}
} else {
Apx.Log.Errorf(Apx.LC.Get("pkgmanagers.update.error.missingCommand"), "show")
return nil
}
}
if c.Update == "" {
if !c.NoPrompt {
answer, err := Apx.CLI.PromptText(fmt.Sprintf(Apx.LC.Get("pkgmanagers.update.info.askNewCommand"), "update", pkgmanager.CmdUpdate), pkgmanager.CmdUpdate)
if err != nil {
return err
}
c.Update = strings.TrimSpace(answer)
if c.Update == "" {
c.Update = pkgmanager.CmdUpdate
}
} else {
Apx.Log.Errorf(Apx.LC.Get("pkgmanagers.update.error.missingCommand"), "update")
return nil
}
}
if c.Upgrade == "" {
if !c.NoPrompt {
answer, err := Apx.CLI.PromptText(fmt.Sprintf(Apx.LC.Get("pkgmanagers.update.info.askNewCommand"), "upgrade", pkgmanager.CmdUpgrade), pkgmanager.CmdUpgrade)
if err != nil {
return err
}
c.Upgrade = strings.TrimSpace(answer)
if c.Upgrade == "" {
c.Upgrade = pkgmanager.CmdUpgrade
}
} else {
Apx.Log.Errorf(Apx.LC.Get("pkgmanagers.update.error.missingCommand"), "upgrade")
return nil
}
}
pkgmanager.NeedSudo = c.NeedSudo
pkgmanager.CmdAutoRemove = c.AutoRemove
pkgmanager.CmdClean = c.Clean
pkgmanager.CmdInstall = c.Install
pkgmanager.CmdList = c.List
pkgmanager.CmdPurge = c.Purge
pkgmanager.CmdRemove = c.Remove
pkgmanager.CmdSearch = c.Search
pkgmanager.CmdShow = c.Show
pkgmanager.CmdUpdate = c.Update
pkgmanager.CmdUpgrade = c.Upgrade
err := pkgmanager.Save()
if err != nil {
return err
}
Apx.Log.Term.Info().Msgf(Apx.LC.Get("pkgmanagers.new.success"), c.Name)
return nil
}
Fields
| Name | Type | Description |
|---|---|---|
| NoPrompt | bool | flag:"short:y, long:no-prompt, name:pr:apx.cmd.pkgmanagers.new.options.noPrompt" |
| Name | string | flag:"short:n, long:name, name:pr:apx.cmd.pkgmanagers.new.options.name" |
| NeedSudo | bool | flag:"short:S, long:need-sudo, name:pr:apx.cmd.pkgmanagers.new.options.needSudo" |
| AutoRemove | string | flag:"short:a, long:autoremove, name:pr:apx.cmd.pkgmanagers.new.options.autoremove" |
| Clean | string | flag:"short:c, long:clean, name:pr:apx.cmd.pkgmanagers.new.options.clean" |
| Install | string | flag:"short:i, long:install, name:pr:apx.cmd.pkgmanagers.new.options.install" |
| List | string | flag:"short:l, long:list, name:pr:apx.cmd.pkgmanagers.new.options.list" |
| Purge | string | flag:"short:p, long:purge, name:pr:apx.cmd.pkgmanagers.new.options.purge" |
| Remove | string | flag:"short:r, long:remove, name:pr:apx.cmd.pkgmanagers.new.options.remove" |
| Search | string | flag:"short:s, long:search, name:pr:apx.cmd.pkgmanagers.new.options.search" |
| Show | string | flag:"short:w, long:show, name:pr:apx.cmd.pkgmanagers.new.options.show" |
| Update | string | flag:"short:u, long:update, name:pr:apx.cmd.pkgmanagers.new.options.update" |
| Upgrade | string | flag:"short:U, long:upgrade, name:pr:apx.cmd.pkgmanagers.new.options.upgrade" |
| Args | []string | arg:"" optional:"" name:"pkgmanager" help:"pr:apx.arg.pkgmanager" |
S
struct
StacksRmCmd
internal/cli/structs.go:212-216
type StacksRmCmd struct
Methods
Run
Method
Returns
error
func (*StacksRmCmd) Run() error
{
if c.Name == "" {
Apx.Log.Error(Apx.LC.Get("stacks.rm.error.noName"))
return nil
}
subSystems, _ := core.ListSubsystemForStack(c.Name)
if len(subSystems) > 0 {
Apx.Log.Errorf(Apx.LC.Get("stacks.rm.error.inUse"), len(subSystems))
headers := []string{Apx.LC.Get("subsystems.labels.name"), "Stack", Apx.LC.Get("subsystems.labels.status"), "Pkgs"}
var data [][]string
for _, subSystem := range subSystems {
data = append(data, []string{
subSystem.Name,
subSystem.Stack.Name,
subSystem.Status,
fmt.Sprintf("%d", len(subSystem.Stack.Packages)),
})
}
Apx.CLI.Table(headers, data)
return nil
}
if !c.Force {
confirm, err := Apx.CLI.ConfirmAction(
fmt.Sprintf(Apx.LC.Get("stacks.rm.info.askConfirmation"), c.Name),
"y", "N",
false,
)
if err != nil {
return err
}
if !confirm {
Apx.Log.Infof(Apx.LC.Get("pkgmanagers.rm.info.aborting"), c.Name)
return nil
}
}
stack, error := core.LoadStack(c.Name)
if error != nil {
return error
}
error = stack.Remove()
if error != nil {
return error
}
Apx.Log.Infof(Apx.LC.Get("stacks.rm.info.success"), c.Name)
return nil
}
Fields
| Name | Type | Description |
|---|---|---|
| Name | string | flag:"short:n, long:name, name:pr:apx.cmd.stacks.rm.options.name" |
| Force | bool | flag:"short:f, long:force, name:pr:apx.cmd.stacks.rm.options.force" |
S
struct
StacksExportCmd
internal/cli/structs.go:218-222
type StacksExportCmd struct
Methods
Run
Method
Returns
error
func (*StacksExportCmd) Run() error
{
if c.Name == "" {
Apx.Log.Error(Apx.LC.Get("stacks.export.error.noName"))
return nil
}
stack, error := core.LoadStack(c.Name)
if error != nil {
return error
}
if c.Output == "" {
Apx.Log.Error(Apx.LC.Get("stacks.export.error.noOutput"))
return nil
}
error = stack.Export(c.Output)
if error != nil {
return error
}
Apx.Log.Infof(Apx.LC.Get("stacks.export.info.success"), stack.Name, c.Output)
return nil
}
Fields
| Name | Type | Description |
|---|---|---|
| Name | string | flag:"short:n, long:name, name:pr:apx.cmd.stacks.export.options.name" |
| Output | string | flag:"short:o, long:output, name:pr:apx.cmd.stacks.export.options.output" |
S
struct
StacksImportCmd
internal/cli/structs.go:224-227
type StacksImportCmd struct
Methods
Run
Method
Returns
error
func (*StacksImportCmd) Run() error
{
if c.Input == "" {
Apx.Log.Error(Apx.LC.Get("stacks.import.error.noInput"))
return nil
}
stack, error := core.LoadStackFromPath(c.Input)
if error != nil {
Apx.Log.Errorf(Apx.LC.Get("stacks.import.error.cannotLoad"), c.Input)
}
error = stack.Save()
if error != nil {
return error
}
Apx.Log.Infof(Apx.LC.Get("stacks.import.info.success"), stack.Name)
return nil
}
Fields
| Name | Type | Description |
|---|---|---|
| Input | string | flag:"short:i, long:input, name:pr:apx.cmd.stacks.import.options.input" |
S
struct
SubsystemsCmd
internal/cli/structs.go:231-237
type SubsystemsCmd struct
Fields
| Name | Type | Description |
|---|---|---|
| List | SubsystemsListCmd | cmd:"list" help:"pr:apx.cmd.subsystems.list" |
| New | SubsystemsNewCmd | cmd:"new" help:"pr:apx.cmd.subsystems.new" |
| Rm | SubsystemsRmCmd | cmd:"rm" help:"pr:apx.cmd.subsystems.rm" |
| Reset | SubsystemsResetCmd | cmd:"reset" help:"pr:apx.cmd.subsystems.reset" |
S
struct
SubsystemsListCmd
internal/cli/structs.go:239-242
type SubsystemsListCmd struct
Methods
Run
Method
Returns
error
func (*SubsystemsListCmd) Run() error
{
subSystems, err := core.ListSubSystems(false, false)
if err != nil {
return err
}
if !c.Json {
subSystemsCount := len(subSystems)
if subSystemsCount == 0 {
Apx.Log.Info(Apx.LC.Get("subsystems.list.info.noSubsystems"))
return nil
}
Apx.Log.Infof(Apx.LC.Get("subsystems.list.info.foundSubsystems"), subSystemsCount)
headers := []string{Apx.LC.Get("subsystems.labels.name"), "Stack", Apx.LC.Get("subsystems.labels.status"), "Pkgs"}
var data [][]string
for _, subSystem := range subSystems {
data = append(data, []string{
subSystem.Name,
subSystem.Stack.Name,
subSystem.Status,
fmt.Sprintf("%d", len(subSystem.Stack.Packages)),
})
}
err := Apx.CLI.Table(headers, data)
if err != nil {
return err
}
} else {
jsonSubSystems, err := json.MarshalIndent(subSystems, "", " ")
if err != nil {
return err
}
fmt.Println(string(jsonSubSystems))
}
return nil
}
Fields
| Name | Type | Description |
|---|---|---|
| Json | bool | flag:"short:j, long:json, name:pr:apx.cmd.subsystem.list.options.json" |
S
struct
SubsystemsNewCmd
internal/cli/structs.go:244-250
type SubsystemsNewCmd struct
Methods
Run
Method
Returns
error
func (*SubsystemsNewCmd) Run() error
{
stacks := core.ListStacks()
if len(stacks) == 0 {
Apx.Log.Error(Apx.LC.Get("subsystems.new.error.noStacks"))
return nil
}
if c.Name == "" {
name, err := Apx.CLI.PromptText(Apx.LC.Get("subsystems.new.info.askName"), "")
if err != nil {
return err
}
c.Name = name
if c.Name == "" {
Apx.Log.Error(Apx.LC.Get("subsystems.new.error.emptyName"))
return nil
}
}
if c.Stack == "" {
var options []string
for _, stack := range stacks {
options = append(options, stack.Name)
}
selected, err := Apx.CLI.SelectOption(Apx.LC.Get("subsystems.new.info.selectStack"), options)
if err != nil {
return err
}
c.Stack = selected
}
checkSubSystem, err := core.LoadSubSystem(c.Name, false)
if err == nil {
Apx.Log.Errorf(Apx.LC.Get("subsystems.new.error.alreadyExists"), checkSubSystem.Name)
return nil
}
// Checking if name conflicts with existing commands.
// In SDK declarative approach, we might need a way to check root commands.
// Apx.CLI.GetRoot() returns the struct.
// We can iterate simple tags or just use known conflicts.
// For now we skip detailed conflict check as we are rebuilding.
// Or we could check if c.Name is a valid command name if feasible.
stack, err := core.LoadStack(c.Stack)
if err != nil {
return err
}
subSystem, err := core.NewSubSystem(c.Name, stack, c.Home, c.Init, false, false, false, true, "")
if err != nil {
return err
}
spinner := Apx.CLI.StartSpinner(fmt.Sprintf(Apx.LC.Get("subsystems.new.info.creatingSubsystem"), c.Name, c.Stack))
err = subSystem.Create()
if err != nil {
spinner.Stop()
return err
}
spinner.Stop()
Apx.Log.Infof(Apx.LC.Get("subsystems.new.info.success"), c.Name)
return nil
}
Fields
| Name | Type | Description |
|---|---|---|
| Stack | string | flag:"short:s, long:stack, name:pr:apx.cmd.subsystem.new.options.stack" |
| Name | string | flag:"short:n, long:name, name:pr:apx.cmd.subsystem.new.options.name" |
| Home | string | flag:"short:H, long:home, name:pr:apx.cmd.subsystem.new.options.home" |
| Init | bool | flag:"short:i, long:init, name:pr:apx.cmd.subsystem.new.options.init" |
S
struct
SubsystemsRmCmd
internal/cli/structs.go:252-256
type SubsystemsRmCmd struct
Methods
Run
Method
Returns
error
func (*SubsystemsRmCmd) Run() error
{
if c.Name == "" {
Apx.Log.Error(Apx.LC.Get("subsystems.rm.error.noName"))
return nil
}
if !c.Force {
confirm, _ := Apx.CLI.ConfirmAction(
fmt.Sprintf(Apx.LC.Get("subsystems.rm.info.askConfirmation"), c.Name),
"y", "N",
false,
)
if !confirm {
Apx.Log.Term.Info().Msg(Apx.LC.Get("apx.info.aborting"))
return nil
}
}
subSystem, err := core.LoadSubSystem(c.Name, false)
if err != nil {
return err
}
err = subSystem.Remove()
if err != nil {
return err
}
Apx.Log.Infof(Apx.LC.Get("subsystems.rm.info.success"), c.Name)
return nil
}
Fields
| Name | Type | Description |
|---|---|---|
| Name | string | flag:"short:n, long:name, name:pr:apx.cmd.subsystem.rm.options.name" |
| Force | bool | flag:"short:f, long:force, name:pr:apx.cmd.subsystem.rm.options.force" |
S
struct
SubsystemsResetCmd
internal/cli/structs.go:258-262
type SubsystemsResetCmd struct
Methods
Run
Method
Returns
error
func (*SubsystemsResetCmd) Run() error
{
if c.Name == "" {
Apx.Log.Error(Apx.LC.Get("subsystems.reset.error.noName"))
return nil
}
if !c.Force {
confirm, _ := Apx.CLI.ConfirmAction(
fmt.Sprintf(Apx.LC.Get("subsystems.reset.info.askConfirmation"), c.Name),
"y", "N",
false,
)
if !confirm {
Apx.Log.Info(Apx.LC.Get("apx.info.aborting"))
return nil
}
}
subSystem, err := core.LoadSubSystem(c.Name, false)
if err != nil {
return err
}
err = subSystem.Reset()
if err != nil {
return err
}
Apx.Log.Infof(Apx.LC.Get("subsystems.reset.info.success"), c.Name)
return nil
}
Fields
| Name | Type | Description |
|---|---|---|
| Name | string | flag:"short:n, long:name, name:pr:apx.cmd.subsystem.reset.options.name" |
| Force | bool | flag:"short:f, long:force, name:pr:apx.cmd.subsystem.reset.options.force" |
S
struct
PkgManagersCmd
internal/cli/structs.go:266-275
type PkgManagersCmd struct
Fields
| Name | Type | Description |
|---|---|---|
| List | PkgManagersListCmd | cmd:"list" help:"pr:apx.cmd.pkgmanagers.list" |
| Show | PkgManagersShowCmd | cmd:"show" help:"pr:apx.cmd.pkgmanagers.show" |
| New | PkgManagersNewCmd | cmd:"new" help:"pr:apx.cmd.pkgmanagers.new" |
| Rm | PkgManagersRmCmd | cmd:"rm" help:"pr:apx.cmd.pkgmanagers.rm" |
| Export | PkgManagersExportCmd | cmd:"export" help:"pr:apx.cmd.pkgmanagers.export" |
| Import | PkgManagersImportCmd | cmd:"import" help:"pr:apx.cmd.pkgmanagers.import" |
| Update | PkgManagersUpdateCmd | cmd:"update" help:"pr:apx.cmd.pkgmanagers.update" |
S
struct
PkgManagersListCmd
internal/cli/structs.go:277-280
type PkgManagersListCmd struct
Methods
Run
Method
Returns
error
func (*PkgManagersListCmd) Run() error
{
pkgManagers := core.ListPkgManagers()
if !c.Json {
pkgManagersCount := len(pkgManagers)
if pkgManagersCount == 0 {
Apx.Log.Info(Apx.LC.Get("pkgmanagers.list.info.noPkgManagers"))
return nil
}
Apx.Log.Infof(Apx.LC.Get("pkgmanagers.list.info.foundPkgManagers"), pkgManagersCount)
headers := []string{Apx.LC.Get("pkgmanagers.labels.name"), Apx.LC.Get("pkgmanagers.labels.builtIn")}
var data [][]string
for _, stack := range pkgManagers {
builtIn := Apx.LC.Get("apx.terminal.no")
if stack.BuiltIn {
builtIn = Apx.LC.Get("apx.terminal.yes")
}
data = append(data, []string{stack.Name, builtIn})
}
err := Apx.CLI.Table(headers, data)
if err != nil {
return err
}
} else {
jsonPkgManagers, _ := json.MarshalIndent(pkgManagers, "", " ")
fmt.Println(string(jsonPkgManagers))
}
return nil
}
Fields
| Name | Type | Description |
|---|---|---|
| Json | bool | flag:"short:j, long:json, name:pr:apx.cmd.pkgmanagers.list.options.json" |
S
struct
PkgManagersNewCmd
internal/cli/structs.go:282-297
type PkgManagersNewCmd struct
Methods
Run
Method
Returns
error
func (*PkgManagersNewCmd) Run() error
{
if c.Name == "" {
if c.NoPrompt {
Apx.Log.Error(Apx.LC.Get("pkgmanagers.new.error.noName"))
return nil
}
name, err := Apx.CLI.PromptText(Apx.LC.Get("pkgmanagers.new.info.askName"), "")
if err != nil {
return err
}
c.Name = name
c.Name = strings.ReplaceAll(c.Name, "\n", "")
c.Name = strings.ReplaceAll(c.Name, " ", "")
if c.Name == "" {
Apx.Log.Error(Apx.LC.Get("pkgmanagers.new.error.emptyName"))
return nil
}
}
if !c.NeedSudo && !c.NoPrompt {
choice, err := Apx.CLI.ConfirmAction(
Apx.LC.Get("pkgmanagers.new.info.askSudo"),
"y", "N",
false,
)
if err != nil {
return err
}
c.NeedSudo = choice
}
cmdMap := map[string]*string{
PkgManagerCmdAutoRemove: &c.AutoRemove,
PkgManagerCmdClean: &c.Clean,
PkgManagerCmdInstall: &c.Install,
PkgManagerCmdList: &c.List,
PkgManagerCmdPurge: &c.Purge,
PkgManagerCmdRemove: &c.Remove,
PkgManagerCmdSearch: &c.Search,
PkgManagerCmdShow: &c.Show,
PkgManagerCmdUpdate: &c.Update,
PkgManagerCmdUpgrade: &c.Upgrade,
}
for _, cmdName := range PkgManagerCmdSetOrder {
cmd := cmdMap[cmdName]
if *cmd == "" {
if c.NoPrompt {
Apx.Log.Errorf(Apx.LC.Get("pkgmanagers.new.error.noCommand"), cmdName)
return nil
}
if cmdName == PkgManagerCmdPurge || cmdName == PkgManagerCmdAutoRemove {
answer, err := Apx.CLI.PromptText(fmt.Sprintf(Apx.LC.Get("pkgmanagers.new.info.askCommandWithDefault"), cmdName, c.Remove), c.Remove)
if err != nil {
return err
}
*cmd = strings.TrimSpace(answer)
if *cmd == "" {
*cmd = c.Remove
}
continue
}
answer, err := Apx.CLI.PromptText(fmt.Sprintf(Apx.LC.Get("pkgmanagers.new.info.askCommand"), cmdName), "")
if err != nil {
return err
}
*cmd = strings.TrimSpace(answer)
if *cmd == "" {
Apx.Log.Errorf(Apx.LC.Get("pkgmanagers.new.error.emptyCommand"), cmdName)
return nil
}
}
}
if core.PkgManagerExists(c.Name) {
if c.NoPrompt {
Apx.Log.Errorf(Apx.LC.Get("pkgmanagers.new.error.alreadyExists"), c.Name)
return nil
}
confirm, err := Apx.CLI.ConfirmAction(
fmt.Sprintf(Apx.LC.Get("pkgmanagers.new.info.askOverwrite"), c.Name),
"y", "N",
false,
)
if err != nil {
return err
}
if !confirm {
Apx.Log.Info(Apx.LC.Get("apx.info.aborting"))
return nil
}
}
pkgManager := core.NewPkgManager(c.Name, c.NeedSudo, c.AutoRemove, c.Clean, c.Install, c.List, c.Purge, c.Remove, c.Search, c.Show, c.Update, c.Upgrade, false)
err := pkgManager.Save()
if err != nil {
Apx.Log.Error(err.Error())
return nil
}
Apx.Log.Infof(Apx.LC.Get("pkgmanagers.new.success"), c.Name)
return nil
}
Fields
| Name | Type | Description |
|---|---|---|
| NoPrompt | bool | flag:"short:y, long:no-prompt, name:pr:apx.cmd.pkgmanagers.new.options.noPrompt" |
| Name | string | flag:"short:n, long:name, name:pr:apx.cmd.pkgmanagers.new.options.name" |
| NeedSudo | bool | flag:"short:S, long:need-sudo, name:pr:apx.cmd.pkgmanagers.new.options.needSudo" |
| AutoRemove | string | flag:"short:a, long:autoremove, name:pr:apx.cmd.pkgmanagers.new.options.autoremove" |
| Clean | string | flag:"short:c, long:clean, name:pr:apx.cmd.pkgmanagers.new.options.clean" |
| Install | string | flag:"short:i, long:install, name:pr:apx.cmd.pkgmanagers.new.options.install" |
| List | string | flag:"short:l, long:list, name:pr:apx.cmd.pkgmanagers.new.options.list" |
| Purge | string | flag:"short:p, long:purge, name:pr:apx.cmd.pkgmanagers.new.options.purge" |
| Remove | string | flag:"short:r, long:remove, name:pr:apx.cmd.pkgmanagers.new.options.remove" |
| Search | string | flag:"short:s, long:search, name:pr:apx.cmd.pkgmanagers.new.options.search" |
| Show | string | flag:"short:w, long:show, name:pr:apx.cmd.pkgmanagers.new.options.show" |
| Update | string | flag:"short:u, long:update, name:pr:apx.cmd.pkgmanagers.new.options.update" |
| Upgrade | string | flag:"short:U, long:upgrade, name:pr:apx.cmd.pkgmanagers.new.options.upgrade" |
S
struct
PkgManagersRmCmd
internal/cli/structs.go:299-303
type PkgManagersRmCmd struct
Methods
Run
Method
Returns
error
func (*PkgManagersRmCmd) Run() error
{
if c.Name == "" {
Apx.Log.Error(Apx.LC.Get("pkgmanagers.rm.error.noName"))
return nil
}
pkgManager, error := core.LoadPkgManager(c.Name)
if error != nil {
return error
}
stacks := core.ListStackForPkgManager(pkgManager.Name)
if len(stacks) > 0 {
Apx.Log.Errorf(Apx.LC.Get("pkgmanagers.rm.error.inUse"), len(stacks))
headers := []string{Apx.LC.Get("pkgmanagers.labels.name"), "Base", "Packages", "PkgManager", Apx.LC.Get("pkgmanagers.labels.builtIn")}
var data [][]string
for _, stack := range stacks {
builtIn := Apx.LC.Get("apx.terminal.no")
if stack.BuiltIn {
builtIn = Apx.LC.Get("apx.terminal.yes")
}
data = append(data, []string{stack.Name, stack.Base, strings.Join(stack.Packages, ", "), stack.PkgManager, builtIn})
}
Apx.CLI.Table(headers, data)
return nil
}
if !c.Force {
confirm, err := Apx.CLI.ConfirmAction(
fmt.Sprintf(Apx.LC.Get("pkgmanagers.rm.info.askConfirmation"), c.Name),
"y", "N",
false,
)
if err != nil {
return err
}
if !confirm {
Apx.Log.Infof(Apx.LC.Get("pkgmanagers.rm.info.aborting"), c.Name)
return nil
}
}
error = pkgManager.Remove()
if error != nil {
return error
}
Apx.Log.Infof(Apx.LC.Get("pkgmanagers.rm.info.success"), c.Name)
return nil
}
Fields
| Name | Type | Description |
|---|---|---|
| Name | string | flag:"short:n, long:name, name:pr:apx.cmd.pkgmanagers.rm.options.name" |
| Force | bool | flag:"short:f, long:force, name:pr:apx.cmd.pkgmanagers.rm.options.force" |
S
struct
PkgManagersExportCmd
internal/cli/structs.go:305-309
type PkgManagersExportCmd struct
Methods
Run
Method
Returns
error
func (*PkgManagersExportCmd) Run() error
{
if c.Name == "" {
Apx.Log.Error(Apx.LC.Get("pkgmanagers.export.error.noName"))
return nil
}
pkgManager, error := core.LoadPkgManager(c.Name)
if error != nil {
return error
}
if c.Output == "" {
Apx.Log.Error(Apx.LC.Get("pkgmanagers.export.error.noOutput"))
return nil
}
error = pkgManager.Export(c.Output)
if error != nil {
return error
}
Apx.Log.Infof(Apx.LC.Get("pkgmanagers.export.info.success"), pkgManager.Name, c.Output)
return nil
}
Fields
| Name | Type | Description |
|---|---|---|
| Name | string | flag:"short:n, long:name, name:pr:apx.cmd.pkgmanagers.export.options.name" |
| Output | string | flag:"short:o, long:output, name:pr:apx.cmd.pkgmanagers.export.options.output" |
S
struct
PkgManagersImportCmd
internal/cli/structs.go:311-314
type PkgManagersImportCmd struct
Methods
Run
Method
Returns
error
func (*PkgManagersImportCmd) Run() error
{
if c.Input == "" {
Apx.Log.Error(Apx.LC.Get("pkgmanagers.import.error.noInput"))
return nil
}
pkgmanager, error := core.LoadPkgManagerFromPath(c.Input)
if error != nil {
Apx.Log.Errorf(Apx.LC.Get("pkgmanagers.import.error.cannotLoad"), c.Input)
}
error = pkgmanager.Save()
if error != nil {
return error
}
Apx.Log.Infof(Apx.LC.Get("pkgmanagers.import.info.success"), pkgmanager.Name)
return nil
}
Fields
| Name | Type | Description |
|---|---|---|
| Input | string | flag:"short:i, long:input, name:pr:apx.cmd.pkgmanagers.import.options.input" |