mirror of
https://github.com/keanuplayz/dotfiles.git
synced 2024-08-15 02:33:12 +00:00
Compare commits
No commits in common. "fc5e5f1951377a895ed533e556eb9ff0dbdbc019" and "1cc52196dd402ff737d2811e144468d49cd59d75" have entirely different histories.
fc5e5f1951
...
1cc52196dd
1 changed files with 0 additions and 43 deletions
|
@ -1,43 +0,0 @@
|
||||||
#!/usr/bin/env python3
|
|
||||||
import argparse
|
|
||||||
from pathlib import Path
|
|
||||||
from typing import Union
|
|
||||||
import plyvel
|
|
||||||
import json
|
|
||||||
from sys import stdout
|
|
||||||
import base64
|
|
||||||
|
|
||||||
parser = argparse.ArgumentParser()
|
|
||||||
parser.add_argument(
|
|
||||||
"--encode",
|
|
||||||
"-e",
|
|
||||||
choices=["utf8", "base16", "base32", "base64", "base85"],
|
|
||||||
default="utf8",
|
|
||||||
)
|
|
||||||
parser.add_argument("db_path", type=Path)
|
|
||||||
cli_args = parser.parse_args()
|
|
||||||
|
|
||||||
|
|
||||||
def bytes_to_json(b: bytes) -> Union[str, list[int]]:
|
|
||||||
if cli_args.encode == "utf8":
|
|
||||||
try:
|
|
||||||
return b.decode("utf8")
|
|
||||||
except UnicodeDecodeError:
|
|
||||||
return list(b)
|
|
||||||
elif cli_args.encode == "base16":
|
|
||||||
return base64.b16encode(b).decode("ascii")
|
|
||||||
elif cli_args.encode == "base32":
|
|
||||||
return base64.b32encode(b).decode("ascii")
|
|
||||||
elif cli_args.encode == "base64":
|
|
||||||
return base64.b64encode(b).decode("ascii")
|
|
||||||
elif cli_args.encode == "base85":
|
|
||||||
return base64.b85encode(b).decode("ascii")
|
|
||||||
else:
|
|
||||||
assert False
|
|
||||||
|
|
||||||
|
|
||||||
db = plyvel.DB(str(cli_args.db_path), create_if_missing=False)
|
|
||||||
with db.iterator() as iterator:
|
|
||||||
for key, value in iterator:
|
|
||||||
json.dump({"key": bytes_to_json(key), "value": bytes_to_json(value)}, stdout)
|
|
||||||
stdout.write("\n")
|
|
Loading…
Add table
Add a link
Reference in a new issue