Kipróbáltam ezt a lehetőséget és nagyon tetszik. Így már bátrabban refaktorálom a fájlokat. Az viszont nem tetszik, hogy a commit-nak nem lehet elnevezést adni, ezért kiegészítettem egy paraméterrel a makrót, amit felhasznál az autocommit.sh. Így a Mainsail felületén, ha akarok, akkor (a default Autocommit helyett), adhatok egyedi elnevezést is:


Egyrészt a BACKUP_CFG makrót kell kiegészíteni, hogy kérjen be egy SUMMARY nevű paramétert és adja tovább a shell parancsnak:
[gcode_shell_command backup_cfg]
command: ~/printer_data/config/autocommit.sh
timeout: 30
verbose: True
[gcode_macro BACKUP_CFG]
description: Backs up config directory GitHub
gcode:
{% set summary = params.SUMMARY|default('Autocommit')|string %}
RUN_SHELL_COMMAND CMD=backup_cfg PARAMS="{summary}"
Másrészt az autocommit.sh-t, hogy a paraméterét tegye az m0 változóba, majd ezt írja a commit elejére:
push_config(){
cd $config_folder
git pull origin master
git add .
current_date=$(date +"%Y-%m-%d %T")
git commit -m "$m0 from $current_date" -m "$m1" -m "$m2" -m "$m3" -m "$m4"
git push origin master
}
m0="$*"
grab_version
push_config
(A futtatás joga elveszik ennek a fájlnak, ha Mainsail-ból szerkesztjük.)
A m0="$*" értékadásban a * azt jelenti, hogy az összes paramétert másolja egymás után szóközökkel összefűzve. Ez azért kell, mert ha használunk szóközt, akkor az itt több paraméternek számítana.
Egy ügyetlen dolog van még a szóközökkel, a Mainsail nem teszi idézőjelek közé a paramétert, így nekünk kell kirakni, ha több szóból áll a leírásunk.

Nincs semmi baj, ha mégis megfeledkeznénk erről, maga a makró sem fut le és a konzolon látszódik a hiba. De azért klassz lenne, ha valahogy rá lehetne venni az UI-t, hogy kezleje egy darab string paraméternek. Nincs valami ötletetek erre?
