Skip to content

Commit 487e8ca

Browse files
authored
fix: handle invalid command for 'abroot pkg'
Show an error when the user passes an invalid argument for 'abroot pkg' instead of exiting silently. This commit also adds "iPkgMngStatus" to the sample abroot.json so that the pkg command appears when testing locally.
1 parent 8a625d0 commit 487e8ca

File tree

4 files changed

+14
-8
lines changed

4 files changed

+14
-8
lines changed

cmd/pkg.go

+3
Original file line numberDiff line numberDiff line change
@@ -181,6 +181,9 @@ func pkg(cmd *cobra.Command, args []string) error {
181181
cmdr.Error.Printf(abroot.Trans("pkg.applyFailed"), err)
182182
return err
183183
}
184+
default:
185+
cmdr.Error.Println(abroot.Trans("pkg.unknownCommand", args[0]))
186+
return nil
184187
}
185188

186189
return nil

config/abroot.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
"iPkgMngAdd": "apt-get install -y",
1414
"iPkgMngRm": "apt-get remove -y --autoremove",
1515
"iPkgMngApi": "https://packages.vanillaos.org/api/pkg/{packageName}",
16+
"iPkgMngStatus": 1,
1617

1718
"differURL": "https://differ.vanillaos.org",
1819

@@ -26,4 +27,4 @@
2627
"thinInitVolume": "",
2728

2829
"libPathStates": "/var/lib/abroot/states"
29-
}
30+
}

core/packages.go

+8-7
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ func NewPackageManager(dryRun bool) (*PackageManager, error) {
8181
baseDir = DryRunPackagesBaseDir
8282
}
8383

84-
err := os.MkdirAll(baseDir, 0755)
84+
err := os.MkdirAll(baseDir, 0o755)
8585
if err != nil {
8686
PrintVerboseErr("PackageManager.NewPackageManager", 0, err)
8787
return nil, err
@@ -92,7 +92,7 @@ func NewPackageManager(dryRun bool) (*PackageManager, error) {
9292
err = os.WriteFile(
9393
filepath.Join(baseDir, PackagesAddFile),
9494
[]byte(""),
95-
0644,
95+
0o644,
9696
)
9797
if err != nil {
9898
PrintVerboseErr("PackageManager.NewPackageManager", 1, err)
@@ -105,7 +105,7 @@ func NewPackageManager(dryRun bool) (*PackageManager, error) {
105105
err = os.WriteFile(
106106
filepath.Join(baseDir, PackagesRemoveFile),
107107
[]byte(""),
108-
0644,
108+
0o644,
109109
)
110110
if err != nil {
111111
PrintVerboseErr("PackageManager.NewPackageManager", 2, err)
@@ -118,7 +118,7 @@ func NewPackageManager(dryRun bool) (*PackageManager, error) {
118118
err = os.WriteFile(
119119
filepath.Join(baseDir, PackagesUnstagedFile),
120120
[]byte(""),
121-
0644,
121+
0o644,
122122
)
123123
if err != nil {
124124
PrintVerboseErr("PackageManager.NewPackageManager", 3, err)
@@ -220,7 +220,8 @@ func (p *PackageManager) Add(pkg string) error {
220220
return p.writeAddPackages(pkgsAdd)
221221
}
222222

223-
// Remove removes a package from the packages.add file
223+
// Remove either removes a manually added package from packages.add or adds
224+
// a package to be deleted into packages.remove
224225
func (p *PackageManager) Remove(pkg string) error {
225226
PrintVerboseInfo("PackageManager.Remove", "running...")
226227

@@ -455,7 +456,7 @@ func (p *PackageManager) writePackages(file string, pkgs []string) error {
455456
continue
456457
}
457458

458-
_, err = f.WriteString(fmt.Sprintf("%s\n", pkg))
459+
_, err = fmt.Fprintf(f, "%s\n", pkg)
459460
if err != nil {
460461
PrintVerboseErr("PackageManager.writePackages", 1, err)
461462
return err
@@ -664,7 +665,7 @@ func (p *PackageManager) AcceptUserAgreement() error {
664665
err := os.WriteFile(
665666
PkgManagerUserAgreementFile,
666667
[]byte(time.Now().String()),
667-
0644,
668+
0o644,
668669
)
669670
if err != nil {
670671
PrintVerboseErr("PackageManager.AcceptUserAgreement", 0, err)

locales/en.yml

+1
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ pkg:
4040
use: "pkg"
4141
long: "Install and manage packages."
4242
short: "Manage packages"
43+
unknownCommand: "Unknown command '%s'. Run 'abroot pkg --help' for usage examples."
4344
rootRequired: "You must be root to run this command."
4445
failedGettingPkgManagerInstance: "Failed to get package manager instance: %s\n"
4546
noPackageNameProvided: "You must provide at least one package name for this operation."

0 commit comments

Comments
 (0)