From 5f0ef7bbc7066f1356ec693a1fe1d7786e2513b4 Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Sat, 24 Jun 2023 10:30:57 +0100 Subject: [PATCH] Remove NPM dependency --- .gitignore | 4 +++- Dockerfile | 2 -- build/Build.cs | 26 +++++++++++++++++++++-- src/Website/Website.csproj | 4 ---- src/Website/package-lock.json | 33 ------------------------------ src/Website/package.json | 16 --------------- src/Website/wwwroot/css/style.scss | 6 +++--- src/Website/wwwroot/webfonts | 1 - 8 files changed, 30 insertions(+), 62 deletions(-) delete mode 100644 src/Website/package-lock.json delete mode 100644 src/Website/package.json delete mode 120000 src/Website/wwwroot/webfonts diff --git a/.gitignore b/.gitignore index c3bbba2..c572ba7 100644 --- a/.gitignore +++ b/.gitignore @@ -54,4 +54,6 @@ output _NCrunch_Website *.DotSettings -.nuke/temp \ No newline at end of file +.nuke/temp + +fontawesome \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index a83818d..b9399a8 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,8 +1,6 @@ FROM mcr.microsoft.com/dotnet/sdk:7.0 AS build-env WORKDIR /app COPY . ./ -RUN curl -sL https://deb.nodesource.com/setup_18.x | bash - -RUN apt-get install -y nodejs RUN chmod +x ./build.sh RUN ./build.sh diff --git a/build/Build.cs b/build/Build.cs index cc5fbad..8524687 100644 --- a/build/Build.cs +++ b/build/Build.cs @@ -1,4 +1,9 @@ +using System; using System.IO; +using System.IO.Compression; +using System.Media; +using System.Net.Http; +using System.Threading.Tasks; using Nuke.Common; using Nuke.Common.Execution; using Nuke.Common.IO; @@ -19,17 +24,34 @@ class Build : NukeBuild AbsolutePath OutputDirectory => RootDirectory / "output"; AbsolutePath SourceDirectory => RootDirectory / "src"; + AbsolutePath LibPath => SourceDirectory / "Website/wwwroot/lib"; + + private void DeleteExistingFontAwesome() => Directory.Delete(LibPath / "fontawesome", true); Target Clean => _ => _ .Before(Restore) .Executes(() => { + DeleteExistingFontAwesome(); EnsureCleanDirectory(OutputDirectory); }); + private async Task DownloadFontAwesome() { + const string fontAwesomeVersion = "6.4.0"; + const string zipName = $"fontawesome-free-{fontAwesomeVersion}-web"; + var client = new HttpClient(); + var response = await client.GetAsync($"https://use.fontawesome.com/releases/v{fontAwesomeVersion}/{zipName}.zip"); + var memory = new MemoryStream(); + await response.Content.CopyToAsync(memory); + var zip = new ZipArchive(memory); + zip.ExtractToDirectory(LibPath); + Directory.Move(LibPath / zipName, LibPath / "fontawesome"); + } + Target Restore => _ => _ - .Executes(() => - { + .DependsOn(Clean) + .Executes(() => { + DownloadFontAwesome().Wait(); DotNetRestore(s => s .SetProjectFile(Solution)); }); diff --git a/src/Website/Website.csproj b/src/Website/Website.csproj index e2e3ec0..4759ea1 100644 --- a/src/Website/Website.csproj +++ b/src/Website/Website.csproj @@ -23,8 +23,4 @@ - - - - diff --git a/src/Website/package-lock.json b/src/Website/package-lock.json deleted file mode 100644 index 2a44028..0000000 --- a/src/Website/package-lock.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "name": "website", - "version": "1.0.0", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "website", - "version": "1.0.0", - "license": "ISC", - "dependencies": { - "@fortawesome/fontawesome-free": "^6.2.1" - }, - "devDependencies": {} - }, - "node_modules/@fortawesome/fontawesome-free": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-6.2.1.tgz", - "integrity": "sha512-viouXhegu/TjkvYQoiRZK3aax69dGXxgEjpvZW81wIJdxm5Fnvp3VVIP4VHKqX4SvFw6qpmkILkD4RJWAdrt7A==", - "hasInstallScript": true, - "engines": { - "node": ">=6" - } - } - }, - "dependencies": { - "@fortawesome/fontawesome-free": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-6.2.1.tgz", - "integrity": "sha512-viouXhegu/TjkvYQoiRZK3aax69dGXxgEjpvZW81wIJdxm5Fnvp3VVIP4VHKqX4SvFw6qpmkILkD4RJWAdrt7A==" - } - } -} diff --git a/src/Website/package.json b/src/Website/package.json deleted file mode 100644 index f76b52b..0000000 --- a/src/Website/package.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "name": "website", - "version": "1.0.0", - "description": "", - "main": "index.js", - "devDependencies": { - }, - "dependencies": { - "@fortawesome/fontawesome-free": "^6.2.1" - }, - "scripts": { - }, - "author": "Robert Marshall", - "license": "ISC", - "private": true -} diff --git a/src/Website/wwwroot/css/style.scss b/src/Website/wwwroot/css/style.scss index df009ac..696d616 100644 --- a/src/Website/wwwroot/css/style.scss +++ b/src/Website/wwwroot/css/style.scss @@ -1,8 +1,8 @@ @import url("https://fonts.googleapis.com/css?family=Public+Sans&display=swap"); @import "colours.scss"; -$fa-font-path: "../webfonts"; -@import "../../node_modules/@fortawesome/fontawesome-free/scss/fontawesome.scss"; -@import "../../node_modules/@fortawesome/fontawesome-free/scss/solid.scss"; +$fa-font-path: "../lib/fontawesome/webfonts"; +@import "../lib/fontawesome/scss/fontawesome.scss"; +@import "../lib/fontawesome/scss/solid.scss"; * { box-sizing: border-box; diff --git a/src/Website/wwwroot/webfonts b/src/Website/wwwroot/webfonts deleted file mode 120000 index 886ba37..0000000 --- a/src/Website/wwwroot/webfonts +++ /dev/null @@ -1 +0,0 @@ -../node_modules/@fortawesome/fontawesome-free/webfonts \ No newline at end of file