WinGetパッケージをGistで同期できるPowerShellモジュール「GistGet」をリリースしました
What is this?
GistGetは、Gistに導入したいパッケージをYAMLで定義しておくことで、複数の環境を同期できるPowerShellモジュールです。
定義ファイルはローカルファイルやURIも指定することができるので、プロダクトの開発環境の構築なんかにも利用できます。
GistにつぎのようなYAMLを定義しておきます。
7zip.7zip:
Microsoft.VisualStudioCode:
custome: /VERYSILENT /NORESTART /MERGETASKS=!runcode,addcontextmenufiles,addcontextmenufolders,associatewithfiles,addtopath
Sync-GistGetPackageを呼び出すことで同期します。
Sync-GistGetPackage
新たなパッケージをインストールすると・・・
Install-GistGetPackage -Id Git.Git
Gist上の定義ファイルも透過的に更新されます。便利!
7zip.7zip:
Microsoft.VisualStudioCode:
custom: /VERYSILENT /NORESTART /MERGETASKS=!runcode,addcontextmenufiles,addcontextmenufolders,associatewithfiles,addtopath
Git.Git:
良かったらぜひ使ってみてください。
Getting started
PowerShell GalleryからModuleをインストールします。
Install-Module GistGet
GitHubからGistを更新するためのトークンを取得し、設定します。取得するトークンに必要な権限などはこちらを参照してください。
Set-GitHubToken github_pat_11AD3NELA0SGEHcrynCMSo...
インストールリストをGistに作成します。
このとき「Gist description...」に「GistGet」を設定します。 ファイル名は任意です。
7zip.7zip:
Microsoft.VisualStudioCode:
custom: /VERYSILENT /NORESTART /MERGETASKS=!runcode,addcontextmenufiles,addcontextmenufolders,associatewithfiles,addtopath
Gistの定義に従ってパッケージを同期します。
Sync-GistGetPackage
パッケージをすべてアップデート(wingetのupgrade)します。
Update-GistGetPackage
新たなパッケージをインストールします。
Install-GistGetPackage -Id Git.Git
GistGetのコマンドを通してインストールすると、Gist上の定義ファイルも更新されます。
7zip.7zip:
Microsoft.VisualStudioCode:
custom: /VERYSILENT /NORESTART /MERGETASKS=!runcode,addcontextmenufiles,addcontextmenufolders,associatewithfiles,addtopath
Git.Git:
このため別の端末でSync-GistGetPackageを実行することで、環境を容易に同期することが可能です。
インストール済みのパッケージをアンインストールします。
Uninstall-GistGetPackage -Id Git.Git
Gist上の定義ファイルも同期されます。
7zip.7zip:
Microsoft.VisualStudioCode:
custom: /VERYSILENT /NORESTART /MERGETASKS=!runcode,addcontextmenufiles,addcontextmenufolders,associatewithfiles,addtopath
Git.Git:
uninstall: true
別の端末でSync-GistGetPackageを実行すると、その端末からもアンインストールされます。
アンインストールを同期したくない場合は、WinGetの標準コマンドを利用してください。
winget uninstall --id Git.Git
詳細な仕様はドキュメントをご覧ください!
Discussion