]> gitweb.pimeys.fr Git - scripts-20-100.git/commitdiff
Pour monter facilement les disques du FTP
authorVincent Le Gallic <legallic@crans.org>
Sun, 20 Oct 2013 22:30:26 +0000 (00:30 +0200)
committerVincent Le Gallic <legallic@crans.org>
Sun, 20 Oct 2013 22:30:26 +0000 (00:30 +0200)
mountdisk.py [new file with mode: 0755]
mountdisk_bash_completion [new file with mode: 0644]

diff --git a/mountdisk.py b/mountdisk.py
new file mode 100755 (executable)
index 0000000..1466545
--- /dev/null
@@ -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 (file)
index 0000000..8e51a85
--- /dev/null
@@ -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