From felix at f-hauri.ch Wed Apr 2 11:01:01 2025 From: felix at f-hauri.ch (=?utf-8?B?RsOpbGl4?= Hauri) Date: Wed, 2 Apr 2025 11:01:01 +0200 Subject: [gull] Trucs et divers propos Message-ID: <Z-z8zQalND6jmZY8@medium.hauri> Salut ici! 1. NTFY Pour ceux qui ne connaissent pas encore, allez jetter un oeil sur https://ntfy.sh ## Oui, ".sh" Send push notifications to your phone via PUT/POST Push notifications made easy Un serveur webpush et une appli qui ouvre un websocket et reste à l'écoute... Simple et léger. J'en mets partout! Exempla asterisk: Sur mon serveur ntfy: root at ntfyServ# ntfy user add asterisk root at ntfyServ# ntfy token add asterisk root at ntfyServ# ntfy access asterisk mesnotif rw (je crois que juste `w` aurrait suffit). Sur mon PBX: root at asterisk# cat >/usr/share/asterisk/agi-bin/ntfy.sh <<eof #!/bin/bash ntfyUrl=https://ntfyServ.exemple.com ntfyTopic=mesnotif ntfyToken=tk_dux12ceci3st7otalement6idon34 IFS=\| read -r nom < <( printf -v req 'SELECT name FROM tel WHERE nr ~ \47%s\47;' "${1:2}" psql -h pgDbHost -U asterisk -Atc "$req" files ) printf -v msg '\U260e\Ufe0f Appel de %s\n %s\n %s' "$*" "$nom" curl -u ":$ntfyToken" -d "$msg" "$ntfyUrl/$ntfyTopic" >/dev/null 2>&1 <<<'' & exit 0 eof root at asterisk# grep ntfy /etc/asterisk/extensions.conf exten => _,1,AGI(ntfy.sh,${CALLERID(num)}) Du coup, je reçois la notif sur tous mes dispositifs connectés ( mon navigateur et mon téléphone mobile ) AVANT que mes téléphones ne sonnent... 2. bash, fzf, utf-8 Pour le reste, je m'amuse toujours beaucoup en bash... - Mon dossier /vrac est désormais trié par date descendant: https://f-hauri.ch/vrac le petit dernier ``colorPing.sh'' change la couleur de fond (bg) en rouge ou vert, fonction de la réponse au ping, et clair ou foncé en fonction de la couleur de fond initiale, du terminal. (Remet la couleur initial en quittant.) J'ai créé ce petit script en tâchant d'être léger et lisible. - En utf-8, j'ai découvert l'utilisation des "VARIATION SELECTOR", en particulier du "VARIATION SELECTOR-16" (Il y en a 256, la plupart semblent être des réserves, les autre concernent des alphabets non latins.) $ LANG=fr_CH.UTF8 printf '\U26A0 Warning\n\U26A0\UFE0F Warning + vs16\n' âš Warning âš ï¸ Warning + vs16 A noter que la différence n'est PAS visible dans (mon) xterm. Je dois utiliser mate-terminal ou gnome-terminal pour voir la différence. Cela dit: sur les navigateurs et téléphones mobiles, c'est utile pour les notifications. $ printf '%b vs %b\UFE0F\n' 0 0 1 1 2 2 6 6 9 9 '#' '#' '*' '*' \ '+' '+' 'A' 'A' 'a' 'a' '\U1F'5D{4,5}{,} Et donc mon petit UTF-8 browser utilisant fzf: https://f-hauri.ch/vrac/fzfShowU8var.sh - Afficher `df -i` et `df -h` cote à cote, avec une barre verticale, façon remplissage de citerne: https://f-hauri.ch/vrac/vbarFmt.sh Usage: $ [envvar=value] vbarFmt.sh [--full] <path> les variables d'environment: colSat, bgColSat: Saturation des couleurs avant/arrière plan colLevel, bgColLevel: Valeur des couleurs avant/arrière plan bwidth, bwidth2: largeur des barres block/inodes $ colSat=.9 bgColSat=.4 bwidth=4 ./vbarFmt.sh --full . $ colSat=.9 bgColSat=.91 bwidth=4 bash vbarFmt.sh . -- Félix Hauri - <felix at f-hauri.ch> - http://www.f-hauri.ch From felix at f-hauri.ch Wed Apr 2 11:31:11 2025 From: felix at f-hauri.ch (=?utf-8?B?RsOpbGl4?= Hauri) Date: Wed, 2 Apr 2025 11:31:11 +0200 Subject: [gull] Trucs et divers propos In-Reply-To: <Z-z8zQalND6jmZY8@medium.hauri> References: <Z-z8zQalND6jmZY8@medium.hauri> Message-ID: <Z-0D36IFUYUWVOi_@medium.hauri> Avoid SQL injection! $ sed -e '2{/^case/!i case ${1#+} in *[^0-9]*|\o47\o47) exit 1;;esac' \ -e\} -i.bak /usr/share/asterisk/agi-bin/ntfy.sh $ diff /usr/share/asterisk/agi-bin/ntfy.sh{.bak,} 1a2 > case ${1#+} in *[^0-9]*|'') exit 1;;esac Le Wed, Apr 02, 2025 at 11:01:01AM +0200, Félix Hauri via gull a écrit : > root at asterisk# cat >/usr/share/asterisk/agi-bin/ntfy.sh <<eof > #!/bin/bash > ntfyUrl=https://ntfyServ.exemple.com > ntfyTopic=mesnotif > ntfyToken=tk_dux12ceci3st7otalement6idon34 > IFS=\| read -r nom < <( > printf -v req 'SELECT name FROM tel WHERE nr ~ \47%s\47;' "${1:2}" > psql -h pgDbHost -U asterisk -Atc "$req" files ) > printf -v msg '\U260e\Ufe0f Appel de %s\n %s\n %s' "$*" "$nom" > curl -u ":$ntfyToken" -d "$msg" "$ntfyUrl/$ntfyTopic" >/dev/null 2>&1 <<<'' & > exit 0 > eof -- Félix Hauri - <felix at f-hauri.ch> - http://www.f-hauri.ch From felix at f-hauri.ch Wed Apr 2 23:03:20 2025 From: felix at f-hauri.ch (=?utf-8?B?RsOpbGl4?= Hauri) Date: Wed, 2 Apr 2025 23:03:20 +0200 Subject: [gull] Truc et astuces: la commande column Message-ID: <Z-2mGGmKHKs_gVyl@medium.hauri> Intéressant: Je ne connaissais pas cet usage de la commande: ``column'' $ s2p='s/[[:space:]]\+/|/;';printf -v fields '%*s' 7; /bin/ls -g | sed "1d;${fields// /$s2p}" | column --table --separator '|' --table-noheadings \ --table-columns perm,b,grup,siz,day,mnt,yot,name --table-wrap name ou $ s2p='s/[[:space:]]\+/|/;';printf -v fields '%*s' 5;LANG=C df -k | sed "${fields// /$s2p}" | column --table --separator '|' --table-noheadings \ --table-columns fs,tot,use,ava,pct,mpnt --table-wrap fs -- Félix Hauri - <felix at f-hauri.ch> - http://www.f-hauri.ch