From 1f73589d8bcd5cb68f6c4f69b538b9481902657d Mon Sep 17 00:00:00 2001
From: Matei Adriel <rafaeladriel11@gmail.com>
Date: Sat, 30 May 2020 23:19:57 +0300
Subject: [PATCH] feat: edopro derivation (which doesnt work yet)

---
 modules/applications/edopro.nix | 41 +++++++++++++++++++++++++++++++++
 modules/applications/misc.nix   |  1 +
 modules/dev/default.nix         | 10 ++++++--
 modules/dev/fsharp.nix          |  3 +++
 modules/overlay.nix             |  5 ++++
 5 files changed, 58 insertions(+), 2 deletions(-)
 create mode 100644 modules/applications/edopro.nix
 create mode 100644 modules/dev/fsharp.nix

diff --git a/modules/applications/edopro.nix b/modules/applications/edopro.nix
new file mode 100644
index 0000000..198836a
--- /dev/null
+++ b/modules/applications/edopro.nix
@@ -0,0 +1,41 @@
+# TODO: make this actually build
+{ pkgs, stdenv, ... }:
+let
+  # It's considered good practice to specify the version in the derivation name
+  version = "38.1.1";
+  # In case the name they build it into changes I can just modify this
+  execName = "EDOPro";
+  edopro = stdenv.mkDerivation rec {
+    name = "edopro-${version}";
+
+    src = builtins.path {
+      path = pkgs.fetchurl {
+        url =
+          "https://mega.nz/file/pfglCAyK#IlqEOy1kBLmFiIDu4z6afbj1wTcWTFTyvYzPW0D2m24";
+        sha256 =
+          "99be240086ccae834998b821df5abb17f7d22d26fb757fc5106b4812ca4b3f36";
+      };
+      name = "edopro-source";
+    };
+
+    # Add the derivation to the PATH
+    buildInputs = with pkgs; [
+      mono # this is needed for the ai support
+      freetype # font rendering engine
+    ];
+
+    # This just moves the bin over and calls it a day
+    installPhase = ''
+      # Make the output directory
+      mkdir -p $out/bin
+
+      # Copy the script there and make it executable
+      cp ${execName} $out/bin/
+      chmod +x $out/bin/${execName}
+    '';
+  };
+
+in stdenv.mkDerivation {
+  name = "edopro-environment";
+  buildInputs = [ edopro ];
+}
diff --git a/modules/applications/misc.nix b/modules/applications/misc.nix
index cf3c2a4..98cfc14 100644
--- a/modules/applications/misc.nix
+++ b/modules/applications/misc.nix
@@ -29,6 +29,7 @@
     gimp # image editing
     korganizer # calendar
     libreoffice # free office suite
+    # edopro # yugioh simulator (my derivation doesn't work yet)
     akonadi
   ];
 }
diff --git a/modules/dev/default.nix b/modules/dev/default.nix
index 580daa4..0d107d5 100644
--- a/modules/dev/default.nix
+++ b/modules/dev/default.nix
@@ -1,5 +1,11 @@
 { pkgs, ... }: {
   home-manager.users.adrielus.home.packages = with pkgs; [ gcc ];
-  imports =
-    [ ./nix.nix ./purescript.nix ./javascript.nix ./rust.nix ./haskell ];
+  imports = [
+    ./nix.nix
+    ./purescript.nix
+    ./javascript.nix
+    ./fsharp.nix
+    ./rust.nix
+    ./haskell
+  ];
 }
diff --git a/modules/dev/fsharp.nix b/modules/dev/fsharp.nix
new file mode 100644
index 0000000..58aa114
--- /dev/null
+++ b/modules/dev/fsharp.nix
@@ -0,0 +1,3 @@
+{ pkgs, ... }: {
+  home-manager.users.adrielus.home.packages = with pkgs; [ dotnet-sdk mono ];
+}
diff --git a/modules/overlay.nix b/modules/overlay.nix
index 5f2b06f..3211748 100644
--- a/modules/overlay.nix
+++ b/modules/overlay.nix
@@ -1,6 +1,7 @@
 { ... }:
 let
   imports = import ../nix/sources.nix;
+  edoproPackage = import ./applications/edopro.nix;
   unstable = import imports.nixpkgs-unstable { config.allowUnfree = true; };
 in {
   nixpkgs.overlays = [
@@ -14,6 +15,9 @@ in {
         cached-nix-shell = callPackage imports.cached-nix-shell { };
         easy-purescript-nix = callPackage imports.easy-purescript-nix { };
 
+        # This is a derivation I made myself for edopro
+        edopro = callPackage edoproPackage { };
+
         all-hies = import imports.all-hies { };
         snack = (import imports.snack).snack-exe;
 
@@ -21,6 +25,7 @@ in {
         brave = unstable.brave;
         vscodium = unstable.vscodium;
         deno = unstable.deno;
+        dotnet-sdk = dotnet-sdk_3;
       })
   ];