github.com/adharshmk96/stk@v1.2.3/pkg/project/name.go (about) 1 package project 2 3 import ( 4 "log" 5 "strings" 6 7 "github.com/adharshmk96/stk/pkg/commands" 8 "github.com/iancoleman/strcase" 9 "github.com/spf13/viper" 10 ) 11 12 // getAppNameFromPkgName transforms package name into an app name in lowerCamelCase. 13 func GetAppNameFromPkgName(s string) string { 14 name := s[strings.LastIndex(s, "/")+1:] 15 name = strings.ReplaceAll(name, "-", "_") 16 return strcase.ToLowerCamel(name) 17 } 18 19 // GetPackageName determines the package name by checking various sources in order of priority. 20 func GetPackageName(args []string) string { 21 if repoName, err := GitRepoName(); err == nil { 22 log.Println("using repository name as package name.") 23 return repoName 24 } 25 26 goCmd := commands.NewGoCmd() 27 packageName, err := goCmd.ModPackageName() 28 if err == nil { 29 log.Println("using go module name as package name.") 30 return packageName 31 } 32 33 if argName := getFirstArg(args); argName != "" { 34 log.Println("using argument as package name.") 35 return argName 36 } 37 38 if configName := viper.GetString("project.package"); configName != "" { 39 log.Println("using config project.package as package name.") 40 return configName 41 } 42 43 log.Println("using random name as package name.") 44 return RandomName() 45 }