go-KodeStarter/kode-starter.go

96 lines
3.1 KiB
Go
Raw Normal View History

2023-06-12 22:40:22 -04:00
package main
import (
2023-06-21 11:50:12 -04:00
"kode-starter/cmdCreate"
"kode-starter/cmdEnv"
"kode-starter/cmdLists"
2023-06-12 22:40:22 -04:00
"kode-starter/config"
"kode-starter/utils"
2023-06-17 14:17:02 -04:00
"kode-starter/version"
2023-06-12 22:40:22 -04:00
"github.com/spf13/cobra"
)
var rootCmd = &cobra.Command{
2023-06-17 14:17:02 -04:00
Use: "kode-creator.exe",
2023-06-12 22:40:22 -04:00
Short: "Simple cli app create startup project",
Long: `A simple CLI app to work with Github, Gitea`,
Run: func(cmd *cobra.Command, args []string) {
2023-06-17 14:17:02 -04:00
config.SetInformations(cmd, args)
2023-06-12 22:40:22 -04:00
mainProgram(cmd, args)
},
}
2023-06-25 12:54:50 -04:00
var token, org, name, private, description, envGroup, envCategory string
var verbose, createFlag, versionFlag bool
var listEnvFlag, listEnvCfgFlag, setEnvFlag, envVariablesFlag, envGroupFlag bool
2023-06-12 22:40:22 -04:00
func init() {
2023-06-25 12:54:50 -04:00
// var config = &config.Config{}
2023-06-12 22:40:22 -04:00
2023-06-25 12:54:50 -04:00
// root menu section
rootCmd.Flags().BoolP("help", "h", false, "Show help for create command")
rootCmd.Flags().BoolVarP(&versionFlag, "version", "V", false, "Show version")
rootCmd.CompletionOptions.DisableDefaultCmd = true
2023-06-12 22:40:22 -04:00
rootCmd.PersistentFlags().BoolVarP(&verbose, "verbose", "v", false, "mode verbose")
rootCmd.PersistentFlags().BoolVarP(&createFlag, "json", "j", false, "Print output as json format")
2023-06-25 12:54:50 -04:00
// List menu section
2023-06-21 11:50:12 -04:00
cmdLists.ListCmd.Flags().StringVarP(&token, "token", "t", "", "Github token")
cmdLists.ListCmd.Flags().StringVarP(&org, "org", "o", "", "Github organization")
2023-06-12 22:40:22 -04:00
2023-06-25 12:54:50 -04:00
// Create menu section
2023-06-21 11:50:12 -04:00
cmdCreate.CreateCmd.Flags().StringVarP(&token, "token", "t", "", "Github token")
cmdCreate.CreateCmd.Flags().StringVarP(&org, "org", "o", "", "Github organization")
cmdCreate.CreateCmd.Flags().StringVarP(&name, "name", "n", "", "Project name")
cmdCreate.CreateCmd.Flags().StringVarP(&description, "desc", "d", "", "Description")
cmdCreate.CreateCmd.Flags().StringVarP(&private, "private", "p", "", "true/false")
2023-06-12 22:40:22 -04:00
2023-06-25 12:54:50 -04:00
// Env menu section
cmdEnv.EnvCmd.Flags().BoolVarP(&envVariablesFlag, "env", "e", false, "environnement variables management")
cmdEnv.EnvCmd.Flags().BoolVarP(&listEnvFlag, "list", "l", false, "List environnement variables")
cmdEnv.EnvCmd.Flags().StringVarP(&envGroup, "filter", "f", "", "Highlight a specific word in environnement variables")
cmdEnv.EnvCmd.Flags().BoolVarP(&listEnvCfgFlag, "yml", "y", false, "List environnement variables from config.yml")
cmdEnv.EnvCmd.Flags().StringVarP(&envCategory, "cat", "c", "", "filter for a specific category")
cmdEnv.EnvCmd.Flags().BoolVarP(&setEnvFlag, "set", "s", false, "set environnement variable available from config.yml")
2023-06-21 11:50:12 -04:00
2023-06-25 12:54:50 -04:00
// Add subcommands
2023-06-21 11:50:12 -04:00
rootCmd.AddCommand(cmdLists.ListCmd)
rootCmd.AddCommand(cmdCreate.CreateCmd)
rootCmd.AddCommand(cmdEnv.EnvCmd)
2023-06-12 22:40:22 -04:00
}
func mainProgram(cmd *cobra.Command, args []string) {
2023-06-17 14:17:02 -04:00
config.SetInformations(cmd, args)
2023-06-25 12:54:50 -04:00
// if version flag is set, print version and exit
if config.GetVersionFlag() {
utils.PrintVersion(version.GetFullVersion(), config.GetAuthor(), config.GetBuildDate())
2023-06-12 22:40:22 -04:00
return
2023-06-25 12:54:50 -04:00
// if no flag is set, print help and exit
2023-06-12 22:40:22 -04:00
} else {
2023-06-21 11:50:12 -04:00
2023-06-25 12:54:50 -04:00
//configFile.Listcategory()
2023-06-17 14:17:02 -04:00
utils.PrintHelpFormated(version.GetFullVersion(), config.GetAuthor(), config.GetBuildDate(), cmd)
2023-06-12 22:40:22 -04:00
return
}
}
func main() {
2023-06-25 12:54:50 -04:00
// var config = &config.Config{}
2023-06-24 02:00:53 -04:00
2023-06-25 12:54:50 -04:00
// print header
utils.PrintHeader()
2023-06-24 02:00:53 -04:00
2023-06-25 12:54:50 -04:00
// execute root command
2023-06-12 22:40:22 -04:00
rootCmd.Execute()
}