1
Fork 0
dotfiles/.local/bin/codium-extensions

63 lines
1.8 KiB
Python
Executable File

#!/usr/bin/env python3
import argparse
import pathlib
import subprocess
import typing
def main() -> None:
parser = argparse.ArgumentParser(description="Small Tauon remote control CLI")
parser.add_argument(
"action",
choices=["install", "list", "list-saved", "save"],
help="Which action should be performed.",
)
parser.add_argument(
"-f",
"--file",
help="Use a different file than $HOME/.config/codium-extensions.txt.",
default=pathlib.Path.home().joinpath(".config/codium-extensions.txt"),
)
args = parser.parse_args()
if args.action == "install":
print("Installing saved extensions")
for extension in get_saved_extensions(args.file):
subprocess.run(["codium", "--install-extension", extension])
elif args.action == "list":
print("Listing installed extensions")
print("\n".join(get_installed_extensions()))
elif args.action == "list-saved":
with open(args.file, "r") as file:
print("Listing saved extensions")
print(file.read())
elif args.action == "save":
with open(args.file, "w") as file:
extensions = get_installed_extensions()
file.writelines("\n".join(extensions))
file.write("\n")
print(f"Wrote {len(extensions)} extensions to {args.file}")
def get_installed_extensions() -> typing.List[str]:
extensions = subprocess.run(
[
"codium",
"--list-extensions",
],
capture_output=True,
check=True,
encoding="utf8",
)
return extensions.stdout.splitlines()
def get_saved_extensions(path: str) -> typing.List[str]:
with open(path, "r") as file:
return file.read().splitlines()
if __name__ == "__main__":
main()