Mode console

Siril peut fonctionner à la fois avec son interface graphique (GUI) et avec une interface en ligne de commande (CLI) qui ne nécessite même pas d'affichage. Il peut traiter des images pour d'autres programmes, sur des ordinateurs distants ou embarqués, en utilisant des scripts ou des opérations générées en temps réel appelées commandes. Les capacités de Siril en mode console correspondent en fait à celles des commandes disponibles. Il y en a plus d'une centaine, permettant de réaliser automatiquement des prétraitements, des traitements et des analyses photométriques.

Les commandes peuvent également être utilisées dans la version GUI de Siril, soit à partir de la ligne de commande intégrée en bas du panneau de contrôle, soit avec des scripts. Les scripts sont simplement des fichiers texte contenant une liste de commandes. Il est recommandé de lire la page scripts avant de continuer.

Avec la version sans interface graphique, les commandes peuvent être exécutées soit en passant un script à exécuter, soit en définissant l'entrée standard comme un script et en écrivant des commandes dedans, avec l'option de ligne de commande -s -, ou en utilisant des tubes nommés.

Voici un exemple de code bash appelant le mode console, qui construit le master-bias et renvoie son niveau de bruit sur la console, en rouge :

#!/bin/bash
# bash commands to prepare files

initdir=$(pwd)

######## Set your own variables #############
SCRIPTS_DIRECTORY=$initdir
SIRIL_PATH=siril-cli
#############################################

# Removing process folder if exists #
rm -rf $SCRIPTS_DIRECTORY/process

echo "Running siril bash script in $initdir"
output=$($SIRIL_PATH -d $SCRIPTS_DIRECTORY -s - <<ENDSIRIL

############################################
#
# Example of script that create a master-bias
# and print in red the noise of the image
#
############################################

requires 1.0.0

# Convert Bias Frames to .fit files
cd biases
convert bias -out=../process
cd ../process

# Stack Bias Frames to bias_stacked.fit
stack bias rej 3 3 -nonorm -out=master-bias
cd ../..

close
ENDSIRIL
)

log_line=$(echo "$output" | grep -o "log: Background noise value.*")
echo -e "\e[31m$log_line\e[0m"

echo done Siril part

Flux de commande (Pipe)

Ce mode a été introduit avec Siril 0.9.10. Les commandes peuvent être envoyées via un tube nommé et les journaux et l'état peuvent être obtenus via un autre. Le mode est activé en utilisant l'argument en ligne de commande -p.

Le protocole est assez simple : Siril reçoit des commandes et renvoie des mises à jour. Seules les commandes marquées comme scriptables peuvent être utilisées avec ce système. Chaque fois que le tube de commande d'entrées est fermé ou que la commande d'annulation est donnée, la commande en cours d'exécution est arrêtée comme si le bouton d'arrêt avait été cliqué dans l'interface graphique. Les tubes sont nommés siril_command.in et siril_command.out et sont disponibles dans /tmp sur les systèmes Unix.Depuis la version 1.2.0, les chemins des tubes peuvent être configurés avec les options -r et -w, ce qui permet à des programmes externes de les créer avant de démarrer Siril, généralement avec la commande mkfifo. Également nouveau dans la version 1.2.0, une commande ping renvoie simplement un état, indiquant si Siril est prêt à traiter une commande ou déjà occupé.

Les sorties de Siril sur le tube sont un flux d'une ligne de texte et sont formatées comme suit :

  • ready est affiché au démarrage, indiquant que Siril est prêt à traiter les commandes

  • log: suivi d'un message de journalisation

  • status: verb [subject], où le verbe peut être starting, success, error ou exit (le message de sortie n'est pas encore implémenté). Le sujet est le nom de la commande en cours, sauf pour sortie qui indique que Siril a subi une erreur fatale et doit quitter.

  • progress: valeur% est l'équivalent de la barre de progression, il envoie périodiquement des pourcentages, et parfois 0% à la fin d'un traitement en tant qu'information de veille.