diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index e69de29..0000000 diff --git a/Management.Web/Management.Web.csproj b/Management.Web/Management.Web.csproj index 25ab135..f25017d 100644 --- a/Management.Web/Management.Web.csproj +++ b/Management.Web/Management.Web.csproj @@ -15,5 +15,4 @@ enable enable - diff --git a/Management/Models/Local/LocalCourse.cs b/Management/Models/Local/LocalCourse.cs index ce2d6cb..f4d49e0 100644 --- a/Management/Models/Local/LocalCourse.cs +++ b/Management/Models/Local/LocalCourse.cs @@ -1,5 +1,3 @@ -using YamlDotNet.Serialization; - namespace LocalModels; public record LocalCourse @@ -8,35 +6,6 @@ public record LocalCourse public LocalCourseSettings Settings { get; set; } } -public record LocalCourseSettings -{ - public IEnumerable AssignmentGroups { get; init; } = - Enumerable.Empty(); - public string Name { get; init; } = string.Empty; - public IEnumerable DaysOfWeek { get; init; } = Enumerable.Empty(); - public ulong? CanvasId { get; init; } - public DateTime StartDate { get; init; } - public DateTime EndDate { get; init; } - public SimpleTimeOnly DefaultDueTime { get; init; } = new SimpleTimeOnly(); - - public string ToYaml() - { - var serializer = new SerializerBuilder().DisableAliases().Build(); - var yaml = serializer.Serialize(this); - return yaml; - } - - public static LocalCourseSettings ParseYaml(string rawText) - { - var deserializer = new DeserializerBuilder() - .IgnoreUnmatchedProperties() - .Build(); - - var settings = deserializer.Deserialize(rawText); - return settings; - } -} - public record SimpleTimeOnly { public int Hour { get; init; } = 1; diff --git a/Management/Models/Local/LocalCourseSettings.cs b/Management/Models/Local/LocalCourseSettings.cs new file mode 100644 index 0000000..9790605 --- /dev/null +++ b/Management/Models/Local/LocalCourseSettings.cs @@ -0,0 +1,34 @@ +using YamlDotNet.Serialization; + +namespace LocalModels; + +public record LocalCourseSettings +{ + public IEnumerable AssignmentGroups { get; init; } = + Enumerable.Empty(); + + [YamlIgnore] + public string Name { get; init; } = string.Empty; + public IEnumerable DaysOfWeek { get; init; } = Enumerable.Empty(); + public ulong? CanvasId { get; init; } + public DateTime StartDate { get; init; } + public DateTime EndDate { get; init; } + public SimpleTimeOnly DefaultDueTime { get; init; } = new SimpleTimeOnly(); + + public string ToYaml() + { + var serializer = new SerializerBuilder().DisableAliases().Build(); + var yaml = serializer.Serialize(this); + return yaml; + } + + public static LocalCourseSettings ParseYaml(string rawText) + { + var deserializer = new DeserializerBuilder() + .IgnoreUnmatchedProperties() + .Build(); + + var settings = deserializer.Deserialize(rawText); + return settings; + } +} diff --git a/Management/Services/Files/FileConfiguration.cs b/Management/Services/Files/FileConfiguration.cs index 4f1bc1d..e94a26e 100644 --- a/Management/Services/Files/FileConfiguration.cs +++ b/Management/Services/Files/FileConfiguration.cs @@ -2,7 +2,6 @@ using Management.Services; public class FileConfiguration { - public static string GetBasePath() { string? storageDirectory = Environment.GetEnvironmentVariable("storageDirectory"); diff --git a/Management/Services/Files/LoadMarkdownCourse.cs b/Management/Services/Files/LoadMarkdownCourse.cs index 88edea6..f465f29 100644 --- a/Management/Services/Files/LoadMarkdownCourse.cs +++ b/Management/Services/Files/LoadMarkdownCourse.cs @@ -52,7 +52,9 @@ public class CourseMarkdownLoader var settingsString = await File.ReadAllTextAsync(settingsPath); var settings = LocalCourseSettings.ParseYaml(settingsString); - return settings; + + var folderName = Path.GetFileName(courseDirectory); + return settings with { Name = folderName }; } private async Task> loadCourseModules(string courseDirectory) diff --git a/build.sh b/build.sh old mode 100644 new mode 100755 index 05a7907..8c78c15 --- a/build.sh +++ b/build.sh @@ -1,2 +1,14 @@ #!/bin/bash + +VERSION="1.0" + +dotnet publish Management.Web/ \ + --os linux \ + --arch x64 \ + /t:PublishContainer \ + -c Release \ + -p ContainerImageTags="\"$VERSION;latest\"" \ + -p ContainerRepository="canvas_management" + +docker image tag canvas_management:$VERSION alexmickelson/canvas_management:$VERSION \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..557a44e --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,12 @@ +services: + canvas_manager: + image: alexmickelson/canvas_management:1.0 + user: "1000:1000" + ports: + - 8080:8080 + env_file: + - .env + environment: + - storageDirectory=/app/storage + volumes: + - ./storage:/app/storage \ No newline at end of file