DIRTY AND QUICK: C'est pas tout ça, mais où on mange ?
Hello les amis !
J’aime bien mes petites habitudes et j’ai horreur des débats triviaux qui durent mille ans, surtout quand j’ai faim !
Du coup, quand c’est l’heure de manger et qu’on met 30 minutes à choisir où aller, c’est long, et ça nous fait arriver tard au restau, donc on est servis tard.
Et moi, ça me rend chafoin. Plutôt que de bouder dans mon coin, j’ai commencé à organiser un peu le truc et à faire un message simple avec une liste de restaus avec des emojis.
Ça permet de résoudre le problème démocratiquement, en votant et en organisant efficacement le départ au restau.
Je maintiens la liste manuellement. Au fur et à mesure des demandes, la liste s’enrichit, mais très vite, méga flemme de copier-coller le message.
Mon idée, c’était d’en faire un webhook et de lancer ça dans un cron GitLab CI. C’était simple et participatif : tout le monde peut éditer le code et changer la liste.
Le truc se lance tout seul, du lundi au vendredi, et voilà.
Finalement, pas de runner GitLab dispo, la flemme d’en configurer un. Et puis en termes de flexibilité, c’est bof. Qu’est-ce qui se passe si j’ai pas envie de lancer le cron aujourd’hui ?
C’est les vacances, on va continuer à bombarder le chat ?
Du coup, vous ne l’avez pas demandé, mais tel un horloger suisse, j’ai ajouté des complications, mais qui répondent à mon besoin !
Fait pas le cron, t’as une femme et des enfants !
Mettre un cron qui se déclenche tous les jours ouvrés à 11h05, on fait comme ça.
|
|
11h05 les jours 1 à 5 (du lundi au vendredi).
Le | logger
permet de collecter les logs dans journalctl
proprement (les cronjobs, ça n’aime pas trop les écritures sur stdout/stderr).
Donc oui, ça pourrait s’arrêter là, mais qu’est-ce qui se passe si je ne veux pas déclencher le cron aujourd’hui ?
Je lance ça sur ma machine de dev, je pourrais activer/désactiver le cron au gré des besoins, mais est-ce que j’ai envie de traîner une charge mentale pour ça ? NON.
Alors j’ai eu une idée : et si je faisais un cronjob semi-automatique ? :)
Un cron semi-automatique, c’est comme un cron, mais avec une confirmation manuelle
Si je lance mon shell, je veux un message qui me demande si oui ou non je veux lancer mon cron aujourd’hui, et en fonction de la réponse, l’envoi du message est lancé ou non.
Par quel prodige, me direz-vous ?
La technique la plus naze et low-tech qui soit : un script au démarrage de mon shell, lancé dans mon .bashrc
, qui vérifie que le fichier existe.
Si mon fichier n’existe pas, on lance la question et on écrit la réponse dans un fichier ; si le fichier est présent, on skippe la question et le shell démarre normalement.
Maintenant c’est marrant, mais il reste un petit problème : comment je clean le fichier pour que le jour prochain j’aie quand même ma question.
|
|
Oui c’est dégueu, j’aurais pu variabiliser le chemin du fichier, mais nah.
Je pourrais faire un cron pour ça, mais y’a une complication
J’aurais pu faire un bête cron @reboot /bin/rm /opt/ratatouille/lancer_le_cron
, au reboot de ma machine, vire-moi le fichier de réponse.
Mais comme je suis sur une machine avec un home directory chiffré, le cron s’exécute et foire avant que la partition soit déchiffrée.
Donc j’ai essayé de changer le comportement du service cron, mais en cherchant, j’ai trouvé plus débile.
En fait, je veux que le fichier soit supprimé quand je lance ma session utilisateur graphique.
Alors j’ai fait une directive .desktop
qui supprime le fichier.
C’est parfait, ouvrir et fermer un shell, je le fais 20 fois par jour. Ouvrir la session utilisateur, une fois par jour, deux max :)
|
|
Le seul truc un peu con, c’est que si j’éteins mon PC dans la journée, je me retape le message à nouveau. Mais je peux vivre avec.
Un dernier truc, mais c’est pour jouer là
Il ne vous a pas échappé que je n’ai pas encore montré mon script d’envoi.
Maintenant que j’ai un webhook, j’ai décidé de randomiser un peu plus le message pour faire comme si c’était Rémy de Ratatouille qui avait la grosse dalle.
Alors j’ai fait une liste de messages que Rémy pourrait dire, en plus du message avec la liste des restaus, et ça donne un truc comme ça.
|
|
Mon fichier phrase
contient les phrases de Rémy (en réalité, y’en à bien plus que ça) :
|
|
Et voilà, c’est débile, overkill, et forcément indispensable !
Je pourrais faire un message avec un restaurant random chaque jour, mais par expérience, le choix est toujours contesté.