[+] add qrcode mode for pass ssh osx
This commit is contained in:
parent
a6cdf03523
commit
0a50c26d1d
@ -1392,6 +1392,12 @@ server {
|
|||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
|
class pass_ssh_osx_t:
|
||||||
|
class kwargs_t:
|
||||||
|
class Mode(enum.StrEnum):
|
||||||
|
clipboard = 'clipboard'
|
||||||
|
qrcode = 'qrcode'
|
||||||
|
|
||||||
def pass_ssh_osx(argv):
|
def pass_ssh_osx(argv):
|
||||||
assert isinstance(argv, list) and all([isinstance(o, str) for o in argv])
|
assert isinstance(argv, list) and all([isinstance(o, str) for o in argv])
|
||||||
parser = optparse.OptionParser()
|
parser = optparse.OptionParser()
|
||||||
@ -1415,6 +1421,17 @@ def pass_ssh_osx(argv):
|
|||||||
default=None,
|
default=None,
|
||||||
type=str,
|
type=str,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
parser.add_option(
|
||||||
|
'--mode',
|
||||||
|
dest='_mode',
|
||||||
|
choices=[
|
||||||
|
o.value
|
||||||
|
for o in pass_ssh_osx_t.kwargs_t.Mode
|
||||||
|
],
|
||||||
|
default=None,
|
||||||
|
help='a mode to retrieve the password',
|
||||||
|
)
|
||||||
parser.add_option(
|
parser.add_option(
|
||||||
'--debug',
|
'--debug',
|
||||||
dest='debug',
|
dest='debug',
|
||||||
@ -1424,6 +1441,11 @@ def pass_ssh_osx(argv):
|
|||||||
assert sys.platform in ['darwin', 'linux']
|
assert sys.platform in ['darwin', 'linux']
|
||||||
options, args = parser.parse_args(argv)
|
options, args = parser.parse_args(argv)
|
||||||
|
|
||||||
|
if options._mode is None:
|
||||||
|
options._mode = pass_ssh_osx_t.kwargs_t.Mode.clipboard.value
|
||||||
|
|
||||||
|
options.mode = pass_ssh_osx_t.kwargs_t.Mode(options._mode)
|
||||||
|
|
||||||
if options.clipboard_copy is None:
|
if options.clipboard_copy is None:
|
||||||
if sys.platform == 'linux':
|
if sys.platform == 'linux':
|
||||||
options.clipboard_copy = 'wl-copy'
|
options.clipboard_copy = 'wl-copy'
|
||||||
@ -1596,6 +1618,7 @@ def pass_ssh_osx(argv):
|
|||||||
assert not password is None
|
assert not password is None
|
||||||
|
|
||||||
|
|
||||||
|
if options.mode is pass_ssh_osx_t.kwargs_t.Mode.clipboard:
|
||||||
try:
|
try:
|
||||||
clipboard_set(password)
|
clipboard_set(password)
|
||||||
get_time = lambda : datetime.datetime.now().timestamp()
|
get_time = lambda : datetime.datetime.now().timestamp()
|
||||||
@ -1613,6 +1636,12 @@ def pass_ssh_osx(argv):
|
|||||||
|
|
||||||
clipboard_set('')
|
clipboard_set('')
|
||||||
print('\rcleared cliboard\n', end='')
|
print('\rcleared cliboard\n', end='')
|
||||||
|
elif options.mode is pass_ssh_osx_t.kwargs_t.Mode.qrcode:
|
||||||
|
assert subprocess.check_call(r'''
|
||||||
|
qrencode -t PNG -o - | feh -
|
||||||
|
''', stdin=password, shell=True) == 0
|
||||||
|
else:
|
||||||
|
raise NotImplementedError
|
||||||
|
|
||||||
def vpn(argv: list[str]) -> None:
|
def vpn(argv: list[str]) -> None:
|
||||||
python_path : list[str]
|
python_path : list[str]
|
||||||
|
Loading…
Reference in New Issue
Block a user