|
|
@ -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 <maiuri.gaetan@lessonsharing.fr> |
|
|
|
| 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 <maiuri.gaetan@lessonsharing.fr> |
|
|
|
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/"]` | |