Fix broken -f option on single files instead of directories
This commit is contained in:
parent
f90ac943cf
commit
36c29627af
14
main.py
14
main.py
@ -1,8 +1,11 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
|
# pylint: disable=consider-using-with
|
||||||
|
# (this code contains some IO stream juggling)
|
||||||
from sys import stdin
|
from sys import stdin
|
||||||
from sys import exit as sysexit
|
from sys import exit as sysexit
|
||||||
from io import BytesIO
|
from io import BytesIO
|
||||||
from subprocess import Popen, PIPE
|
from subprocess import Popen, PIPE
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
import click
|
import click
|
||||||
from blake3 import blake3
|
from blake3 import blake3
|
||||||
@ -42,7 +45,7 @@ def get_input_stream(kwargs):
|
|||||||
if (text := kwargs["text"]) is not None:
|
if (text := kwargs["text"]) is not None:
|
||||||
stream = ClosableStream(BytesIO(text.encode()))
|
stream = ClosableStream(BytesIO(text.encode()))
|
||||||
elif file := kwargs["file"]:
|
elif file := kwargs["file"]:
|
||||||
stream = get_deterministic_tar_stream(file)
|
stream = get_deterministic_stream(file)
|
||||||
elif not stdin.isatty():
|
elif not stdin.isatty():
|
||||||
stream = ClosableStream(stdin.buffer)
|
stream = ClosableStream(stdin.buffer)
|
||||||
return stream
|
return stream
|
||||||
@ -57,8 +60,15 @@ class ClosableStream:
|
|||||||
return self._close_func()
|
return self._close_func()
|
||||||
|
|
||||||
|
|
||||||
|
def get_deterministic_stream(file):
|
||||||
|
if Path(file).is_dir():
|
||||||
|
return get_deterministic_tar_stream(file)
|
||||||
|
|
||||||
|
ifile = open(file, 'rb')
|
||||||
|
return ClosableStream(ifile, ifile.close)
|
||||||
|
|
||||||
|
|
||||||
def get_deterministic_tar_stream(file):
|
def get_deterministic_tar_stream(file):
|
||||||
# pylint: disable=consider-using-with
|
|
||||||
cmd = (
|
cmd = (
|
||||||
'tar',
|
'tar',
|
||||||
f'--blocking-factor={BUF_SIZE//512}',
|
f'--blocking-factor={BUF_SIZE//512}',
|
||||||
|
Loading…
Reference in New Issue
Block a user