Bash script per GIT

Oggi propongo un piccolo e semplice pezzo di codice da mettere in .bashrc per interagire con i repository GIT. Ogni volta che entro in uno dei miei repository GIT controllo lo stato e il branch sul quale sto lavorando, quindi ho pensato di creare un alias per il comando cd e ridefinirlo come segue:

unalias cd

gitcd() {
GIT_USER=$USER

if [[ "$1" == "" ]];
then
    cd ~
else
    cd "$*"
fi

if [[ -e "$PWD/.git" ]];
then
    REPO_USER=`cat $PWD/.git/config | grep $GIT_USER`
    if [[ "$REPO_USER" != "" ]];
    then
        echo
        echo ---------- GIT REPOSITORY ----------
        git status
        git branch
        echo
    fi
fi
}

alias cd=gitcd

Sentitevi liberi di modificare a piacere.

Annunci

dochroot: automate chroot environment

Esisteranno sicuramente altri modi per fare ciò che sto per descrivere, ma a me occorreva urgentemente perciò ho fatto prima a svilupparlo che a cercarlo.

La necessità di oggi era di creare qualcosa di automatico che potesse, dato un eseguibile, creare un ambiente chroot idoneo per farlo girare. Di solito faccio tutto a mano, copio eseguibile, risolvo dipendenze di librerie, monto i filesystem, ecc.

dochroot fa questo e altro in automatico.

$ dochroot

usage: dochroot options

This script setup chroot environment

OPTIONS:
   -h      		Show this message
   -c <chroot path>	Specify chroot environment path (default /tmp/chroot)
   -a <binary path>	Add executable to chroot environment (default /tmp/chroot)
   -d 			Delete chroot environment (default /tmp/chroot)
   -b			Bind filesystem (/sys, /proc, /dev) WARNING!! Only one bind per environment!

Ipotizziamo di voler avere una shell in chroot con ls e ifconfig, ecco come fare con dochroot:

$ dochroot -c /tmp/mychroot -a /bin/bash
Preparing environment...DONE
Copying files...DONE

La prima operazione di add inizializza anche la directory di chroot, quindi copia l’eseguibile di bash nel percorso opportuno.

$ dochroot -c /tmp/mychroot -a /bin/ls
Preparing environment...DONE
Copying files...DONE
$ dochroot -c /tmp/mychroot -a /sbin/ifconfig
Preparing environment...DONE
Copying files...DONE

Copia anche ls e ifconfig

$ dochroot -c /tmp/mychroot -b
Binding filesystems......DONE

L’operazione di bind richiederà permessi root (ottenuti tramite sudo).

Ora si è pronti per utilizzare l’ambiente appena creato:

$ sudo chroot /tmp/mychroot
bash-4.1# ls /dev
.....

Il progetto è reperibile su Gitorious: http://gitorious.org/dochroot/dochroot