improved extension_installer.py and renamed it to extension_manager.py

This commit is contained in:
Richie Cahill 2024-07-05 16:14:22 -04:00
parent b9fffd3c96
commit 107a9387bd
2 changed files with 30 additions and 6 deletions

View File

@ -49,6 +49,7 @@
"davidanson",
"dbus",
"dearrow",
"debugpy",
"devicemap",
"dialout",
"direnv",
@ -127,6 +128,7 @@
"mousewheel",
"mpris",
"msbc",
"mtxr",
"ncdu",
"nemo",
"neofetch",
@ -210,6 +212,7 @@
"sonarr",
"sponsorblock",
"spotifyd",
"sqltools",
"sshconfig",
"subresource",
"substituters",

View File

@ -1,26 +1,34 @@
from subprocess import run
def get_installed_extensions():
process = run("code --list-extensions".split(), check=True, capture_output=True)
return set(process.stdout.decode("utf-8").strip().split("\n"))
def main():
extensions = (
print("starting vscode extension manager")
extensions = {
# vscode
"ms-azuretools.vscode-docker",
"ms-vscode-remote.remote-containers",
"ms-vscode-remote.remote-ssh-edit",
"ms-vscode-remote.remote-ssh",
"ms-vscode.hexeditor",
"ms-vscode.remote-explorer",
"ms-vsliveshare.vsliveshare",
"oderwat.indent-rainbow",
"streetsidesoftware.code-spell-checker",
"supermaven.supermaven",
"usernamehw.errorlens",
# git
"codezombiech.gitignore",
"eamodio.gitlens",
"GitHub.vscode-github-actions",
"gitHub.vscode-github-actions",
# python
"charliermarsh.ruff",
"ms-python.python",
"ms-python.vscode-pylance",
"ms-python.debugpy",
# rust
"rust-lang.rust-analyzer",
# MD
@ -34,14 +42,27 @@ def main():
"foxundermoon.shell-format",
# nix
"jnoortheen.nix-ide",
# database
"mtxr.sqltools-driver-pg",
"mtxr.sqltools",
# other
"esbenp.prettier-vscode",
"mechatroner.rainbow-csv",
)
"streetsidesoftware.code-spell-checker",
"supermaven.supermaven",
}
for extension in extensions:
installed_extensions = get_installed_extensions()
missing_extensions = extensions.difference(installed_extensions)
for extension in missing_extensions:
run(f"code --install-extension {extension} --force".split(), check=True)
if extra_extensions := installed_extensions.difference(extensions):
print(f"Extra extensions installed: {extra_extensions}")
print("vscode extension manager finished")
if __name__ == "__main__":
main()