1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- package cmd
- import (
- "context"
- "log"
- "os"
- "github.com/0xJacky/Nginx-UI/internal/user"
- "github.com/0xJacky/Nginx-UI/internal/version"
- "github.com/urfave/cli/v3"
- )
- func NewAppCmd() *cli.Command {
- serve := false
- cmd := &cli.Command{
- Name: "nginx-ui",
- Usage: "Yet another Nginx Web UI",
- Commands: []*cli.Command{
- {
- Name: "serve",
- Usage: "Start the Nginx-UI server",
- Action: func(ctx context.Context, command *cli.Command) error {
- serve = true
- return nil
- },
- Flags: []cli.Flag{
- &cli.StringFlag{
- Name: "pidfile",
- Usage: "`PATH` to the PID file",
- Action: func(ctx context.Context, command *cli.Command, s string) error {
- // remove `pidfile` parameter from os.Args
- for i, arg := range os.Args {
- if arg == "--pidfile" || arg == "-p" {
- os.Args = append(os.Args[:i], os.Args[i+2:]...)
- break
- }
- }
- return nil
- },
- },
- },
- },
- {
- Name: "reset-password",
- Usage: "Reset the initial user password",
- Action: user.ResetInitUserPassword,
- },
- UpgradeDockerStep2Command,
- },
- Flags: []cli.Flag{
- &cli.StringFlag{
- Name: "config",
- Value: "app.ini",
- Usage: "configuration file path",
- },
- },
- DefaultCommand: "serve",
- Version: version.Version,
- }
- // Set the version printer
- cli.VersionPrinter = VersionPrinter
- if err := cmd.Run(context.Background(), os.Args); err != nil {
- log.Fatal(err)
- } else if !serve {
- os.Exit(0)
- }
- return cmd
- }
|