Compare commits
4 Commits
0.0.2
...
1ca8a77324
Author | SHA1 | Date | |
---|---|---|---|
1ca8a77324 | |||
e34c42f412 | |||
d01858a6ad | |||
a09cf49a61 |
11
README.md
11
README.md
@ -1,6 +1,14 @@
|
||||
# Scaffold
|
||||
|
||||
Utilitaire de génération d'arborescence de fichiers à partir de projets "modèles" distants/locaux.
|
||||
## Description
|
||||
|
||||
`scaffold` est un outil permettant de générer une arborescence de fichiers à partir d'un modèle pré-existant.
|
||||
|
||||
Ce modèle peut être soit un répertoire local soit un dépôt Git distant.
|
||||
|
||||
De plus, `scaffold` intègre un mécanisme de templating permettant d'injecter des données dynamiques dans les fichiers à copier. Par défaut, tout fichier dont l'extension est `.gotpl` sera soumis à ce templating.
|
||||
|
||||
Un fichier "manifeste" (par défaut `scaffold.yml`) peut être créé afin de déclarer les variables à injecter. Ces variables seront demandées à l'utilisateur lors du lancement de la commande `scaffold from`.
|
||||
|
||||
## Installation
|
||||
|
||||
@ -52,6 +60,7 @@ OPTIONS:
|
||||
|
||||
## Documentation
|
||||
|
||||
- [Créer un modèle de projet](./doc/create_project_template.md)
|
||||
- [Format du fichier `scaffold.yml`](./doc/scaffold_file_format.md)
|
||||
|
||||
## Licence
|
||||
|
19
doc/create_project_template.md
Normal file
19
doc/create_project_template.md
Normal file
@ -0,0 +1,19 @@
|
||||
# Créer un nouveau modèle de projet
|
||||
|
||||
Un modèle de projet `scaffold` est un simple répertoire. Celui ci peut être versionné avec Git et utilisé de manière distante par la commande `scaffold from`.
|
||||
|
||||
## Fichiers gabarits ("templates")
|
||||
|
||||
Tout fichier dont l'extension est `.gotpl` se verra transformé avec la librairie [`text/template`](https://golang.org/pkg/text/template/) avant d'être copié.
|
||||
|
||||
L'extension `.gotpl` sera supprimée avant la copie (_par exemple, un fichier `index.html.gotpl` sera transformé puis copié en `index.html`_).
|
||||
|
||||
Les variables déclarées dans le fichier [`scaffold.yml`](./scaffold_file_format.md) seront accessibles à tous les fichiers gabarits.
|
||||
|
||||
Afin de faciliter l'écriture des gabarits, `scaffold` intègre la librairie d'extension [`github.com/Masterminds/sprig`](http://masterminds.github.io/sprig/).
|
||||
|
||||
## Déclaration de variables et contraintes de validation
|
||||
|
||||
Voir le format du fichier [`scaffold.yml`](./scaffold_file_format.md).
|
||||
|
||||
> TODO
|
@ -1,3 +0,0 @@
|
||||
# Créer un nouveau modèle de projet
|
||||
|
||||
Un modèle de projet `scaffold` est un simple répertoire (ou dépôt Git) contenant à sa racine un fichier `scaffold.yml`.
|
1
go.mod
1
go.mod
@ -7,7 +7,6 @@ require (
|
||||
github.com/Masterminds/semver v1.5.0 // indirect
|
||||
github.com/Masterminds/sprig v2.22.0+incompatible
|
||||
github.com/antonmedv/expr v1.4.5
|
||||
github.com/davecgh/go-spew v1.1.1
|
||||
github.com/google/uuid v1.1.1 // indirect
|
||||
github.com/huandu/xstrings v1.3.0 // indirect
|
||||
github.com/imdario/mergo v0.3.8 // indirect
|
||||
|
Reference in New Issue
Block a user