cmd

package
v1.6.8 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 19, 2023 License: MIT Imports: 28 Imported by: 0

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

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

func CopyFile added in v1.6.5

func CopyFile(sourceFilePath string, destFolderPath string, newFileName string) error

func Execute

func Execute()

Types

type CmdNew

type CmdNew struct{}

struct for creating new project command

func (*CmdNew) DownloadConfig

func (cn *CmdNew) DownloadConfig(http *http.Client, url string, conf *Config) *Config

Download config

func (*CmdNew) DownloadGoCondor

func (cn *CmdNew) DownloadGoCondor(http *http.Client, url string, tempName string) string

Download gocondor archive

func (*CmdNew) GenerateTempName

func (cn *CmdNew) GenerateTempName() string

Generate random name

func (*CmdNew) IsUpdatedRequired

func (cn *CmdNew) IsUpdatedRequired(LatestReleasedVersion string) bool

Check for updates

func (*CmdNew) Unpack

func (cn *CmdNew) Unpack(filePath string, destPath string)

Unpack GoCondor

type Config

type Config struct {
	ReleaseUrl         string   `json:"releaseUrl"`
	CliReleasedVersion string   `json:"cliReleasedVersion"`
	Paths              []string `json:"paths"`
}

type RepoMeta

type RepoMeta struct {
	TagName    string `json:"tag_name"`
	TarBallUrl string `json:"tarball_url"`
}

func FetchRepoMeta

func FetchRepoMeta(url string) RepoMeta

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL