diff --git a/README.md b/README.md index 1b9a63c..1d2bbec 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Tamarin -Usine à paquet basée sur Docker. +Usine à paquets basée sur Docker. ## Dépendances @@ -17,6 +17,45 @@ Vous devez avoir [docker](https://docs.docker.com/installation/) installé sur v ./package-project.sh ./src-example ./dist "debian:jessie" ``` +## Le fichier manifeste `tamarin.json` + +La construction des fichiers de métadonnées nécessaires à la construction du paquet peut être semi-automatisé via l'ajout d'un fichier manifeste `tamarin.json` à la racine du projet. + +Tamarin se basera sur les informations présentes dans ce fichier pour générer les fichiers requis. + +Ce fichier à la structure suivante: + +```js +{ + "name": "hello-world", // Nom du projet + "version": "0.0.0", // Version + "dependencies": { // Dépendances du projet suivant la distribution cible + "debian:jessie": [ + "apache2 (>= 2.4)", + "php5 (>= 5.4)" + ] + }, + "hooks": { // Hooks liés au cycle de vie du paquet + "preBuild": "./scripts/pre-build.sh", + "postBuild": "./scripts/post-build.sh", + "preInstall": "", + "preRemove": "", + "postInstall": "", + "postRemove": "" + } +} +``` +### Les hooks + +|Hook|Contexte|Description| +|-|-|-| +|preBuild|Exécuté dans le conteneur de construction du paquet|TODO| +|postBuild|Exécuté dans le conteneur de construction du paquet|TODO| +|preInstall|Exécuté juste avant l'installation du paquet|TODO| +|postInstall|Exécuté juste après l'installation du paquet|TODO| +|preRemove|Exécuté juste avant la suppression du paquet|TODO| +|postRemove|Exécuté juste après la suppression du paquet|TODO| + ## Licence GPLv3 diff --git a/lib/build.sh b/lib/build.sh index a5d295e..c8a327a 100755 --- a/lib/build.sh +++ b/lib/build.sh @@ -49,7 +49,7 @@ function exec_hook { } -function create_control_file { +function create_debian_metadata { build_dir="${1}" mkdir -p "${build_dir}/DEBIAN" @@ -96,7 +96,14 @@ function build_project { debug "Build dir: ${build_dir}" - create_control_file "${build_dir}" + # We don't generate Debian metadata files if a debian directory is present + if [ ! -d "${SRC_DIR}/DEBIAN" ] && [ ! -d "${SRC_DIR}/debian" ]; then + info "No Debian directory detected in sources." + info "Generating Debian metadata files from manifest..." + create_debian_metadata "${build_dir}" + else + info "A Debian directory is already present in sources." + fi exec_hook "preBuild" "${build_dir}"