mirror of
https://github.com/paradoxxxzero/butterfly.git
synced 2025-01-03 08:58:32 +00:00
34 lines
955 B
Python
34 lines
955 B
Python
#!/usr/bin/env python
|
|
import argparse
|
|
import base64
|
|
import mimetypes
|
|
import os
|
|
import subprocess
|
|
import sys
|
|
|
|
from butterfly.escapes import image
|
|
|
|
parser = argparse.ArgumentParser(description='Butterfly cat wrapper.')
|
|
parser.add_argument('-o', action="store_true",
|
|
dest='original', help='Force original cat')
|
|
parser.add_argument(
|
|
'files', metavar='FILES', nargs='+',
|
|
help='Force original cat')
|
|
|
|
args, remaining = parser.parse_known_args()
|
|
if args.original:
|
|
os.execvp('/usr/bin/cat', remaining + args.files)
|
|
|
|
|
|
for file in args.files:
|
|
if (not os.path.exists(sys.argv[1])):
|
|
print('%s: No such file' % file)
|
|
else:
|
|
mime = mimetypes.guess_type(file)[0]
|
|
if mime and 'image' in mime:
|
|
with image(mime):
|
|
with open(file, 'rb') as f:
|
|
print(base64.b64encode(f.read()).decode('ascii'))
|
|
else:
|
|
subprocess.call(['cat'] + remaining + [file])
|