/dev/blah

things i want to remember, things i want to share

Développeur Python et adepte Linux depuis 2005, passionné par beaucoup trop de choses. Profil Github

Entries tagged “script”

multi.py

written by tshirtman, on 4/11/11 6:02 PM.

Juste un petit script réalisé aujourd’hui pour une demande, permet d’executer une commande dans tous les sous dossiers d’un dossier…

#!/usr/bin/env python
import sys
import os
import commands

def usage():
    print "usage:"
    print sys.argv[0], "command"
    print """
    will execute the command in every direct subdirectory of the current
    directory, and print the result
    """

def main(command):
    for i in os.listdir('.'):
        if os.path.isdir(i):
            os.chdir(i)
            print commands.getoutput(' '.join(command))
            os.chdir('..')

if __name__ == '__main__':
    if len(sys.argv) < 2 or sys.argv[1] in ('-h', '--help'):
        usage()
    else:
        main(sys.argv[1:])

Ça peut servir, j’avais un alias zsh pour faire ça, mais y’a toujours des cas un peu foireux, sh c’est un peu juste pour ce genre de choses, donc bon, autant sortir python et faire un truc propre. Et puis bon, ça peut servir d’exemple d’utilisation de commands, et des fonctions d’os.

Tip me if you like this :)

une solution pour network manager sous wmii.

written by tshirtman, on 3/15/10 12:22 AM.

Je suis utilisateur de wmii, principalement sur mon eeepc, mais aussi sur mes posts fixes quand l’envie m’en prends, je trouve au tiling mode pas mal d’avantage au niveau productivité, et que wmii implémente bien l’idée. Hélas certaines choses sont problématiques, par exemple, la gestion du réseau avec network-manager pose problème, sachant que je me déplace beaucoup avec mon eeepc, et que j’utilise pas mal là 3G en interne, que nm gère très bien, il me fallait une gestion simple d’icelui (ouais ouais c’est un vrai mot, on voit ceux qu’on pas ouvert de vieux bouquins :P). Bref, ma solution actuelle, qui permet d’avoir accès à au tray, et donc à nm-applet, depuis tous les tags (équivalent des bureaux virtuels, est mise en place comme ceci…

1/ lancement de stalonetray et nm-applet en début de session:
dans .wmii/wmiirc, vers la fin: stalonetray& nm-applet& 2/ création d’un script stalemover dans $HOME/bin

#!/usr/bin/env sh
for i in $(wmiir ls /client/)
do
    if [ $(wmiir read /client/$i/props|cut -d':' -f1) = 'stalonetray' ]
    then
        echo $1 | wmiir write /client/$i/tags
    fi
done
# pour repasser en mode normal, (sinon focus sur stalonetray, donc mode flottant)
wmiir xwrite /tag/sel/ctl select toggle
chmod +x $HOME/bin/stalonemover
3/ utilisation du script (différence sous forme de patch, vous pouvez le comprendre comme des humain, ou le donner à manger à la commande patch, et lui dire que c’est bien .wmii-3.5/wmiirc que vous voulez modifier).
--- /etc/X11/wmii-3.5/wmiirc	2009-01-15 23:25:18.000000000 +0100
+++ .wmii-3.5/wmiirc	2010-03-15 00:12:23.717918353 +0100
@@ -152,7 +152,7 @@
 	for i in 0 1 2 3 4 5 6 7 8 9; do
 		cat <<!
 	Key $MODKEY-$i
-		wmiir xwrite /ctl view "$i"
+		wmiir xwrite /ctl view "$i" && bin/stalemover "$i"
 	Key $MODKEY-Shift-$i
 		wmiir xwrite /client/sel/tags "$i"
 !
voila, pas parfait, mais mieux que rien… pour les puristes qui refusent l’utilisation de la souris, j’ai deux trois petits alias avec cnetworkmanager, mais je m’en sert pas trop en fait…
alias cn="cnetworkmanager"
alias woff='cn -w false' # couper le wifi
alias won='cn -w true' #...
alias sfr='cn --activate-connection=,SFR,ttyUSB0 # 3G
# pour observer simplement ce qu'il y a comme réseaux dispos...
alias wi='watch '\''sudo iwlist wlan0 scan |grep -e "(ESSID|Qual|Enc)"'\'''

voila… stou pour l’instant, si vous avez mieux, n’hésitez pas à proposer ;).

Mise à jours: Il existe une solution beaucoup plus simple que j’ai découvert en passant à wmii 3.9, j’utilise maintenant trayer (avec “–width 2″ et “–edge top” pour le placer “–height 12″ pour régler sa hauteur.) et je lui attribue le tag +/^/ qui permet de l’afficher sur toutes les vues. pour ce faire j’ai ajouté une règle dans .wmii/wmiirc en dessous de celle pour MPlayer (voir la ligne avec “trayer|panel” ci dessous).

# Tagging Rules
wmiir write /tagrules < ~
/trayer|panel/ -> +/^/
!
Ça roule et c’est bien plus léger, de lus trayer est bien mieux controlable au clavier, il suffit de passer en mode flottant pour lui donner le focus et de déplacer le focus sur une ou l’autre applet avec les flèches du clavier, la touche entrée permettant de valider.

Tip me if you like this :)