mirror of
https://github.com/go-shiori/shiori.git
synced 2024-11-16 22:25:13 +08:00
57 lines
1.3 KiB
Go
57 lines
1.3 KiB
Go
|
package account
|
||
|
|
||
|
import (
|
||
|
dt "github.com/RadhiFadlillah/shiori/database"
|
||
|
"github.com/fatih/color"
|
||
|
"github.com/spf13/cobra"
|
||
|
)
|
||
|
|
||
|
var (
|
||
|
cError = color.New(color.FgHiRed)
|
||
|
cIndex = color.New(color.FgHiCyan)
|
||
|
)
|
||
|
|
||
|
// NewAccountCmd creates new command for managing account
|
||
|
func NewAccountCmd(db dt.Database) *cobra.Command {
|
||
|
// Create handler
|
||
|
hdl := cmdHandler{db: db}
|
||
|
|
||
|
// Create sub command
|
||
|
addCmd := &cobra.Command{
|
||
|
Use: "add username",
|
||
|
Short: "Create new account",
|
||
|
Args: cobra.ExactArgs(1),
|
||
|
Run: hdl.addAccount,
|
||
|
}
|
||
|
|
||
|
printCmd := &cobra.Command{
|
||
|
Use: "print",
|
||
|
Short: "Print the saved accounts",
|
||
|
Args: cobra.NoArgs,
|
||
|
Aliases: []string{"list", "ls"},
|
||
|
Run: hdl.printAccounts,
|
||
|
}
|
||
|
|
||
|
deleteCmd := &cobra.Command{
|
||
|
Use: "delete [usernames]",
|
||
|
Short: "Delete the saved accounts",
|
||
|
Long: "Delete accounts. " +
|
||
|
"Accepts space-separated list of usernames. " +
|
||
|
"If no arguments, all records will be deleted.",
|
||
|
Run: hdl.deleteAccounts,
|
||
|
}
|
||
|
|
||
|
// Set sub command flags
|
||
|
printCmd.Flags().StringP("search", "s", "", "Search accounts by username")
|
||
|
deleteCmd.Flags().BoolP("yes", "y", false, "Skip confirmation prompt and delete ALL accounts")
|
||
|
|
||
|
// Create final root command
|
||
|
rootCmd := &cobra.Command{
|
||
|
Use: "account",
|
||
|
Short: "Manage account for accessing web interface",
|
||
|
}
|
||
|
|
||
|
rootCmd.AddCommand(addCmd, printCmd, deleteCmd)
|
||
|
return rootCmd
|
||
|
}
|