Commit 62629c57 authored by Daniel STAN's avatar Daniel STAN

Ajout d'un less pour bypasser les buffer

parent 081eab8c
...@@ -204,13 +204,18 @@ def editor(texte): ...@@ -204,13 +204,18 @@ def editor(texte):
return texte <> ntexte and ntexte or None return texte <> ntexte and ntexte or None
def show_files(): def show_files():
print """Liste des fichiers disponibles""" proc = subprocess.Popen("less",stdin=subprocess.PIPE,shell=True)
out = proc.stdin
out.write("""Liste des fichiers disponibles\n""" )
my_roles = get_my_roles() my_roles = get_my_roles()
for (fname,froles) in all_files().iteritems(): for (fname,froles) in all_files().iteritems():
access = set(my_roles).intersection(froles) != set([]) access = set(my_roles).intersection(froles) != set([])
print " %s %s (%s)" % ((access and '+' or '-'),fname,", ".join(froles)) out.write(" %s %s (%s)\n" % ((access and '+' or '-'),fname,", ".join(froles)))
print """--Mes roles: %s""" % \ out.write("""--Mes roles: %s\n""" % \
", ".join(my_roles) ", ".join(my_roles))
out.close()
os.waitpid(proc.pid,0)
def show_roles(): def show_roles():
print """Liste des roles disponibles""" print """Liste des roles disponibles"""
...@@ -223,32 +228,35 @@ def clipboard(texte): ...@@ -223,32 +228,35 @@ def clipboard(texte):
stdin=subprocess.PIPE,stdout=sys.stdout,stderr=sys.stderr) stdin=subprocess.PIPE,stdout=sys.stdout,stderr=sys.stderr)
proc.stdin.write(texte) proc.stdin.write(texte)
proc.stdin.close() proc.stdin.close()
print "[Le mot de passe a été mis dans le presse papier]" return "[Le mot de passe a été mis dans le presse papier]"
def show_file(fname): def show_file(fname):
value = get_file(fname) value = get_file(fname)
if value == False: if value == False:
print "Fichier introuvable"; return print "Fichier introuvable"; return
print "Fichier %s:" % fname proc = subprocess.Popen("less",stdin=subprocess.PIPE,shell=True)
out = proc.stdin
out.write("Fichier %s:\n\n" % fname)
(sin,sout) = gpg('decrypt') (sin,sout) = gpg('decrypt')
sin.write(value['contents']) sin.write(value['contents'])
sin.close() sin.close()
texte = sout.read()
if CLIPBOARD: # Ça ne va pas plaire à tout le monde if CLIPBOARD: # Ça ne va pas plaire à tout le monde
texte = sout.read()
lines = texte.split('\n') lines = texte.split('\n')
if len(lines) == 2: for line in lines:
clipboard(lines[0]) if line.startswith('pass:'):
else: out.write(clipboard(line[5:].strip(' \t\r\n')) + '\n')
for line in lines: else:
if line.startswith('pass:'): out.write(line+'\n')
clipboard(line[5:].strip(' \t\r\n')) else: # Si pas de presse papier, on fait passer ça dans un less
else: out.write(sout.read())
print line out.write("-----\n")
else: out.write("Visible par: %s\n" % ','.join(value['roles']))
print texte
print "-----" out.close()
print "Visible par: %s" % ','.join(value['roles']) os.waitpid(proc.pid,0)
def edit_file(fname): def edit_file(fname):
value = get_file(fname) value = get_file(fname)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment