Du libre, du code, des idées, du mélange d’ArraKISS…

De l’épice pour la pensée

Si vous avez installé votre OpenBSD depuis quelques temps, peut-être souhaitez-vous faire un peu de ménage.
Rien de tel que de supprimer les ports et paquets inutilisés, puis terminer avec les commandes suivantes pour retirer les dépendances inutiles et vérifier le système :

pkg_delete -a
pkg_check

Afin de détecter quels paquets ne me servent plus depuis longtemps et que j'ai peut-être oublié, j'utilise le script suivant

Il regarde la liste des paquets installés puis affiche ceux qui ont un exécutable qui n'a pas été utilisé depuis plus d'un mois. (changez la variable DAYS pour un autre délai).

Voici le script :

#!/bin/sh
# print unused packages that may be deleted

# It only check if last access time of binaries is older than a month by default.
# It doesn't check for libs, only bins

DAYS=15    # Number of days since last access
LAST=$(($(date +%s) - ($DAYS * 24 * 3600)))

echo "Those packages haven't been used in the last $DAYS days : "

for P in $(pkg_info | cut -d' ' -f1); do 
        BINS=$(pkg_info -L $P |grep '/usr/local/bin')
        for B in $BINS; do
                # check if $B is a link
                B=$(readlink -f $B)
                if [ $(stat -f %a $B) -lt $LAST ]; then
                        echo "$P  | $B"
                fi
        done
done

Décidément, que j'aime OpenBSD. La simplicité de ses outils permet de, très facilement, récupérer des informations sans prise de tête.

Suite à une discussion lue sur la liste de diffusion de suckless.org, j'ai été tenté de tester le shell mksh. Bien m'en a pris, il est étonnant de rapidité!

Ne vous attendez pas non plus à une révolution, un shell reste un shell ☺.
Cela dit, je le trouve nettement plus rapide. Plus rapide que bash, bien évidemment tellement ce dernier est plein, mais aussi plus rapide que zsh. Si comme moi vous n'utilisez pas le quart des possibilités de ce dernier shell, vous devriez tenter mksh.

Petite comparaison de la taille des binaires :

-rwxr-xr-x 1 root root 264904 mars  15  2015 /bin/mksh
-rwxr-xr-x 1 root root 722464 nov.  25  2014 /bin/zsh5
-rwxr-xr-x 1 root root 1029624 nov.  13  2014 /bin/bash

mksh est donc 74% plus petit que bash et 63% plus petit que zsh (oui, j'me la pète, je fais des maths ^^)

Pour changer de shell, tapez :

chsh

Puis entrez le bon chemin vers mksh, soit "/bin/mksh".

Je vous invite à légèrement configurer mksh en mettant dans le fichier ~/.mkshrc

# les alias et les fonctions fonctionnent comme avec les autres shell
alias ll='ls -l'
mkcd() { mkdir "$1" && cd "$1" }

HISTFILE=~/.mksh_hist
HISTSIZE=3000

PS1='$PWD # '; (( USER_ID )) && PS1=$(echo "\e[0;32m\$PWD\e[0;36m::\e[0;37m$ " ); 

Amusez-vous bien ;)

Insatisfait par rss2email qui prenait toute la charge cpu de mon serveur à chaque fois qu'il relevait les nouveautés dans les flux rss que je consulte, j'ai voulu tenter de bricoler un outil à ma sauce. C'est alors qu'est né srss.

L'idée était de suivre un maximum la philosophie UNIX. srss est donc composé de plusieurs petits scripts qui ont chacun une tâche spécifique.

  • srss_update : ce script télécharge les flux et ne garde que les plus récents.
  • srss2mail : ce script prend chaque nouveau flux et envoie un courriel pour pouvoir lire les articles de n'importe où.

Les adresses des flux sont simplement enregistrées dans un fichier (~/.srss/feedlist) avec une adresse par ligne. Très peu de dépendances sont nécessaires : xmlstarlet, wget et html2text.

On pourrait donc facilement imaginer d'autres scripts qui fabriquent une page html pour lire les flux ou n'importe quelle autre fantaisie.

Et afin de relever les nouveaux flux régulièrement, il suffit de passer par une tâche cron, qui s'occupe très bien ce ça.

Pour l'installer, il faut récupérer les scripts avec git par exemple :

git clone http://git.yeuxdelibad.net/srss

Et ensuite, un simple make install se chargera d'installer les scripts.
Notez qu'un script "exemple" est disponible (srss), qu'il vous suffit d'adapter à vos besoins.


Pour gérer les archives plus simplement, j'avais parlé d'un truc en python il y a peu.. L'idée était entre autre de pouvoir décompresser les archives rar librement.
Starsheep m'avait fait la judicieuse remarque qu'il serait plus pratique d'utiliser des options avec la ligne de commande pour l'utiliser dans thunar.

Depuis, j'y ai réfléchi, tout en pensant que l'ouverture d'un terminal à côté de chaque opération d'archivage/extraction était vraiment vilaine. Et finalement, je pense qu'il vaut mieux faire ce gestionnaire d'archives en shell, tout simplement. En plus, zenity est amplement suffisant pour ce genre de choses, au lieu de s'encombrer de pygtk et de gettext pour les traductions.

C'est donc chose faîte, carton est maintenant disponible sous forme de script shell.. Tout est expliqué dans l'en-tête du script pour l'utiliser avec thunar.

Voilà à quoi il ressemble :

Extraction d'archive : carton demande simplement où extraire l'archive, et affiche le retour du processus de décompression au fut et à mesure.



Création d'archive : Vous sélectionnez les documents à archiver, le type d'archive, où l'enregistrer, et voilà!




Utilisé sans options, carton propose de créer une achive en copiant des fichiers dans un dossier.



Voilà. Ça reste à améliorer, il faut tester, donc n'hésitez pas à faire part de vos idées et remarques.