From 8e8fdd9a0b191a73893301c5f89e92356adf0369 Mon Sep 17 00:00:00 2001 From: Booklordofthedings Date: Wed, 9 Apr 2025 16:36:54 +0200 Subject: [PATCH] Some reworks for stuff --- package.list | 15 +++++++++++++++ src/PackageInstaller.cs | 22 ++++++++++++++++++++++ src/Packages.cs | 16 ---------------- src/Program.cs | 19 ++++++++++++++++--- src/Runner.cs | 34 ++++++++++++++++++++++++++++++++++ 5 files changed, 87 insertions(+), 19 deletions(-) create mode 100644 package.list create mode 100644 src/PackageInstaller.cs delete mode 100644 src/Packages.cs create mode 100644 src/Runner.cs diff --git a/package.list b/package.list new file mode 100644 index 0000000..6bb9c4c --- /dev/null +++ b/package.list @@ -0,0 +1,15 @@ +nano +wine +wine64 +build-essential +git +remmina +mesa-vulkan-drivers +libglx-mesa0:i386 +mesa-vulkan-drivers:i386 +libgl1-mesa-dri:i386 +dconf-editor +beefbuild +audacity +npm +neofetch \ No newline at end of file diff --git a/src/PackageInstaller.cs b/src/PackageInstaller.cs new file mode 100644 index 0000000..37fdaa1 --- /dev/null +++ b/src/PackageInstaller.cs @@ -0,0 +1,22 @@ +namespace Setup_Workspace; + +public class PackageInstaller : Doable +{ + /* + * Install packages from a package list file + * This uses apt by default + */ + public override async Task Do() + { + Console.WriteLine("Installing packages..."); + + var packages = File.ReadAllText("package.list"); + packages = packages.Replace("\n", " "); + + + Helper.RunCommand("apt install", $"{packages} -y"); + + Console.WriteLine("Installed packages"); + return true; + } +} \ No newline at end of file diff --git a/src/Packages.cs b/src/Packages.cs deleted file mode 100644 index 75486b1..0000000 --- a/src/Packages.cs +++ /dev/null @@ -1,16 +0,0 @@ -namespace Setup_Workspace; - -public class Packages -{ - public void InstallPackages() - { - /* - read list of packages from file - to install - to remove - to install from never - - install from other sources - */ - } -} \ No newline at end of file diff --git a/src/Program.cs b/src/Program.cs index e37155a..75f3d5e 100644 --- a/src/Program.cs +++ b/src/Program.cs @@ -10,8 +10,21 @@ Console.WriteLine(""" """); Console.Write(">"); -Console.ReadLine(); - -Helper.RunCommand("apt", "update"); +var input = Console.ReadLine(); +switch (input) +{ + case "full-install": + new Runner().Then( + new PackageInstaller() + ).Run(); + break; + + case "exit": + break; + + default: + Console.WriteLine("Please enter a valid input"); + break; +} diff --git a/src/Runner.cs b/src/Runner.cs new file mode 100644 index 0000000..fed07e6 --- /dev/null +++ b/src/Runner.cs @@ -0,0 +1,34 @@ +namespace Setup_Workspace; + +public class Runner : Doable +{ + public override Task Do() + { + Console.WriteLine("Running tasks"); + return Task.FromResult(true); + } +} + +public abstract class Doable +{ + public abstract Task Do(); + + public List Followup = new List(); + + public Doable Then(params Doable[] doables) + { + foreach (var entry in doables) + Followup.Add(entry); + + return this; + } + + public async Task Run() + { + if (!await Do()) + return; + + foreach (var entry in Followup) + entry.Run(); + } +} \ No newline at end of file