Merge branch 'master' of /home/dstan/cranspasswords
This commit is contained in:
commit
07db63ebd4
2 changed files with 37 additions and 20 deletions
25
config.py
Executable file
25
config.py
Executable file
|
@ -0,0 +1,25 @@
|
||||||
|
#!/usr/bin/env python
|
||||||
|
# -*- encoding: utf-8 -*-
|
||||||
|
|
||||||
|
import os
|
||||||
|
|
||||||
|
servers = {
|
||||||
|
'perso': {
|
||||||
|
'server_cmd' : [ '/home/dstan/passwords/cranspasswords/cranspasswords-server.py'],
|
||||||
|
'user' : 'dstan' },
|
||||||
|
'debug': {
|
||||||
|
'server_cmd' : ['/usr/bin/ssh', 'localhost', \
|
||||||
|
'/home/dstan/crans/cranspasswords/cranspasswords-server.py'],
|
||||||
|
'user' : 'dstan' },
|
||||||
|
'debug2': {
|
||||||
|
'server_cmd':['/usr/bin/ssh', 'vo',\
|
||||||
|
'/home/dstan/cranspasswords/cranspasswords-server'],
|
||||||
|
'user' : 'dstan'},
|
||||||
|
'default': {
|
||||||
|
'server_cmd': ['/usr/bin/ssh', 'vert.adm.crans.org',\
|
||||||
|
'/root/cranspasswords/cranspasswords-server'],
|
||||||
|
'user' : os.getenv('USER') # À définir à la main pour les personnes
|
||||||
|
# n'ayant pas le même login sur leur pc
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -9,6 +9,7 @@ import tempfile
|
||||||
import os
|
import os
|
||||||
import atexit
|
import atexit
|
||||||
import argparse
|
import argparse
|
||||||
|
import config
|
||||||
|
|
||||||
######
|
######
|
||||||
## GPG Definitions
|
## GPG Definitions
|
||||||
|
@ -26,6 +27,7 @@ VERB = False
|
||||||
CLIPBOARD = False # Par défaut, place-t-on le mdp dans le presse-papier ?
|
CLIPBOARD = False # Par défaut, place-t-on le mdp dans le presse-papier ?
|
||||||
FORCED = False #Mode interactif qui demande confirmation
|
FORCED = False #Mode interactif qui demande confirmation
|
||||||
NROLES = None # Droits à définir sur le fichier en édition
|
NROLES = None # Droits à définir sur le fichier en édition
|
||||||
|
SERVER = None
|
||||||
|
|
||||||
def gpg(command, args = None):
|
def gpg(command, args = None):
|
||||||
"""Lance gpg pour la commande donnée avec les arguments
|
"""Lance gpg pour la commande donnée avec les arguments
|
||||||
|
@ -52,20 +54,11 @@ def gpg(command, args = None):
|
||||||
######
|
######
|
||||||
## Remote commands
|
## Remote commands
|
||||||
|
|
||||||
SERVER_CMD_DEBUG2 = ['/usr/bin/ssh', 'localhost', \
|
|
||||||
'/home/dstan/crans/cranspasswords/cranspasswords-server.py']
|
|
||||||
SERVER_CMD_DEBUG = ['/usr/bin/ssh', 'vo',\
|
|
||||||
'/home/dstan/cranspasswords/cranspasswords-server']
|
|
||||||
SERVER_CMD = ['/usr/bin/ssh', 'vert.adm.crans.org',\
|
|
||||||
'/root/cranspasswords/cranspasswords-server']
|
|
||||||
#USER = 'dstan'
|
|
||||||
USER = os.getenv('USER') # À définir à la main pour les personnes
|
|
||||||
# n'ayant pas le même login sur leur pc
|
|
||||||
|
|
||||||
def ssh(command, arg = None):
|
def ssh(command, arg = None):
|
||||||
"""Lance ssh avec les arguments donnés. Renvoie son entrée
|
"""Lance ssh avec les arguments donnés. Renvoie son entrée
|
||||||
standard et sa sortie standard."""
|
standard et sa sortie standard."""
|
||||||
full_command = list(SERVER_CMD)
|
full_command = list(SERVER['server_cmd'])
|
||||||
full_command.append(command)
|
full_command.append(command)
|
||||||
if arg:
|
if arg:
|
||||||
full_command.append(arg)
|
full_command.append(arg)
|
||||||
|
@ -113,7 +106,7 @@ def rm_file(filename):
|
||||||
def get_my_roles():
|
def get_my_roles():
|
||||||
"""Retoure la liste des rôles perso"""
|
"""Retoure la liste des rôles perso"""
|
||||||
allr = all_roles()
|
allr = all_roles()
|
||||||
return filter(lambda role: USER in allr[role],allr.keys())
|
return filter(lambda role: SERVER['user'] in allr[role],allr.keys())
|
||||||
|
|
||||||
######
|
######
|
||||||
## Local commands
|
## Local commands
|
||||||
|
@ -274,7 +267,7 @@ def edit_file(fname):
|
||||||
roles = get_my_roles()
|
roles = get_my_roles()
|
||||||
# Par défaut les roles d'un fichier sont ceux en écriture de son
|
# Par défaut les roles d'un fichier sont ceux en écriture de son
|
||||||
# créateur
|
# créateur
|
||||||
roles = [ r[:-2] for r in filter(lambda r: r.endswith('-w'),roles)]
|
roles = [ r[:-2] for r in roles if r.endswith('-w') ]
|
||||||
if roles == []:
|
if roles == []:
|
||||||
print "Vous ne possédez aucun rôle en écriture ! Abandon."
|
print "Vous ne possédez aucun rôle en écriture ! Abandon."
|
||||||
return
|
return
|
||||||
|
@ -323,7 +316,7 @@ def update_role(roles=None):
|
||||||
my_roles = get_my_roles()
|
my_roles = get_my_roles()
|
||||||
if roles == None:
|
if roles == None:
|
||||||
# On ne conserve que les rôles qui finissent par -w
|
# On ne conserve que les rôles qui finissent par -w
|
||||||
roles = [ r[:-2] for r in filter(lambda r: r.endswith('-w'),my_roles)]
|
roles = [ r[:-2] for r in my_roles if r.endswith('-w')]
|
||||||
if type(roles) != list:
|
if type(roles) != list:
|
||||||
roles = [roles]
|
roles = [roles]
|
||||||
|
|
||||||
|
@ -337,8 +330,8 @@ def update_role(roles=None):
|
||||||
def parse_roles(strroles):
|
def parse_roles(strroles):
|
||||||
if strroles == None: return None
|
if strroles == None: return None
|
||||||
roles = all_roles()
|
roles = all_roles()
|
||||||
my_roles = filter(lambda r: USER in roles[r],roles.keys())
|
my_roles = filter(lambda r: SERVER['user'] in roles[r],roles.keys())
|
||||||
my_roles_w = [ r[:-2] for r in filter(lambda r: r.endswith('-w'),my_roles) ]
|
my_roles_w = [ r[:-2] for r in my_roles if r.endswith('-w') ]
|
||||||
ret = set()
|
ret = set()
|
||||||
writable = False
|
writable = False
|
||||||
for role in strroles.split(','):
|
for role in strroles.split(','):
|
||||||
|
@ -359,8 +352,8 @@ def parse_roles(strroles):
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
parser = argparse.ArgumentParser(description="trousseau crans")
|
parser = argparse.ArgumentParser(description="trousseau crans")
|
||||||
parser.add_argument('--test',action='store_true',default=False,
|
parser.add_argument('--server',default='default',
|
||||||
help='Utilisation du serveur de test')
|
help='Utilisation d\'un serveur alternatif (test, etc)')
|
||||||
parser.add_argument('-v','--verbose',action='store_true',default=False,
|
parser.add_argument('-v','--verbose',action='store_true',default=False,
|
||||||
help="Mode verbeux")
|
help="Mode verbeux")
|
||||||
parser.add_argument('-c','--clipboard',action='store_true',default=False,
|
parser.add_argument('-c','--clipboard',action='store_true',default=False,
|
||||||
|
@ -401,13 +394,12 @@ if __name__ == "__main__":
|
||||||
help="Nom du fichier à afficher")
|
help="Nom du fichier à afficher")
|
||||||
|
|
||||||
parsed = parser.parse_args(sys.argv[1:])
|
parsed = parser.parse_args(sys.argv[1:])
|
||||||
DEBUG = parsed.test
|
|
||||||
if DEBUG:
|
|
||||||
SERVER_CMD = SERVER_CMD_DEBUG
|
|
||||||
VERB = parsed.verbose
|
VERB = parsed.verbose
|
||||||
|
DEBUG = VERB
|
||||||
CLIPBOARD = parsed.clipboard
|
CLIPBOARD = parsed.clipboard
|
||||||
FORCED = parsed.force
|
FORCED = parsed.force
|
||||||
NROLES = parse_roles(parsed.roles)
|
NROLES = parse_roles(parsed.roles)
|
||||||
|
SERVER = config.servers[parsed.server]
|
||||||
|
|
||||||
if NROLES != False:
|
if NROLES != False:
|
||||||
if parsed.action.func_code.co_argcount == 0:
|
if parsed.action.func_code.co_argcount == 0:
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue