--- tags: dsplus,howtos title : dpslus personalisation, plugins description: Quickstart dsplus --- # Automatisation et plugins [toc] Les raccourcis et l'intégration au designer permettent d'industrialiser et simplifier certaines parties du worflow. Mais pour l'instant il ne s'agit que aspects liés à DataStage, les opérations git restent à effectuer, il y a plusieurs manières pour cela: * Lignes de commandes git classiques * Clients git graphique Cela restant des opérations essentiellement manuelles, nous allons voir comment il est possible de les déclencher automatiquement avec les plugins dsplus. ## Plugins dsplus Comme pour les raccourcis, on définit les plugins dans le fichier de configuration. Ici on veut déclencher automatiquement tout ou une partie de l'enchainement suivant: ``` git status git add .../job git commit -m "commentaire" git push ``` Les plugins dsplus peuvent être de 2 types: * javascript * commandes arbitraires ### Déclaration Ce tutorial décrit la mise en place d'une commande arbitraire. Pour déclarer un plugin on doit définir: * son type: ici, bin * le programme/commande * les arguments: un tableau d'arguments qui seront passés à la commande. Ceux ci sont templatables. * l'evenement déclencheur du plugin: ici la fin de la commande get se traduire donc par "end:get" * le contexte dans lequel le plugin se déclenchera: ici lors de l'appel à la commande get, pour simplifier et éviter le déclenchment itempestif on choisi de lier la plugin au raccourcis créée précédemment en ajoutant une option au contexte. Pour le programme pour des raisons de facilité et portabilité on choisi de lancer la commande bash, les arguments sont le contenu du script qu'on souhaite lancer. La déclaration ci-dessous fera qu'après avoir lancé la commande (en ligne de commande ou via le designer): ``` dsplus git --job ... ``` L'enchainement suivant se faira automatiquement: * on se place dans le dépôt, * vérification du statut, * ajout des éléments du job * vérification du statut, * commit, avec comme commentaire la 1ère ligne de la description longue * attente (pour éviter la fermeture de la fenêtre si appel depuis le designer) ``` yaml plugins: autogit: type: bin program: bash args: [ '-c', 'cd "${options.target}" && git status "$(dirname "${file}")" && git add "$(dirname "${file}")" index.json && git status && git commit -m "dsplus: $(echo "${assetmetadata.longDescription}" | head -1)" && read ' ] event: "end:get" context: get: autogit: true shortcuts: git: get: ast: true metadata: true image: true export: true doc: true git: true output: true autogit: true ``` :::info Git permet également des raccourcis (alias), son extension (custom subcommands), ou de l'automatisation (git hooks). Ces fonctionalités peuvent être utilisées telles-quelles ou combinées avec dsplus. :::