4 Commits

Author SHA1 Message Date
1ca8a77324 Tidy deps 2020-05-23 12:27:55 +02:00
e34c42f412 Add 'Create template project' doc 2020-05-23 12:27:22 +02:00
d01858a6ad Mise à jour de 'README.md' 2020-05-23 12:14:58 +02:00
a09cf49a61 Merge tag '0.0.2' into develop
Basic interactive overwrite strategy
2020-05-23 12:03:44 +02:00
4 changed files with 29 additions and 5 deletions

View File

@ -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

View 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

View File

@ -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
View File

@ -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