Créer un site web Hugo avec le thème memE

A l’aide de powershell, nous installons les prérequis si neccessaire et nous réalison un site static hugo avec le thème memE

Automatisation avec PowerShell : Création d’un site Hugo

Dans le monde de l’informatique, l’automatisation est un élément clé pour augmenter l’efficacité et la productivité. Les scripts sont un moyen courant d’automatiser des tâches répétitives, et PowerShell est un outil puissant pour écrire des scripts sous Windows. Dans cet article, nous allons explorer comment un script PowerShell peut être utilisé pour automatiser la création d’un site web avec Hugo, un générateur de sites statiques populaire.


Le Script

Le script effectue une série de tâches pour configurer un nouveau site Hugo. Il commence par vérifier si l’utilisateur a les droits d’administration nécessaires pour l’exécuter. Ensuite, il vérifie si Chocolatey, un gestionnaire de paquets pour Windows, est installé sur le système. Si ce n’est pas le cas, il installe Chocolatey.

Une fois Chocolatey installé, il vérifie la présence des outils nécessaires - hugo et wget. Si ces outils ne sont pas installés, il les installe via Chocolatey.

Il crée ensuite un nouveau répertoire nommé “www” sur le bureau de l’utilisateur et se place dans ce répertoire. Il exécute la commande hugo new site template pour créer un nouveau site Hugo dans un sous-répertoire nommé “template”.

Ensuite, il télécharge un thème pour le site Hugo à partir de GitHub en utilisant wget, décompresse le fichier téléchargé, et déplace les fichiers du thème dans le répertoire approprié.

Enfin, le script supprime certains fichiers inutiles et copie des fichiers de configuration spécifiques du thème dans les emplacements appropriés.


L’intérêt du Script

Ce script présente plusieurs avantages. Tout d’abord, il automatise une série de tâches qui seraient fastidieuses et sujettes aux erreurs si elles étaient effectuées manuellement. En automatisant ces tâches, nous économisons du temps et réduisons la possibilité d’erreurs.

Deuxièmement, il effectue une série de vérifications pour s’assurer que les outils nécessaires sont installés et que l’utilisateur a les droits appropriés pour l’exécuter.

Enfin, ce script est un excellent exemple de la façon dont PowerShell peut être utilisé pour automatiser des tâches simples ou complexes sur Windows. Avec sa capacité à interagir avec le système d’exploitation, à exécuter des commandes et à gérer des fichiers et des répertoires, PowerShell est un outil puissant pour l’automatisation.


Conclusion

L’automatisation avec PowerShell peut grandement améliorer votre efficacité en tant que développeur ou administrateur système. Que vous configuriez un nouveau site web avec Hugo ou que vous automatisiez d’autres tâches répétitives, PowerShell offre une solution robuste et flexible.


Info

L’exécution de scripts PowerShell est désactivée par défaut sur les systèmes Windows pour des raisons de sécurité. Si vous rencontrez une erreur indiquant que l’exécution de scripts est désactivée sur votre système, vous pouvez contourner cette restriction en lançant votre script avec la politique d’exécution définie sur Bypass. Pour ce faire, tapez la commande suivante dans PowerShell :

1
PowerShell -ExecutionPolicy Bypass -File .\script.ps1

Cette commande lance une nouvelle instance de PowerShell pour exécuter votre script avec la politique d’exécution définie sur Bypass. Cela signifie que toutes les restrictions d’exécution de scripts sont ignorées pour cette instance de PowerShell.

Cependant, il est important de noter que l’utilisation de cette commande peut présenter des risques de sécurité, car elle permet l’exécution de n’importe quel script, qu’il soit signé ou non. Assurez-vous de comprendre les implications avant de l’utiliser. Il est toujours recommandé d’examiner attentivement tout script avant de l’exécuter sur votre système.


Download

ScriptCreationSiteHugo.zip

CodeSource

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# Si vous recevez une erreur indiquant que l’exécution de scripts est désactivée sur votre système,
# PowerShell -ExecutionPolicy Bypass -File startHugoWebSiteTemplate.ps1

# Vérifie si l'utilisateur a les droits d'exécution des commandes
if (-NOT ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")) {
    Write-Output "Vous devez exécuter ce script en tant qu'administrateur."
    exit 1
}

# Vérifie si Chocolatey est installé et l'installe si nécessaire
if (-not (Get-Command choco -ErrorAction SilentlyContinue)) {
    Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
}

# Liste des outils nécessaires
$tools = @("hugo", "wget", "vscode")

# Vérifie si les outils sont installés et les installe si nécessaire
foreach ($tool in $tools) {
    if (-not (Get-Command $tool -ErrorAction SilentlyContinue)) {
        choco install $tool -confirm
    }
}

# Crée un dossier sur le bureau nommé "www"
$folderPath = [Environment]::GetFolderPath("Desktop") + "\www"
New-Item -ItemType Directory -Force -Path $folderPath

# Se place dans ce dossier
Set-Location -Path $folderPath

# Exécute la commande : "hugo new site template"
hugo new site template

# Se place dans le dossier "template"
Set-Location -Path template

# Liste des commandes à exécuter
$commands = @(
    "wget https://github.com/reuixiy/hugo-theme-meme/archive/refs/heads/master.zip -O theme.zip",
    "Expand-Archive -Path theme.zip",
    "New-Item -ItemType Directory -Force -Path themes/meme",
    "Move-Item -Path theme/hugo-theme-meme-master/* -Destination themes/meme",
    "Remove-Item -Recurse -Force -Path theme",
    "Remove-Item -Force -Path config.toml",
    "Copy-Item -Path themes/meme/config-examples/en/config.toml -Destination config.toml",
    "Copy-Item -Path themes/meme/data/Socials.toml -Destination data/Socials.toml"
)

# Exécute les commandes
foreach ($command in $commands) {
    Invoke-Expression $command
}

# Ouvre Visual Studio Code dans le répertoire actuel
code .

Write-Output "Le script s'est exécuté avec succès."
updatedupdated2024-07-252024-07-25