registry

package
Version: v1.7.5 Latest Latest
Warning

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

Go to latest
Published: Apr 18, 2021 License: Apache-2.0 Imports: 2 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// CLIVersion version of Create Go App CLI.
	CLIVersion = "1.7.5"
	// RegexpAnsiblePattern pattern for Ansible roles.
	RegexpAnsiblePattern = "^(deploy)$"
	// RegexpBackendPattern pattern for backend.
	RegexpBackendPattern = "^(net/http|fiber)$"
	// RegexpFrontendPattern pattern for backend.
	RegexpFrontendPattern = "^(p?react:?|vue(:?[\\w]+)?(:?[\\w-_0-9\\/]+)?|angular|svelte|sapper:?)"
	// RegexpWebServerPattern pattern for web/proxy servers.
	RegexpWebServerPattern = "^(nginx)$"
)

Variables

View Source
var (
	// EmbedCGAPPConfig main config file for Create Go App.
	//go:embed configs/.cgapp.yml
	EmbedCGAPPConfig []byte

	// EmbedEditorConfig config for auto configuration IDE.
	//go:embed configs/.editorconfig
	EmbedEditorConfig []byte

	// EmbedGitAttributes config for git attributes.
	//go:embed configs/.gitattributes
	EmbedGitAttributes []byte

	// EmbedGitIgnore config for git ignore files.
	//go:embed configs/.gitignore
	EmbedGitIgnore []byte

	// EmbedMakefile file for rapid manipulation with a new app.
	//go:embed configs/Makefile
	EmbedMakefile []byte

	// EmbedDeployPlaybook Ansible playbook for deployment.
	//go:embed configs/deploy-playbook.yml
	EmbedDeployPlaybook []byte

	// Repositories collection.
	Repositories = map[string]*Repository{

		"backend": {
			List: map[string]string{
				"net/http": "github.com/create-go-app/net_http-go-template",
				"fiber":    "github.com/create-go-app/fiber-go-template",
			},
		},

		"webserver": {
			List: map[string]string{
				"nginx": "github.com/create-go-app/nginx-docker",
			},
		},
	}

	// Commands collection.
	Commands = map[string]*Command{
		"react": {
			Runner: "npx",
			Create: "create-react-app",
			Args: map[string]string{
				"template": "--template",
			},
		},
		"preact": {
			Runner: "preact",
			Create: "create",
			Args: map[string]string{
				"cwd":  "--cwd",
				"name": "--name",
			},
		},
		"vue": {
			Runner: "vue",
			Create: "create",
			Args:   map[string]string{},
		},
		"angular": {
			Runner: "ng",
			Create: "new",
			Args:   map[string]string{},
		},
		"svelte": {
			Runner: "npx",
			Create: "degit",
			Args: map[string]string{
				"template": "sveltejs/template",
			},
		},
		"sapper": {
			Runner: "npx",
			Create: "degit",
			Args: map[string]string{
				"template": "sveltejs/sapper-template",
			},
		},
	}

	// CreateQuestions survey's questions for `create` command.
	CreateQuestions = []*survey.Question{
		{
			Name: "backend",
			Prompt: &survey.Select{
				Message: "Choose a backend framework:",
				Options: []string{"net/http", "Fiber"},
				Default: "Fiber",
			},
			Validate: survey.Required,
		},
		{
			Name: "frontend",
			Prompt: &survey.Select{
				Message: "Choose a frontend UI library:",
				Options: []string{"none", "React", "Preact", "Vue", "Angular", "Svelte", "Sapper"},
				Default: "none",
			},
		},
		{
			Name: "webserver",
			Prompt: &survey.Select{
				Message: "Choose a web/proxy server:",
				Options: []string{"none", "Nginx"},
				Default: "none",
			},
		},
		{
			Name: "roles",
			Prompt: &survey.Confirm{
				Message: "Do you want to create Ansible playbook for deploy your project?",
				Default: true,
			},
		},
		{
			Name: "agree",
			Prompt: &survey.Confirm{
				Message: "If everything is okay, can I create this project? ;)",
				Default: true,
			},
		},
	}

	// DeployQuestions survey's questions for `deploy` command.
	DeployQuestions = []*survey.Question{
		{
			Name: "username",
			Prompt: &survey.Input{
				Message: "Enter username:",
				Default: "root",
			},
			Validate: survey.Required,
		},
		{
			Name: "become",
			Prompt: &survey.Confirm{
				Message: "Do you need to enter password for this username?",
				Default: true,
			},
		},
		{
			Name: "host",
			Prompt: &survey.Input{
				Message: "Enter host name to deploy:",
				Default: "localhost",
			},
			Validate: survey.Required,
		},
		{
			Name: "network",
			Prompt: &survey.Input{
				Message: "Enter name of Docker network:",
				Default: "cgapp_network",
			},
			Validate: survey.Required,
		},
		{
			Name: "port",
			Prompt: &survey.Input{
				Message: "Enter port of backend Docker container:",
				Default: "5000",
			},
			Validate: survey.Required,
		},
		{
			Name: "agree",
			Prompt: &survey.Confirm{
				Message: "If everything is okay, can I deploy this project? ;)",
				Default: true,
			},
		},
	}
)

Functions

This section is empty.

Types

type Command

type Command struct {
	Runner string
	Create string
	Args   map[string]string
}

Command struct for describe commands collection.

type CreateAnswers

type CreateAnswers struct {
	Backend             string
	Frontend            string
	Webserver           string
	InstallAnsibleRoles bool `survey:"roles"`
	AgreeCreation       bool `survey:"agree"`
}

CreateAnswers struct for a survey's answers for `create` command.

type DeployAnswers

type DeployAnswers struct {
	Username        string
	Host            string
	Network         string
	BackendPort     string
	AskBecomePass   bool `survey:"become"`
	AgreeDeployment bool `survey:"agree"`
}

DeployAnswers struct for a survey's answers for `deploy` command.

type Project

type Project struct {
	Type       string
	Name       string
	RootFolder string
}

Project struct for describe project.

type Repository

type Repository struct {
	List map[string]string
}

Repository struct for describe repositories collection.

Source Files

Jump to

Keyboard shortcuts

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