Add upgradable flag to list command, bump version, actually add readme content
This commit is contained in:
parent
8e821747d4
commit
7fd8b1804e
39
README.md
39
README.md
@ -1,2 +1,37 @@
|
|||||||
# pikman
|
# pikman - One package manager to rule them all
|
||||||
PikaOS package manager
|
|
||||||
|
## USAGE:
|
||||||
|
pikman [global options] command [command options] [arguments...]
|
||||||
|
|
||||||
|
## VERSION:
|
||||||
|
v1.23.2.17.0
|
||||||
|
|
||||||
|
## COMMANDS:
|
||||||
|
|
||||||
|
- **autoremove** - Remove all unused packages
|
||||||
|
- **clean, cl** - Clean the package manager cache
|
||||||
|
- **enter** - Enter the container instance for select package manager
|
||||||
|
- **export** - Export/Recreate a program's desktop entry from the container
|
||||||
|
- **init** - Initialize a managed container
|
||||||
|
- **install, i** - Install the specified package(s)
|
||||||
|
- **list, l** - List installed packages
|
||||||
|
- **log** - Show package manager logs
|
||||||
|
- **purge** - Fully purge a package
|
||||||
|
- **run** - Run a command inside a managed container
|
||||||
|
- **remove, r** - Remove an installed package
|
||||||
|
- **search, s** - Search for a package
|
||||||
|
- **show** - Show details for a package
|
||||||
|
- **unexport** - Unexport/Remove a program's desktop entry
|
||||||
|
- **update** - Update the list of available packages
|
||||||
|
- **upgrade** - Upgrade the system by installing/upgrading available packages
|
||||||
|
- **help, h** - Shows a list of commands or help for one command
|
||||||
|
|
||||||
|
## GLOBAL OPTIONS:
|
||||||
|
|
||||||
|
- **--arch, --aur** - Install Arch packages (including from the AUR) (default: false)
|
||||||
|
- **--fedora, --dnf** - Install Fedora packages (default: false)
|
||||||
|
- **--alpine, --apk** - Install Alpine packages (default: false)
|
||||||
|
- **--flatpak, --fl** - Install Flatpak packages (default: false)
|
||||||
|
- **--name value** - Name of the managed container
|
||||||
|
- **--help, -h** - show help (default: false)
|
||||||
|
- **--version, -v** - Version number (default: false)
|
@ -29,12 +29,16 @@ var packageManagerMap = map[types.OSType]string{
|
|||||||
types.Flatpak: flatpak.PackageManager,
|
types.Flatpak: flatpak.PackageManager,
|
||||||
}
|
}
|
||||||
|
|
||||||
func ProcessCommand(command string, osType types.OSType, containerName string, packageName []string) error {
|
func ProcessCommand(command string, osType types.OSType, containerName string, packageName []string, upgradableFlag bool) error {
|
||||||
var err error
|
var err error
|
||||||
if osType != types.Ubuntu && osType != types.Flatpak && containerName != "" {
|
if osType != types.Ubuntu && osType != types.Flatpak && containerName != "" {
|
||||||
packageName = append([]string{"--name " + containerName}, packageName...)
|
packageName = append([]string{"--name " + containerName}, packageName...)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if osType == types.Ubuntu && upgradableFlag {
|
||||||
|
packageName = append([]string{"--upgradable"}, packageName...)
|
||||||
|
}
|
||||||
|
|
||||||
commandToExecute, err := getCommand(command, osType, packageName)
|
commandToExecute, err := getCommand(command, osType, packageName)
|
||||||
cmd := exec.Command("/bin/sh", "-c", commandToExecute)
|
cmd := exec.Command("/bin/sh", "-c", commandToExecute)
|
||||||
cmd.Stdout = os.Stdout
|
cmd.Stdout = os.Stdout
|
||||||
|
42
main.go
42
main.go
@ -16,6 +16,7 @@ func main() {
|
|||||||
|
|
||||||
osType := types.Ubuntu
|
osType := types.Ubuntu
|
||||||
containerName := ""
|
containerName := ""
|
||||||
|
upgradableFlag := false
|
||||||
|
|
||||||
cli.VersionFlag = &cli.BoolFlag{
|
cli.VersionFlag = &cli.BoolFlag{
|
||||||
Name: "version",
|
Name: "version",
|
||||||
@ -26,7 +27,7 @@ func main() {
|
|||||||
app := &cli.App{
|
app := &cli.App{
|
||||||
Name: "pikman",
|
Name: "pikman",
|
||||||
Usage: "One package manager to rule them all",
|
Usage: "One package manager to rule them all",
|
||||||
Version: "v1.23.1.20.0",
|
Version: "v1.23.2.17.0",
|
||||||
EnableBashCompletion: true,
|
EnableBashCompletion: true,
|
||||||
Flags: []cli.Flag{
|
Flags: []cli.Flag{
|
||||||
&cli.BoolFlag{
|
&cli.BoolFlag{
|
||||||
@ -84,7 +85,7 @@ func main() {
|
|||||||
Name: "autoremove",
|
Name: "autoremove",
|
||||||
Usage: "Remove all unused packages",
|
Usage: "Remove all unused packages",
|
||||||
Action: func(cCtx *cli.Context) error {
|
Action: func(cCtx *cli.Context) error {
|
||||||
return loader.ProcessCommand(cCtx.Command.FullName(), osType, containerName, cCtx.Args().Slice())
|
return loader.ProcessCommand(cCtx.Command.FullName(), osType, containerName, cCtx.Args().Slice(), false)
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -92,28 +93,28 @@ func main() {
|
|||||||
Aliases: []string{"cl"},
|
Aliases: []string{"cl"},
|
||||||
Usage: "Clean the package manager cache",
|
Usage: "Clean the package manager cache",
|
||||||
Action: func(cCtx *cli.Context) error {
|
Action: func(cCtx *cli.Context) error {
|
||||||
return loader.ProcessCommand(cCtx.Command.FullName(), osType, containerName, cCtx.Args().Slice())
|
return loader.ProcessCommand(cCtx.Command.FullName(), osType, containerName, cCtx.Args().Slice(), false)
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
Name: "enter",
|
Name: "enter",
|
||||||
Usage: "Enter the container instance for select package manager",
|
Usage: "Enter the container instance for select package manager",
|
||||||
Action: func(cCtx *cli.Context) error {
|
Action: func(cCtx *cli.Context) error {
|
||||||
return loader.ProcessCommand(cCtx.Command.FullName(), osType, containerName, cCtx.Args().Slice())
|
return loader.ProcessCommand(cCtx.Command.FullName(), osType, containerName, cCtx.Args().Slice(), false)
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
Name: "export",
|
Name: "export",
|
||||||
Usage: "Export/Recreate a program's desktop entry from the container",
|
Usage: "Export/Recreate a program's desktop entry from the container",
|
||||||
Action: func(cCtx *cli.Context) error {
|
Action: func(cCtx *cli.Context) error {
|
||||||
return loader.ProcessCommand(cCtx.Command.FullName(), osType, containerName, cCtx.Args().Slice())
|
return loader.ProcessCommand(cCtx.Command.FullName(), osType, containerName, cCtx.Args().Slice(), false)
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
Name: "init",
|
Name: "init",
|
||||||
Usage: "Initialize a managed container",
|
Usage: "Initialize a managed container",
|
||||||
Action: func(cCtx *cli.Context) error {
|
Action: func(cCtx *cli.Context) error {
|
||||||
return loader.ProcessCommand(cCtx.Command.FullName(), osType, containerName, cCtx.Args().Slice())
|
return loader.ProcessCommand(cCtx.Command.FullName(), osType, containerName, cCtx.Args().Slice(), false)
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -121,36 +122,43 @@ func main() {
|
|||||||
Aliases: []string{"i"},
|
Aliases: []string{"i"},
|
||||||
Usage: "Install the specified package(s)",
|
Usage: "Install the specified package(s)",
|
||||||
Action: func(cCtx *cli.Context) error {
|
Action: func(cCtx *cli.Context) error {
|
||||||
return loader.ProcessCommand(cCtx.Command.FullName(), osType, containerName, cCtx.Args().Slice())
|
return loader.ProcessCommand(cCtx.Command.FullName(), osType, containerName, cCtx.Args().Slice(), false)
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
Name: "list",
|
Name: "list",
|
||||||
Aliases: []string{"l"},
|
Aliases: []string{"l"},
|
||||||
Usage: "List installed packages",
|
Usage: "List installed packages",
|
||||||
|
Flags: []cli.Flag{
|
||||||
|
&cli.BoolFlag{
|
||||||
|
Name: "upgradable",
|
||||||
|
Usage: "Used by list to check upgradable packages",
|
||||||
|
Destination: &upgradableFlag,
|
||||||
|
},
|
||||||
|
},
|
||||||
Action: func(cCtx *cli.Context) error {
|
Action: func(cCtx *cli.Context) error {
|
||||||
return loader.ProcessCommand(cCtx.Command.FullName(), osType, containerName, cCtx.Args().Slice())
|
return loader.ProcessCommand(cCtx.Command.FullName(), osType, containerName, cCtx.Args().Slice(), upgradableFlag)
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
Name: "log",
|
Name: "log",
|
||||||
Usage: "Show package manager logs",
|
Usage: "Show package manager logs",
|
||||||
Action: func(cCtx *cli.Context) error {
|
Action: func(cCtx *cli.Context) error {
|
||||||
return loader.ProcessCommand(cCtx.Command.FullName(), osType, containerName, cCtx.Args().Slice())
|
return loader.ProcessCommand(cCtx.Command.FullName(), osType, containerName, cCtx.Args().Slice(), false)
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
Name: "purge",
|
Name: "purge",
|
||||||
Usage: "Fully purge a package",
|
Usage: "Fully purge a package",
|
||||||
Action: func(cCtx *cli.Context) error {
|
Action: func(cCtx *cli.Context) error {
|
||||||
return loader.ProcessCommand(cCtx.Command.FullName(), osType, containerName, cCtx.Args().Slice())
|
return loader.ProcessCommand(cCtx.Command.FullName(), osType, containerName, cCtx.Args().Slice(), false)
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
Name: "run",
|
Name: "run",
|
||||||
Usage: "Run a command inside a managed container",
|
Usage: "Run a command inside a managed container",
|
||||||
Action: func(cCtx *cli.Context) error {
|
Action: func(cCtx *cli.Context) error {
|
||||||
return loader.ProcessCommand(cCtx.Command.FullName(), osType, containerName, cCtx.Args().Slice())
|
return loader.ProcessCommand(cCtx.Command.FullName(), osType, containerName, cCtx.Args().Slice(), false)
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -158,7 +166,7 @@ func main() {
|
|||||||
Aliases: []string{"r"},
|
Aliases: []string{"r"},
|
||||||
Usage: "Remove an installed package",
|
Usage: "Remove an installed package",
|
||||||
Action: func(cCtx *cli.Context) error {
|
Action: func(cCtx *cli.Context) error {
|
||||||
return loader.ProcessCommand(cCtx.Command.FullName(), osType, containerName, cCtx.Args().Slice())
|
return loader.ProcessCommand(cCtx.Command.FullName(), osType, containerName, cCtx.Args().Slice(), false)
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -166,28 +174,28 @@ func main() {
|
|||||||
Aliases: []string{"s"},
|
Aliases: []string{"s"},
|
||||||
Usage: "Search for a package",
|
Usage: "Search for a package",
|
||||||
Action: func(cCtx *cli.Context) error {
|
Action: func(cCtx *cli.Context) error {
|
||||||
return loader.ProcessCommand(cCtx.Command.FullName(), osType, containerName, cCtx.Args().Slice())
|
return loader.ProcessCommand(cCtx.Command.FullName(), osType, containerName, cCtx.Args().Slice(), false)
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
Name: "show",
|
Name: "show",
|
||||||
Usage: "Show details for a package",
|
Usage: "Show details for a package",
|
||||||
Action: func(cCtx *cli.Context) error {
|
Action: func(cCtx *cli.Context) error {
|
||||||
return loader.ProcessCommand(cCtx.Command.FullName(), osType, containerName, cCtx.Args().Slice())
|
return loader.ProcessCommand(cCtx.Command.FullName(), osType, containerName, cCtx.Args().Slice(), false)
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
Name: "unexport",
|
Name: "unexport",
|
||||||
Usage: "Unexport/Remove a program's desktop entry",
|
Usage: "Unexport/Remove a program's desktop entry",
|
||||||
Action: func(cCtx *cli.Context) error {
|
Action: func(cCtx *cli.Context) error {
|
||||||
return loader.ProcessCommand(cCtx.Command.FullName(), osType, containerName, cCtx.Args().Slice())
|
return loader.ProcessCommand(cCtx.Command.FullName(), osType, containerName, cCtx.Args().Slice(), false)
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
Name: "update",
|
Name: "update",
|
||||||
Usage: "Update the list of available packages",
|
Usage: "Update the list of available packages",
|
||||||
Action: func(cCtx *cli.Context) error {
|
Action: func(cCtx *cli.Context) error {
|
||||||
return loader.ProcessCommand(cCtx.Command.FullName(), osType, containerName, cCtx.Args().Slice())
|
return loader.ProcessCommand(cCtx.Command.FullName(), osType, containerName, cCtx.Args().Slice(), false)
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -195,7 +203,7 @@ func main() {
|
|||||||
Usage: "Upgrade the system by installing/upgrading available packages",
|
Usage: "Upgrade the system by installing/upgrading available packages",
|
||||||
Action: func(cCtx *cli.Context) error {
|
Action: func(cCtx *cli.Context) error {
|
||||||
cCtx.Args().Tail()
|
cCtx.Args().Tail()
|
||||||
return loader.ProcessCommand(cCtx.Command.FullName(), osType, containerName, cCtx.Args().Slice())
|
return loader.ProcessCommand(cCtx.Command.FullName(), osType, containerName, cCtx.Args().Slice(), false)
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
Loading…
Reference in New Issue
Block a user