On utilise cat si mdp caché
This commit is contained in:
parent
4db1d21fcc
commit
15f817e8e9
1 changed files with 26 additions and 17 deletions
|
@ -9,8 +9,13 @@ import tempfile
|
||||||
import os
|
import os
|
||||||
import atexit
|
import atexit
|
||||||
import argparse
|
import argparse
|
||||||
|
import re
|
||||||
import config
|
import config
|
||||||
|
|
||||||
|
## Password pattern in files:
|
||||||
|
PASS = re.compile('[\t ]*pass(?:word)?[\t ]*:[\t ]*(.*)\r?\n?$', \
|
||||||
|
flags=re.IGNORECASE)
|
||||||
|
|
||||||
######
|
######
|
||||||
## GPG Definitions
|
## GPG Definitions
|
||||||
|
|
||||||
|
@ -175,6 +180,8 @@ def put_password(name, roles, contents):
|
||||||
enc_pwd = encrypt(roles, contents)
|
enc_pwd = encrypt(roles, contents)
|
||||||
if NROLES != None:
|
if NROLES != None:
|
||||||
roles = NROLES
|
roles = NROLES
|
||||||
|
if VERB:
|
||||||
|
print "Pas de nouveaux rôles"
|
||||||
if enc_pwd <> None:
|
if enc_pwd <> None:
|
||||||
return put_file(name, roles, enc_pwd)
|
return put_file(name, roles, enc_pwd)
|
||||||
else:
|
else:
|
||||||
|
@ -201,7 +208,7 @@ def editor(texte):
|
||||||
return texte <> ntexte and ntexte or None
|
return texte <> ntexte and ntexte or None
|
||||||
|
|
||||||
def show_files():
|
def show_files():
|
||||||
proc = subprocess.Popen("less",stdin=subprocess.PIPE,shell=True)
|
proc = subprocess.Popen("cat",stdin=subprocess.PIPE,shell=True)
|
||||||
out = proc.stdin
|
out = proc.stdin
|
||||||
out.write("""Liste des fichiers disponibles\n""" )
|
out.write("""Liste des fichiers disponibles\n""" )
|
||||||
my_roles = get_my_roles()
|
my_roles = get_my_roles()
|
||||||
|
@ -248,28 +255,30 @@ def clipboard(texte):
|
||||||
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"
|
||||||
proc = subprocess.Popen("less",stdin=subprocess.PIPE,shell=True)
|
return
|
||||||
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()
|
||||||
if CLIPBOARD: # Ça ne va pas plaire à tout le monde
|
texte = sout.read()
|
||||||
texte = sout.read()
|
ntexte = ""
|
||||||
lines = texte.split('\n')
|
hidden = False # Est-ce que le mot de passe a été caché ?
|
||||||
for line in lines:
|
lines = texte.split('\n')
|
||||||
if line.startswith('pass:'):
|
for line in lines:
|
||||||
out.write(clipboard(line[5:].strip(' \t\r\n')) + '\n')
|
catchPass = PASS.match(line)
|
||||||
else:
|
if catchPass != None and CLIPBOARD:
|
||||||
out.write(line+'\n')
|
hidden=True
|
||||||
else: # Si pas de presse papier, on fait passer ça dans un less
|
line = clipboard(catchPass.group(1))
|
||||||
out.write(sout.read())
|
ntexte += line + '\n'
|
||||||
|
showbin = "cat" if hidden else "less"
|
||||||
|
proc = subprocess.Popen(showbin, stdin=subprocess.PIPE, shell=True)
|
||||||
|
out = proc.stdin
|
||||||
|
out.write("Fichier %s:\n\n" % fname)
|
||||||
|
out.write(ntexte)
|
||||||
out.write("-----\n")
|
out.write("-----\n")
|
||||||
out.write("Visible par: %s\n" % ','.join(value['roles']))
|
out.write("Visible par: %s\n" % ','.join(value['roles']))
|
||||||
|
|
||||||
out.close()
|
out.close()
|
||||||
os.waitpid(proc.pid,0)
|
os.waitpid(proc.pid, 0)
|
||||||
|
|
||||||
|
|
||||||
def edit_file(fname):
|
def edit_file(fname):
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue