J'ai un référentiel Mercurial configuré sur un serveur Linux, et certains utilisateurs (mais pas tous) ont l'autorisation d'y accéder. Ils se connectent au référentiel via ssh.Configuration de Mercurial pour les membres d'un groupe unix
Ces utilisateurs sont membres d'un groupe unix. Ci-dessous, le script que j'utilise pour modifier un référentiel afin qu'il puisse recevoir des poussées de leur part.
Est-ce que cela peut être amélioré? Y a-t-il des opérations inutiles ici? Quelque chose de mauvais style pour un script bash
?
#!/bin/bash
if [[ $# -lt 2 ]]; then
echo Usage: $0 directory groupname
exit 1
fi
if ! chown -R :$2 $1; then
echo chown failure
exit 2
fi
if ! find $1/.hg -type d -exec chmod g+s {} \;; then
echo chmod failure
exit 3
fi
if ! find $1 -perm -u+r -exec chmod g+r {} \;; then
echo chmod failure 2
exit 4
fi
if ! find $1 -perm -u+w -exec chmod g+w {} \;; then
echo chmod failure 3
exit 5
fi
if ! find $1 -perm -u+x -exec chmod g+x {} \;; then
echo chmod failure 4
exit 6
fi
Les nouvelles découvertes de GNU (elles l'ont implémenté relativement tard, c'est dans POSIX depuis des lustres ...) connaissent "-exec .... {} +", qui engendrera le processus en utilisant autant d'arguments que possible dans l'environnement. , faisant effectivement ce que xargs ferait. – TheBonsai
Merci d'avoir signalé l'extension ACL. Une autre option que j'ai trouvée de vos liens était mercurial-server (http://mercurial.selenic.com/wiki/SharedSSH). Je pense que je vais m'en tenir à mon script pour le moment, avec John, TheBonsai, et vos changements. –