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