L'enfer, c'est les .bats
-
Execution de batches avec une syntaxe proche de celle d'Ansible
-
Fenêtre affichant les icônes correspondant aux batches
-
Extensibilité par plugins
-
Utilisé sous Windows, normalement compatible Linux
pip install git+https://github.com/Arubinu/jeanpaulstart.git
Un batch décrit au format YAML un environnement (à travers des variables), puis des actions à executer
Exemple basique :
---
name: Jean Bauchefort
icon_path: $ENVIRONMENT/_config/jeanpaulstart/icons/jean-bauchefort.png
tags:
- production
environment:
PYTHONPATH:
- C:\cube\python\Lib\site-packages
- R:\deploy\cube
tasks:
- name: Running application
raw:
command: python -m jeanbauchefortui
...
Pour un exemple plus complet, regarder example-batch.yml
- Il est possible d'appeler un batch en ligne de commande
python -m jeanpaulstart --filepath /path/to/a/batch.yml
- Il est possible d'executer un batch au format JSON sérialisé (peu commun)
L'utilisation du flag --not-normalized
est conseillée
python -m jeanpaulstart --not-normalized --json {"name": "3DS Max", ... }
Il existe une version PySide de Jean-Paul Start
Elle se base sur les dossiers contenant des batches, et un fichier de configuration associant les noms d'utilisateurs (obtenus avec getpass.getuser()
) aux tags présents dans les batches
Il suffit d'appeler le module jeanpaulstartui
python -m jeanpaulstartui --batches /path/to/a/batch/folder;/path/to/another/folder --tags /path/to/user-tags.yml
Le fichier user tags représente au format YAML l'association de nom d'utilisateurs à des tags
Exemple
---
production:
- jp.sartre
- p.deproges
graphist_base:
- y.montand
- j.hallyday
rigging:
- s.weaver
- j.rochefort
...
Ainsi, les batches portant les tags 'production' apparaitront pour l'utilisateur jp.sartre
- Il est possible de référencer un groupe dans un autre groupe en utilisant le caractère spécial
$
everyone:
- $production
- $graphist_base
- $rigging
- m.polnareff
...
Les commandes disponibles sont appelées tâches
L'execution de chaque tâche est décrite dans un module python du package jeanpaulstart.tasks
Ces modules sont listés au démarrage de Jean-Paul Start, s'ils répondent aux exigences du plugin-loader, deviennent disponible lors de l'execution des batches
Permet de copier un fichier
Si la destination existe, et force: no
, aucune action n'est effectuée
- name: Name of task
copy:
src: /path/to/source.ext
dest: /path/to/destination.ext
force: [yes|no]
Créé un fichier ou un dossier
- name: Name of task
file:
path: /path/to/file
state: [directory|file]
Permet d'excuter un batch
L'environnement courant est passé au batch appelé, les modifications faites à l'environnement par le batch appelé ne sont pas conservées dans les tâches suivantes
- name: Name
include_tasks:
file: path/to/batch/file.yml
Permet de modifier un fichier .ini
- name: Task Name
ini_file:
src: /path/to/ini/file.ini
state: [present|absent]
section: sectionName
option: optionName
value: valueValue
Execute la commande pip install
Le paramètre state
est facultatif, il vaut present
par défaut
- name: Task Name
pip:
name: PySide
state: [present|forcereinstall]
- name: Task Name
pip:
name: git+http://some/url.git
Execute une commande dans le terminal
Le paramètre async
execute la commande dans un processus enfant, sans interrompre l'execution (Popen()
) (facultatif)
Le paramètre open_terminal
ouvre un nouveau terminal (facultatif)
async
vaut True
par défaut, open_terminal
vaut False
par défaut
- name: Launch djv_view
raw:
command: "\"C:\\Program Files\\djv-1.1.0-Windows-64\\bin\\djv_view.exe\""
async:[yes|no]
open_terminal:[yes|no]
Copie un fichier template au format Jinja2, en parsant les variables d'environnement
- name: Task Name
template:
src: /path/to/source.ext.j2
dest: /path/to/dest.ext
force: [yes|no]
Ouvre l'url donnée, dans le navigateur par défaut
- name: Task Name
url: http://some.url/