Installer le module Powershell à partir du référentiel Github

Salut!

Ces dernières années, Powershell a commencé son expansion sur d'autres plates-formes et fonctionne maintenant sur Windows, Linux et MacOS (j'ai même réussi à le démarrer sur la distribution Debian de framboise Pi).

Et de nos jours, la principale façon d'installer des modules est PowerShell Gallery, mais dans certaines situations, il est toujours pratique d'installer des modules directement à partir de la source (la principale raison - le référentiel des modules PowerShell principaux configuré sur MyGet ou NugetServer).

Et il peut être difficile d'installer Module à partir de GitHub - vous devez télécharger l'archive, trouver le dossier des modules extraire le contenu de l'archive, puis copier le dossier du module dans le répertoire du profil Powershell.

De plus - des gens comme moi ne veulent pas créer un référentiel séparé pour chaque module (oui, j'aime l'approche Release-Flow ) alors téléchargez et extrayez uniquement les modules qui vous ressemblent - c'est encore plus difficile.

Bien sûr, il existe plusieurs scripts sur Internet qui visent à télécharger et à installer le module PowerShell à partir de GitHub, mais je n'ai trouvé aucune autorisation permettant d'installer Module à partir d'un dossier du référentiel dans Github. C'est la façon d'apparaître le projet ` InstallFromGithub` .

La première fois, j'ai utilisé ce programme d'installation uniquement pour mes modules Powershell, mais j'ai ensuite décidé de le séparer pour permettre son utilisation dans n'importe quel script de n'importe quel référentiel.

Découvrez le script 'install.ps1'!

Par exemple, essayons d'installer le module Bookmarks à partir du référentiel PowershellScripts directement depuis le compte GitHub:

Nous avons juste besoin de définir des paramètres

$user="stadub"; $repo="PowershellScripts" $module="Bookmarks" 

vous pouvez également laisser la variable $ module vide pour indiquer le module placé dans le dossier racine

La chaîne d'installation sera donc:

 iex ('$module="Bookmarks";$user="stadub";$repo="PowershellScripts"'+(new-object net.webclient).DownloadString('https://raw.githubusercontent.com/PsModuleInstall/InstallFromGithub/master/install.ps1')) 

Maintenant, pour vérifier si cela fonctionne permet d'importer GHiPS et EventLogDrive

 Import-Module Bookmarks 

Simple, non?!

Sous le capot, il y a un script de téléchargement qui fonctionne sur n'importe quelle plate-forme avec une vérification de la progression et de l'installation afin que vous ne réécriviez pas votre module existant.

Comme je l'ai mentionné précédemment, le script est séparé des autres modules et permet à toute personne d'utiliser le programme d'installation unifié.

Et si vous avez des suggestions ou un rapport de bogue, vous pouvez créer un problème dans le référentiel.

Meilleurs voeux et bon codage,
Dima stadub

Source: https://habr.com/ru/post/fr476914/


All Articles