Aller au contenu principal
Sujet: Présenter les répertoires de ~/my-documents en menu (Lu 681 fois) sujet précédent - sujet suivant
0 Membres et 1 Invitédans ce sujet

Présenter les répertoires de ~/my-documents en menu

Bonne nuit à toutes et à tous !

Voici un petit script commode (cf ci-dessous) qui permet de visualiser le contenu de son répertoire "my-documents" sous forme de menu. Requiert aemenu (cf ci-dessous), replaceit (cf ci-dessous), et un gestionnaire de fichiers quelconque. Des captures d'écran sont aussi jointes.

#!/bin/sh
# ~/my-documents/my-docs-rep.sh
#
# Objectif : créer un menu ae à jour pour faciliter
# l'accès aux dossiers cachés et visibles dans ~/my-documents. /

# Goal: create an up-to-date aemenu to ease access
# to the hidden and visible directories in ~/my-documents.
#
# Dépendances / Dependencies: aemenu, ROX-Filer (or any filer), replaceit
#
# S'intègre bien dans un menu aewm, [lxp-]icewm, pekwm ou wmx, ou à
# un menu jwm si on crée un fichier *.desktop pour le présent script.
# Peut aussi être lié à une icône signifiante sur le bureau. /

# Integrates well with an existing ae,  [lxp-]icewm, pekwm or wmx menu,
# or to a jwm menu if a *.desktop file is created for this script.
# Can also be tied to an easily identifiable icon on the desktop.
#
# (c) musher0, 11 juin 2013; révisé 14 juin 2013, 8 nov. 2013, 1er juin 2018. GPL3.
#    This program is free software: you can redistribute it and/or modify it under the
#    terms of the GNU General Public License as published by the Free Software Foundation,
#    either version 3 of the License, or  (at your option) any later version.
#        This program is distributed in the hope that it will be useful, but WITHOUT ANY
#    WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
#    A PARTICULAR PURPOSE. See the GNU General Public License for more details.
#        You should have received a copy of the GNU General Public License along with
#  this program. If not, see <http://www.gnu.org/licenses>.
#
#  Ce programme est libre : vous pouvez le redistribuer ou modifier selon les termes
#  de la Licence Publique Générale GNU publiée par la Free Software Foundation (v. 3
#  ou toute version ultérieure choisie par vous).
#      Ce programme est distribué dans l'espoir qu'il sera utile, mais SANS AUCUNE
#  GARANTIE, ni explicite ni implicite, y compris des garanties de commercialisation
#  ou d'adaptation à un but spécifique. Pour plus de détails, veuillez vous reporter
#  au texte officiel de cette licence à https://opensource.org/licenses/GPL-3.0, à
#  http://www.linux-france.org/article/these/gpl.html pour une traduction et, pour une
#  explication en français, à https://fr.wikipedia.org/wiki/Licence_publique_générale_GNU.
####
# set -xe # Pour déboguer.
rm -f /root/my-documents/precedent >/dev/null 2>&1
sleep 0.1s
function mydocsrep
{
cd ~/my-documents
ls -ad1 /root/my-documents/[0-4A-l]*/ | cut -d/ -f4 | sort > /tmp/my-docs1.lst
ls -ad1 /root/my-documents/[Mm]*/ | cut -d/ -f4 | sort > /tmp/my-docs2.lst
ls -d1 /root/my-documents/[5-9N-z]*/ | cut -d/ -f4 | sort > /tmp/my-docs3.lst
echo -e "cmd \"¤¤¤¤¤¤¤¤¤¤¤¤¤\" \"\"
cmd \"< ~~/my-docs\" \"rox /root/my-documents\"
cmd \"~~~~~~~~~\" \"\"" > /tmp/rep-my-docs

for n in {1..3};do
    echo "menu \"Sous-rep $n\"" >> /tmp/rep-my-docs
    echo "cmd \"~~~~~~~~\" \"/root/my-documents/my-docs-rep.sh\"" >> /tmp/rep-my-docs
    for i in `cat /tmp/my-docs$n.lst`;do
          echo "cmd \"$i\" \"rox /root/my-documents/'$i';/root/my-documents/my-docs-rep.sh\"" >> /tmp/rep-my-docs
          done
    echo end >> /tmp/rep-my-docs
done

replaceit --input=/tmp/rep-my-docs "Sous-rep 1" "Sous-rép., 0 - l"
replaceit --input=/tmp/rep-my-docs  "Sous-rep 2" "Sous-rép., M - m"
replaceit --input=/tmp/rep-my-docs  "Sous-rep 3"  "Sous-rép., N - z"
echo "cmd \"~~~~~~~~~\" \"\"
cmd \"< ~~ /root (~)\" \"rox ~\"
cmd \"¤¤¤¤¤¤¤¤¤¤¤¤\" \"\" " >> /tmp/rep-my-docs
# Pour pouvoir lancer le menu directement d'une console :
echo "aemenu -rc /tmp/rep-my-docs" > /root/my-documents/rep-my-docs.sh
chmod u+rwx /root/my-documents/rep-my-docs.sh
/root/my-documents/rep-my-docs.sh; }
# FR : Utiliser cette commande pour lancer d'une console
# ........ SEULEMENT SI vous êtes sûr(e) que la liste des dossiers
# ........ dans /root/my-documents n'a pas changé depuis le
# ........ dernier lancement !
# ........ En cas de doute, relancez le présent script ! /
# EN:  Use this command to launch from console ONLY IF
# ........ you are sure tyhat the directories list has not changed
# ........ since the last run.
# ........ If in doubt, re-run the present script!

cd ~/my-documents
a=0;[ ! -f precedent ] && a=1
b=0;[ ! -f my-docs-rep.sh ] && b=1
c=0;[ "`ls -g my-docs-rep.sh | cut -d' ' -f4`" != "`cat taille-my-docs-rep`" ] && c=1
d=0;[ "`du -c /root/my-documents | grep total | cut -d\t -f1`"  != "`cat precedent`" ] && d=1
e="`expr $a + $b + $c + $d`"
if [ "$e" -eq "0"  ];then # /root/my-applications/ae/
          aemenu -rc /tmp/rep-my-docs 2>/dev/null
else # we check recency
          du -c /root/my-documents | grep total | cut -d\t -f1 > precedent
          ls -g my-docs-rep.sh | cut -d' ' -f4 > taille-my-docs-rep
          mydocsrep
fi
rm -f /tmp/my-docs*.lst 2>/dev/null
# set +xe # Fin du débogage
### 30 ###
Prenez la peine de lire les commentaires dans le script ? Merci.

Y a quelque chose qui cloche, vous me le dites ci-dessous, s.v.p.

Merci et à+.



musher0
~~~~~~~~~
C'est parce qu'on n'ose pas que c'est difficile.
(D'après Sénèque)

 
Simple Audio Video Embedder