improved extension_installer.py and renamed it to extension_manager.py
This commit is contained in:
parent
b9fffd3c96
commit
107a9387bd
3
.vscode/settings.json
vendored
3
.vscode/settings.json
vendored
@ -49,6 +49,7 @@
|
|||||||
"davidanson",
|
"davidanson",
|
||||||
"dbus",
|
"dbus",
|
||||||
"dearrow",
|
"dearrow",
|
||||||
|
"debugpy",
|
||||||
"devicemap",
|
"devicemap",
|
||||||
"dialout",
|
"dialout",
|
||||||
"direnv",
|
"direnv",
|
||||||
@ -127,6 +128,7 @@
|
|||||||
"mousewheel",
|
"mousewheel",
|
||||||
"mpris",
|
"mpris",
|
||||||
"msbc",
|
"msbc",
|
||||||
|
"mtxr",
|
||||||
"ncdu",
|
"ncdu",
|
||||||
"nemo",
|
"nemo",
|
||||||
"neofetch",
|
"neofetch",
|
||||||
@ -210,6 +212,7 @@
|
|||||||
"sonarr",
|
"sonarr",
|
||||||
"sponsorblock",
|
"sponsorblock",
|
||||||
"spotifyd",
|
"spotifyd",
|
||||||
|
"sqltools",
|
||||||
"sshconfig",
|
"sshconfig",
|
||||||
"subresource",
|
"subresource",
|
||||||
"substituters",
|
"substituters",
|
||||||
|
@ -1,26 +1,34 @@
|
|||||||
from subprocess import run
|
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():
|
def main():
|
||||||
extensions = (
|
print("starting vscode extension manager")
|
||||||
|
|
||||||
|
extensions = {
|
||||||
# vscode
|
# vscode
|
||||||
"ms-azuretools.vscode-docker",
|
"ms-azuretools.vscode-docker",
|
||||||
"ms-vscode-remote.remote-containers",
|
"ms-vscode-remote.remote-containers",
|
||||||
|
"ms-vscode-remote.remote-ssh-edit",
|
||||||
"ms-vscode-remote.remote-ssh",
|
"ms-vscode-remote.remote-ssh",
|
||||||
"ms-vscode.hexeditor",
|
"ms-vscode.hexeditor",
|
||||||
|
"ms-vscode.remote-explorer",
|
||||||
"ms-vsliveshare.vsliveshare",
|
"ms-vsliveshare.vsliveshare",
|
||||||
"oderwat.indent-rainbow",
|
"oderwat.indent-rainbow",
|
||||||
"streetsidesoftware.code-spell-checker",
|
|
||||||
"supermaven.supermaven",
|
|
||||||
"usernamehw.errorlens",
|
"usernamehw.errorlens",
|
||||||
# git
|
# git
|
||||||
"codezombiech.gitignore",
|
"codezombiech.gitignore",
|
||||||
"eamodio.gitlens",
|
"eamodio.gitlens",
|
||||||
"GitHub.vscode-github-actions",
|
"gitHub.vscode-github-actions",
|
||||||
# python
|
# python
|
||||||
"charliermarsh.ruff",
|
"charliermarsh.ruff",
|
||||||
"ms-python.python",
|
"ms-python.python",
|
||||||
"ms-python.vscode-pylance",
|
"ms-python.vscode-pylance",
|
||||||
|
"ms-python.debugpy",
|
||||||
# rust
|
# rust
|
||||||
"rust-lang.rust-analyzer",
|
"rust-lang.rust-analyzer",
|
||||||
# MD
|
# MD
|
||||||
@ -34,14 +42,27 @@ def main():
|
|||||||
"foxundermoon.shell-format",
|
"foxundermoon.shell-format",
|
||||||
# nix
|
# nix
|
||||||
"jnoortheen.nix-ide",
|
"jnoortheen.nix-ide",
|
||||||
|
# database
|
||||||
|
"mtxr.sqltools-driver-pg",
|
||||||
|
"mtxr.sqltools",
|
||||||
# other
|
# other
|
||||||
"esbenp.prettier-vscode",
|
"esbenp.prettier-vscode",
|
||||||
"mechatroner.rainbow-csv",
|
"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)
|
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__":
|
if __name__ == "__main__":
|
||||||
main()
|
main()
|
Loading…
x
Reference in New Issue
Block a user