www

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

commit 4b2f7373a75d941219d48df260e34af674d77ceb
parent 9a2cc358d13ada1b559c80f63831b0e448af2d5f
Author: Georges Dupéron <jahvascriptmaniac+github@free.fr>
Date:   Sat, 31 Mar 2012 21:27:51 +0200

Recovered the pseudo-empty-dirs.sh script from commit 6cf1a0cc35868da994da1d3033ea78f83bd87a30 .

Diffstat:
Apseudo-empty-dirs.sh | 39+++++++++++++++++++++++++++++++++++++++
1 file changed, 39 insertions(+), 0 deletions(-)

diff --git a/pseudo-empty-dirs.sh b/pseudo-empty-dirs.sh @@ -0,0 +1,39 @@ +#!/bin/zsh + +# masque les dossiers qui ne contiennent que des fichiers dont le nom est +# .%fichier, récursivement (les dossiers sont masqués en préfixant ".%" à +# leur nom, donc les dossiers ne contenant que des fichiers / dossiers +# masqués le seront eux aussi. +# Un dossier n'est pas masqué ssi il contient au moins un fichier +# (regular file) ou dossier non masqué. + +setopt dotglob + +dohide() { + local x pseudo_empty subdirs si + echo "[$1] $PWD" + cd "./$1" + pseudo_empty="1" + si=1 + subdirs=() + for x in *(N/); do + if [ "${x[0,2]}" != ".%" ]; then + subdirs[si]="$x" + si=$(($si+1)) + fi + done + while [ $si -gt 1 ]; do + si=$(($si-1)) + dohide "${subdirs[si]}" + done + for x in *(/,.NoN); do # N = pas d'erreur quand vide, oN = order none, / = dossiers, . = fichiers + if [ "${x[0,2]}" != ".%" ]; then + pseudo_empty="0" + break; + fi + done + cd .. + [ "$pseudo_empty" = "1" ] && [ "${1[0,2]}" != ".%" ] && mv -i -- "$1" ".%$1" +} + +dohide .