Documentation
¶
Overview ¶
Copyright © Harran Ali <harran.m@gmail.com>. All rights reserved. Use of this source code is governed by MIT-style license that can be found in the LICENSE file.
Index ¶
- Constants
- Variables
- func CopyFile(sourceFilePath string, destFolderPath string, newFileName string) error
- func Execute()
- type CmdNew
- func (cn *CmdNew) DownloadConfig(http *http.Client, url string, conf *Config) *Config
- func (cn *CmdNew) DownloadGoCondor(http *http.Client, url string, tempName string) string
- func (cn *CmdNew) GenerateTempName() string
- func (cn *CmdNew) IsUpdatedRequired(LatestReleasedVersion string) bool
- func (cn *CmdNew) Unpack(filePath string, destPath string)
- type Config
- type RepoMeta
Constants ¶
View Source
const CONFIG_URL string = "https://raw.githubusercontent.com/gocondor/gaffer/main/config.json"
Config file
View Source
const REPO_URL string = "https://api.github.com/repos/gocondor/gocondor/releases/latest"
Variables ¶
View Source
var GenerateEventCmd = &cobra.Command{ Use: "gen:event [event-name]", Short: "Create an event", Long: `Helps you generate a boilderplate code for events example: gaffer gen:event my-event-name --job EventJobName `, Args: cobra.ExactArgs(1), Run: func(cmd *cobra.Command, args []string) { pwd, err := os.Getwd() if err != nil { fmt.Println(err.Error()) os.Exit(1) } eventName := args[0] eventJobName, err := cmd.Flags().GetString("job") if err != nil { fmt.Println(err.Error()) os.Exit(1) } fPath := filepath.Join(pwd, "events/event-names.go") eventNamesFile, err := os.Open(fPath) if err != nil { fmt.Println(err.Error()) os.Exit(1) } eventNamesFileContent, err := io.ReadAll(eventNamesFile) eventNamesFile.Close() eventNamesFileContentStr := string(eventNamesFileContent) if err != nil { fmt.Println(err.Error()) os.Exit(1) } eventNamesFileContentStr = strings.TrimSuffix(eventNamesFileContentStr, "\n") eventNamesFileContentStr = eventNamesFileContentStr + "\n" + getEventNameStatement(prepareEventNameConst(eventName), eventName) os.WriteFile(fPath, []byte(eventNamesFileContentStr), 666) jfn := camelCaseToSnake(eventJobName, "-") + ".go" ffnp := filepath.Join(pwd, "events/eventjobs", jfn) jfs, err := os.Stat(ffnp) if err != nil && !os.IsNotExist(err) { fmt.Printf("problem creating the file: %v\n", ffnp) os.Exit(1) } if jfs != nil { fmt.Printf("file \"%v\" already exist\n", jfn) os.Exit(1) } jobFile, err := os.Create(ffnp) if err != err { fmt.Println(err.Error()) os.Exit(1) } jobFile.WriteString(prepareJobContent(eventJobName)) jobFile.Close() fmt.Println("event generated successfully") }, }
View Source
var GenerateEventJobCmd = &cobra.Command{ Use: "gen:eventjob [JobName]", Short: "Create an event job", Long: `Helps you generate a boilderplate code for event jobs example: gaffer gen:eventjob EventJobName `, Args: cobra.ExactArgs(1), Run: func(cmd *cobra.Command, args []string) { pwd, err := os.Getwd() if err != nil { fmt.Println(err.Error()) os.Exit(1) } eventJobName := args[0] if err != nil { fmt.Println(err.Error()) os.Exit(1) } jfn := camelCaseToSnake(eventJobName, "-") + ".go" ffnp := filepath.Join(pwd, "events/eventjobs", jfn) jfs, err := os.Stat(ffnp) if err != nil && !os.IsNotExist(err) { fmt.Printf("problem creating the file: %v\n", ffnp) os.Exit(1) } if jfs != nil { fmt.Printf("file \"%v\" already exist\n", jfn) os.Exit(1) } jobFile, err := os.Create(ffnp) if err != err { fmt.Println(err.Error()) os.Exit(1) } jobFile.WriteString(prepareJobContent(eventJobName)) jobFile.Close() fmt.Println("event job generated successfully") }, }
View Source
var GenerateHandlerCmd = &cobra.Command{ Use: "gen:handler [HandlerName]", Short: "Create a handler", Long: `Helps you generate a boilderplate code for handlers example: gaffer gen:handler ListUsers --file users.go `, Args: cobra.ExactArgs(1), Run: func(cmd *cobra.Command, args []string) { pwd, err := os.Getwd() if err != nil { fmt.Println(err.Error()) os.Exit(1) } handlerName := args[0] handlersFileName, err := cmd.Flags().GetString("file") if err != nil { fmt.Println(err.Error()) os.Exit(1) } handlersFileName = strings.ToLower(handlersFileName) var handlersFile *os.File handlersFilePath := filepath.Join(pwd, "handlers", handlersFileName) hfs, err := os.Stat(handlersFilePath) if err != nil && !os.IsNotExist(err) { fmt.Printf("problem reading the file: %v\n", handlersFilePath) os.Exit(1) } if hfs == nil { handlersFile, err = createHandlerFile(handlersFilePath) } else { handlersFile, err = os.OpenFile(handlersFilePath, os.O_RDWR|os.O_APPEND, 766) } if err != nil { fmt.Println(err.Error()) os.Exit(1) } handlersFile.WriteString(prepareHandlerContent(handlerName)) fmt.Println("handler generated successfully") }, }
View Source
var GenerateMiddlewareCmd = &cobra.Command{ Use: "gen:middleware [MiddlewareName]", Short: "Create a middleware", Long: `Helps you generate a boilderplate code for middlewares example: gaffer gen:middleware MyMiddleware `, Args: cobra.ExactArgs(1), Run: func(cmd *cobra.Command, args []string) { pwd, err := os.Getwd() if err != nil { fmt.Println(err.Error()) os.Exit(1) } middlewareName := args[0] if err != nil { fmt.Println(err.Error()) os.Exit(1) } mfn := camelCaseToSnake(middlewareName, "-") + ".go" mfnp := filepath.Join(pwd, "middlewares", mfn) jfs, err := os.Stat(mfnp) if err != nil && !os.IsNotExist(err) { fmt.Printf("problem creating the file: %v\n", mfnp) os.Exit(1) } if jfs != nil { fmt.Printf("file \"%v\" already exist\n", mfn) os.Exit(1) } mwFile, err := os.Create(mfnp) if err != err { fmt.Println(err.Error()) os.Exit(1) } mwFile.WriteString(prepareMiddlewareContent(middlewareName)) mwFile.Close() fmt.Println("middleware generated successfully") }, }
View Source
var GenerateModelCmd = &cobra.Command{ Use: "gen:model [ModelName]", Short: "Create a database model", Long: `Helps you generate a boilderplate code for database model example: gaffer gen:model User `, Args: cobra.ExactArgs(1), Run: func(cmd *cobra.Command, args []string) { pwd, err := os.Getwd() if err != nil { fmt.Println(err.Error()) os.Exit(1) } modelName := args[0] if err != nil { fmt.Println(err.Error()) os.Exit(1) } mfn := camelCaseToSnake(modelName, "-") + ".go" mfnp := filepath.Join(pwd, "models/", mfn) mfs, err := os.Stat(mfnp) if err != nil && !os.IsNotExist(err) { fmt.Printf("problem creating the file: %v\n", mfnp) os.Exit(1) } if mfs != nil { fmt.Printf("file \"%v\" already exist\n", mfn) os.Exit(1) } ModelFile, err := os.Create(mfnp) if err != err { fmt.Println(err.Error()) os.Exit(1) } tableName := camelCaseToSnake(modelName, "_") tableName = singleToPlural(tableName) ModelFile.WriteString(prepareModelContent(modelName, tableName)) ModelFile.Close() fmt.Println("model generated successfully") }, }
Functions ¶
Types ¶
type CmdNew ¶
type CmdNew struct{}
struct for creating new project command
func (*CmdNew) DownloadConfig ¶
Download config
func (*CmdNew) DownloadGoCondor ¶
Download gocondor archive
func (*CmdNew) IsUpdatedRequired ¶
Check for updates
Click to show internal directories.
Click to hide internal directories.