Skip to content
Ansible-like batch launcher
Branch: master
Clone or download
Pull request Compare This branch is 18 commits behind cube-creative:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
jeanpaulstart
jeanpaulstartui
tests
.frangidoc.yml
.gitignore
MANIFEST.in
README.md
example-batch.yml
jeanpaulstartui.jpg
requirements.txt
setup.py

README.md

Jean Paul Start

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

Installation

pip install git+https://github.com/cube-creative/jeanpaulstart.git

Batches

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

Ligne de commande

  • 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", ... }

Interface Graphique

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

Lancement

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

User Tags

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

Commandes disponibles

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

Copy

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]

File

Créé un fichier ou un dossier

- name: Name of task
  file:
    path: /path/to/file
    state: [directory|file]

Include Tasks

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

Ini File

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

Pip

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

Raw

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]

Template

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]

Url

Ouvre l'url donnée, dans le navigateur par défaut

- name: Task Name
  url: http://some.url/
You can’t perform that action at this time.