# Project Structure
- name: Empty Project Layout #mandatory
reference: https://go.dev/ #optional
url: https://github.com/denizgursoy/go-touch-projects.git # optional
branch: empty # branch name of git repository to be cloned
language: go # go, golang
delimiters: "<< >>" # optional to replace default templating values
dependencies: # optional
- github.com/labstack/echo/v4
files: # optional
- url: https://raw.githubusercontent.com/denizgursoy/go-touch-projects/main/Dockerfile
pathFromRoot: Dockerfile
- content: "foo"
pathFromRoot: bar.txt
values: # optional, cannot be changed by the user
BaseURL: /v1
customValues: # optional, can be changed by the user
Port: 8080
questions: #optional
- direction: Do you want Dockerfile? #mandatory
canSkip: true #if true, there must be at least one choice.
choices:
- choice: Yes
files:
- url: https://raw.githubusercontent.com/denizgursoy/go-touch-projects/main/Dockerfile
pathFromRoot: Dockerfile
values:
isDocker: true
name
: Name is displayed in project listing. It is a mandatory field.
reference
: Reference is appended to name while prompting project's name
url
: URL of template project. It can be a git repository https://github.com/bff-project/bff.git
or address of .tar.gz
file like https://github.com/denizgursoy/go-touch-projects/raw/main/compressed/empty.zip
. It
is a mandatory field.
branch
: Gotouch allows you clone custom branch other than main on git. This allows you to host
all template projects in one git repository. This value is taken into consideration only if url is a git repository URL.
language
: For Go project, it must be go
or golang
. For other languages, it can be omitted. Language is
appended to name while prompting project's name.
delimiters
: Delimiter is an optional string field. It is used to replace go template library's default delimiter {{
and }}
. New left and write delimiter should be seperated by space.
files
: Same as files field of choice. Allows you to create files when project structure is selected.
dependencies
: Same as dependencies field of choice. Allows you to add dependencies when project structure is selected.
It might be useful in some languages to get the latest version of a dependency.
values
: Values used to templating files' content or directories' name in the template project. This filed can have
any values. It can be omitted as well. User cannot change these values.
See values for more information.
customValues
: Same as values but these values are prompted to user for change
See values for more information.
questions
: List of questions to customize project in case that this project structure is selected.
See question for more information.