fixing up templates more
This commit is contained in:
		@ -56,8 +56,8 @@ Init will not use an existing directory with contents.`,
 | 
				
			|||||||
				PkgName:      pkgName,
 | 
									PkgName:      pkgName,
 | 
				
			||||||
				Legal:        getLicense(),
 | 
									Legal:        getLicense(),
 | 
				
			||||||
				Copyright:    copyrightLine(),
 | 
									Copyright:    copyrightLine(),
 | 
				
			||||||
				// viper
 | 
									Viper:        viper.GetBool("useViper"),
 | 
				
			||||||
				// appname
 | 
									AppName:      path.Base(pkgName),
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			// create main.go
 | 
								// create main.go
 | 
				
			||||||
 | 
				
			|||||||
@ -14,6 +14,8 @@ type Project struct {
 | 
				
			|||||||
	Copyright    string
 | 
						Copyright    string
 | 
				
			||||||
	AbsolutePath string
 | 
						AbsolutePath string
 | 
				
			||||||
	Legal        License
 | 
						Legal        License
 | 
				
			||||||
 | 
						Viper        bool
 | 
				
			||||||
 | 
						AppName      string
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// v1
 | 
						// v1
 | 
				
			||||||
	absPath string
 | 
						absPath string
 | 
				
			||||||
 | 
				
			|||||||
@ -11,7 +11,7 @@ package main
 | 
				
			|||||||
import "{{ .PkgName }}/cmd"
 | 
					import "{{ .PkgName }}/cmd"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func main() {
 | 
					func main() {
 | 
				
			||||||
	cmd.Execute()
 | 
					  cmd.Execute()
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
`)
 | 
					`)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -25,12 +25,12 @@ func RootTemplate() []byte {
 | 
				
			|||||||
package cmd
 | 
					package cmd
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import (
 | 
					import (
 | 
				
			||||||
	"fmt"
 | 
					  "fmt"
 | 
				
			||||||
	"os"
 | 
					  "os"
 | 
				
			||||||
  "github.com/spf13/cobra"
 | 
					  "github.com/spf13/cobra"
 | 
				
			||||||
{{ if .Viper }}
 | 
					{{ if .Viper }}
 | 
				
			||||||
	homedir "github.com/mitchellh/go-homedir"
 | 
					  homedir "github.com/mitchellh/go-homedir"
 | 
				
			||||||
	"github.com/spf13/viper"
 | 
					  "github.com/spf13/viper"
 | 
				
			||||||
{{ end }}
 | 
					{{ end }}
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -40,71 +40,71 @@ var cfgFile string
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
// rootCmd represents the base command when called without any subcommands
 | 
					// rootCmd represents the base command when called without any subcommands
 | 
				
			||||||
var rootCmd = &cobra.Command{
 | 
					var rootCmd = &cobra.Command{
 | 
				
			||||||
	Use:   "{{ .AppName }}",
 | 
					  Use:   "{{ .AppName }}",
 | 
				
			||||||
	Short: "A brief description of your application",
 | 
					  Short: "A brief description of your application",
 | 
				
			||||||
	Long: ` + "`" + `A longer description that spans multiple lines and likely contains
 | 
					  Long: ` + "`" + `A longer description that spans multiple lines and likely contains
 | 
				
			||||||
examples and usage of using your application. For example:
 | 
					examples and usage of using your application. For example:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Cobra is a CLI library for Go that empowers applications.
 | 
					Cobra is a CLI library for Go that empowers applications.
 | 
				
			||||||
This application is a tool to generate the needed files
 | 
					This application is a tool to generate the needed files
 | 
				
			||||||
to quickly create a Cobra application.` + "`" + `,
 | 
					to quickly create a Cobra application.` + "`" + `,
 | 
				
			||||||
	// Uncomment the following line if your bare application
 | 
					  // Uncomment the following line if your bare application
 | 
				
			||||||
	// has an action associated with it:
 | 
					  // has an action associated with it:
 | 
				
			||||||
	//	Run: func(cmd *cobra.Command, args []string) { },
 | 
					  //	Run: func(cmd *cobra.Command, args []string) { },
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Execute adds all child commands to the root command and sets flags appropriately.
 | 
					// Execute adds all child commands to the root command and sets flags appropriately.
 | 
				
			||||||
// This is called by main.main(). It only needs to happen once to the rootCmd.
 | 
					// This is called by main.main(). It only needs to happen once to the rootCmd.
 | 
				
			||||||
func Execute() {
 | 
					func Execute() {
 | 
				
			||||||
	if err := rootCmd.Execute(); err != nil {
 | 
					  if err := rootCmd.Execute(); err != nil {
 | 
				
			||||||
		fmt.Println(err)
 | 
					    fmt.Println(err)
 | 
				
			||||||
		os.Exit(1)
 | 
					    os.Exit(1)
 | 
				
			||||||
	}
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func init() {
 | 
					func init() {
 | 
				
			||||||
{{- if .Viper }}
 | 
					{{- if .Viper }}
 | 
				
			||||||
	cobra.OnInitialize(initConfig)
 | 
					  cobra.OnInitialize(initConfig)
 | 
				
			||||||
{{ end }}
 | 
					{{ end }}
 | 
				
			||||||
	// Here you will define your flags and configuration settings.
 | 
					  // Here you will define your flags and configuration settings.
 | 
				
			||||||
	// Cobra supports persistent flags, which, if defined here,
 | 
					  // Cobra supports persistent flags, which, if defined here,
 | 
				
			||||||
	// will be global for your application.
 | 
					  // will be global for your application.
 | 
				
			||||||
{{ if .Viper }}
 | 
					{{ if .Viper }}
 | 
				
			||||||
	rootCmd.PersistentFlags().StringVar(&cfgFile, "config", "", "config file (default is $HOME/.{{ .AppName }}.yaml)")
 | 
					  rootCmd.PersistentFlags().StringVar(&cfgFile, "config", "", "config file (default is $HOME/.{{ .AppName }}.yaml)")
 | 
				
			||||||
{{ else }}
 | 
					{{ else }}
 | 
				
			||||||
	// rootCmd.PersistentFlags().StringVar(&cfgFile, "config", "", "config file (default is $HOME/.{{ .AppName }}.yaml)")
 | 
					  // rootCmd.PersistentFlags().StringVar(&cfgFile, "config", "", "config file (default is $HOME/.{{ .AppName }}.yaml)")
 | 
				
			||||||
{{ end }}
 | 
					{{ end }}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// Cobra also supports local flags, which will only run
 | 
					  // Cobra also supports local flags, which will only run
 | 
				
			||||||
	// when this action is called directly.
 | 
					  // when this action is called directly.
 | 
				
			||||||
	rootCmd.Flags().BoolP("toggle", "t", false, "Help message for toggle")
 | 
					  rootCmd.Flags().BoolP("toggle", "t", false, "Help message for toggle")
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
{{ if .Viper }}
 | 
					{{ if .Viper }}
 | 
				
			||||||
// initConfig reads in config file and ENV variables if set.
 | 
					// initConfig reads in config file and ENV variables if set.
 | 
				
			||||||
func initConfig() {
 | 
					func initConfig() {
 | 
				
			||||||
	if cfgFile != "" {
 | 
					  if cfgFile != "" {
 | 
				
			||||||
		// Use config file from the flag.
 | 
					    // Use config file from the flag.
 | 
				
			||||||
		viper.SetConfigFile(cfgFile)
 | 
					    viper.SetConfigFile(cfgFile)
 | 
				
			||||||
	} else {
 | 
					  } else {
 | 
				
			||||||
		// Find home directory.
 | 
					    // Find home directory.
 | 
				
			||||||
		home, err := homedir.Dir()
 | 
					    home, err := homedir.Dir()
 | 
				
			||||||
		if err != nil {
 | 
					    if err != nil {
 | 
				
			||||||
			fmt.Println(err)
 | 
					      fmt.Println(err)
 | 
				
			||||||
			os.Exit(1)
 | 
					      os.Exit(1)
 | 
				
			||||||
		}
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		// Search config in home directory with name ".{{ .appName }}" (without extension).
 | 
					    // Search config in home directory with name ".{{ .AppName }}" (without extension).
 | 
				
			||||||
		viper.AddConfigPath(home)
 | 
					    viper.AddConfigPath(home)
 | 
				
			||||||
		viper.SetConfigName(".{{ .appName }}")
 | 
					    viper.SetConfigName(".{{ .AppName }}")
 | 
				
			||||||
	}
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	viper.AutomaticEnv() // read in environment variables that match
 | 
					  viper.AutomaticEnv() // read in environment variables that match
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// If a config file is found, read it in.
 | 
					  // If a config file is found, read it in.
 | 
				
			||||||
	if err := viper.ReadInConfig(); err == nil {
 | 
					  if err := viper.ReadInConfig(); err == nil {
 | 
				
			||||||
		fmt.Println("Using config file:", viper.ConfigFileUsed())
 | 
					    fmt.Println("Using config file:", viper.ConfigFileUsed())
 | 
				
			||||||
	}
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
{{ end }}
 | 
					{{ end }}
 | 
				
			||||||
`)
 | 
					`)
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user