From 7104fdbb0913abce6f3fa8208cb61084d76743bb Mon Sep 17 00:00:00 2001 From: Vincent Le Gallic Date: Mon, 21 Oct 2013 00:30:26 +0200 Subject: [PATCH] Pour monter facilement les disques du FTP --- mountdisk.py | 32 ++++++++++++++++++++++++++++++++ mountdisk_bash_completion | 26 ++++++++++++++++++++++++++ 2 files changed, 58 insertions(+) create mode 100755 mountdisk.py create mode 100644 mountdisk_bash_completion diff --git a/mountdisk.py b/mountdisk.py new file mode 100755 index 0000000..1466545 --- /dev/null +++ b/mountdisk.py @@ -0,0 +1,32 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +""" Pour monter le bon disque juste en précisant son nom + + Doît être exécuté en root. + + """ + +import subprocess +import sys + + +DISKS = ["Bêta", "Epsilon", "Delta", "Zêta"] + + +def mount(dev, name): + """Monte le disque ``dev`` à l'emplacement ``name``""" + proc = subprocess.Popen(["mount", dev, name], stdout=subprocess.PIPE, stderr=subprocess.PIPE) + out, err = proc.communicate() + if err: + raise RuntimeError(err) + print out + + +if __name__ == "__main__": + param = sys.argv[1] + if param == "-l": + for i in DISKS: + print i + sys.exit(0) + mount("/dev/disk/by-label/%s" % param, "/media/%s" % param) diff --git a/mountdisk_bash_completion b/mountdisk_bash_completion new file mode 100644 index 0000000..8e51a85 --- /dev/null +++ b/mountdisk_bash_completion @@ -0,0 +1,26 @@ +_mountdisk(){ + # declaration des variables locales + local argc first cur opts + + #COMPREPLY désigne la réponse à renvoyer pour la complétion actuelle + COMPREPLY=() + + # argc : vaut le nombre d'argument actuel sur la ligne de commande + argc=${COMP_CWORD}; + + # cur : désigne la chaine de caractère actuelle pour le dernier mot de la ligne de commande + first="${COMP_WORDS[1]}" + cur="${COMP_WORDS[argc]}" + opts="$(mountdisk -l)" + + # les options possibles pour notre auto-complétion + if [ $argc -eq 1 ]; then + # on auto-complete la ligne de commande en recherchant cur dans la liste opts. + #A noter que le -- est important ici pour éviter les "injections d'options" depuis $cur. + COMPREPLY=( $(compgen -W "$opts" -- $cur ) ) + return 0 + fi +} + +# On active l'auto-completion de la commande +complete -F _mountdisk mountdisk -- 2.39.2