diff --git a/README.md b/README.md index 3221dc9..3410f55 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Cuper +# Cuper (DRAFT) ## RIZ file header ```plain 32 bits @@ -63,3 +63,66 @@ > **NOTE**: * Si `HL` == `10d` (`000ah`, frame 0 to 9), alors il n'y à pas d'options. * Si `MDL` == `0d` (`0000h`), alors il n'y à pas de méta-données. + +## Cupfile +Le fichier **Cupfile** permet de **rassembler des informations** qui seront utilisés lors de la compilation. + +Voici la structure d'un Cupfile: +```plain ++--------------------> +| AUTOR = Maiuri Gaëtan +| User variables. DATE = 2017-09-22 +| DESCRIPTION = A simple Cuper container with a text reader. ++--------------------> +| X-ENV = ["VERBOSE=1", "LD_LIBRARY_PATH=$_CWD/python-linux-x86-64/"] +| Constantes. X-INCLUDES = ["python-linux-x86-64/", "main.py"] ++--------------------> ++--------------------> `0x0a 0x0a` ++--------------------> `exec` executable_file [arguments] +``` + +Voici un exemple de Cupfile, ce conteneur permet l'execution d'un script Python, en incluant toutes les dépendances: +```bash +AUTOR = Maiuri Gaëtan +DATE = 2017-09-22 +DESCRIPTION = A simple Cuper container with a text reader. +X-ENV = ["VERBOSE=1", "LD_LIBRARY_PATH=$_CWD/python-linux-x86-64/"] +X-INCLUDES = ["python-linux-x86-64/", "main.py"] + +# POSIX +exec ./python/python main.py -v -i myfile.txt +# Windows +#exec python\python.exe main.py -v -i myfile.txt +``` + +Le Cupfile doit se situer à la raçine de votre projet, exemple: +```plain +reader: + |-- .git/ + |-- test/ + |-- python-windows-x86-64/ + |-- exemple.dll + `-- python.exe + |-- python-linux-x86-64/ + |-- exemple.so + `-- python + |-- Cupfile + |-- main.py +``` + +## Constantes internes +Des constantes internes sont utilisable dans le Cupfile, afin de formater votre environnement d'execution dynamiquement. + +> **NOTE**: Ces constantes ne sont pas modifiable. + +| Non | Type | Description | Exemple | +|-----|:----:|-------------|---------| +| `$_CWD` | string | Le path du dossier courant post-extraction | `/path/to/riz/contents` | + +## Atributs d'extension +Les attributs d'extension permettent d'injecter des intructions à la compilation. + +| Non | Type | Description | Exemple | +|-----|:----:|-------------|---------| +| `X-ENV` | array | Inject des variable d'environnement dans le contexte d'execution | `["VERBOSE=1", "LD_LIBRARY_PATH=libs/"]` | +| `X-INCLUDES` | array | Inclure seulement ces fichiers/dossiers dans le contener | `["myfile", "mydir/"]` |