mirror of
https://github.com/Slug-Boi/cocommit.git
synced 2026-05-13 12:45:47 +00:00
feat: add the base config command with flags to help configure the tool and create one if its missing
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
package cmd
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/Slug-Boi/cocommit/src/cmd/utils"
|
||||
"github.com/spf13/cobra"
|
||||
)
|
||||
|
||||
// configCmd represents the config command
|
||||
var configCmd = &cobra.Command{
|
||||
Use: "config",
|
||||
Short: "This command will create or edit the configuration file for cocommit",
|
||||
Long: `This command will create or edit the configuration file for cocommit.
|
||||
You can set various settings like the author file, starting scope, and which editor to use.
|
||||
A flag can be used to print the current configuration, as well as its location.
|
||||
To see what options are available to use in the config file, please refer to the wiki page on the GitHub repository:
|
||||
COMING SOON`,
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
printConfig, _ := cmd.Flags().GetBool("print")
|
||||
editConfig, _ := cmd.Flags().GetBool("edit")
|
||||
configLocation, _ := cmd.Flags().GetBool("location")
|
||||
removeConfig, _ := cmd.Flags().GetBool("remove")
|
||||
|
||||
if printConfig {
|
||||
if !utils.CheckConfig() {
|
||||
fmt.Println("No configuration file found. Default is being used.")
|
||||
fmt.Println("Default configuration:")
|
||||
|
||||
} else {
|
||||
fmt.Println("Current configuration:")
|
||||
}
|
||||
fmt.Println("Author File:", utils.ConfigVar.Settings.AuthorFile)
|
||||
fmt.Println("Starting Scope:", utils.ConfigVar.Settings.StartingScope)
|
||||
fmt.Println("Editor:", utils.ConfigVar.Settings.Editor)
|
||||
}
|
||||
|
||||
// Check if the config file exists
|
||||
if !utils.CheckConfig() {
|
||||
err := utils.HandleMissingConfig()
|
||||
if err != nil {
|
||||
panic(fmt.Sprintf("Error handling missing configuration file: %v", err))
|
||||
}
|
||||
return
|
||||
}
|
||||
if printConfig {
|
||||
return
|
||||
}
|
||||
|
||||
if editConfig {
|
||||
utils.LaunchEditor("default",utils.GetConfigFilePath())
|
||||
return
|
||||
} else if configLocation {
|
||||
fmt.Println("Configuration file location:", utils.GetConfigFilePath())
|
||||
return
|
||||
} else if removeConfig {
|
||||
utils.RemoveConfig()
|
||||
return
|
||||
}
|
||||
fmt.Println("No action specified. Use flags to specify an action, use -h for help.")
|
||||
},
|
||||
}
|
||||
|
||||
func init() {
|
||||
rootCmd.AddCommand(configCmd)
|
||||
configCmd.Flags().BoolP("print", "p", false, "Print the current configuration")
|
||||
configCmd.Flags().BoolP("edit", "e", false, "Edit the configuration file in your default editor")
|
||||
configCmd.Flags().BoolP("location", "l", false, "Print the location of the configuration file")
|
||||
configCmd.Flags().BoolP("remove", "r", false, "Remove the configuration file")
|
||||
}
|
||||
Reference in New Issue
Block a user