diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..5999137 --- /dev/null +++ b/flake.lock @@ -0,0 +1,7 @@ +{ + "nodes": { + "root": {} + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..4a66abe --- /dev/null +++ b/flake.nix @@ -0,0 +1,9 @@ +{ + description = "Development Environment for JMU's CS345"; + + outputs = _: { + nixosModules = { + bernstdh = import ./modules; + }; + }; +} diff --git a/modules/default.nix b/modules/default.nix new file mode 100644 index 0000000..71a41be --- /dev/null +++ b/modules/default.nix @@ -0,0 +1,48 @@ +{ + config, + lib, + pkgs, + ... +}: + +let + inherit (pkgs.eclipses) eclipse-java eclipseWithPlugins plugins; + + # Eclipse IDE for Java Developers 2024-06 R Package + eclipse-v2024-06 = eclipse-java.overrideAttrs (oldAttrs: rec { + version = "2024-06"; + src = pkgs.fetchurl { + url = "https://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/${version}/R/eclipse-java-${version}-R-linux-gtk-x86_64.tar.gz"; + sha256 = "1dgqbpsk6a6y3w58fkp4h5w804gcmvril6j97nkxvj96yb8f6xvx"; + }; + }); + + # The Eclipse plugin for Checkstyle v10.17. + checkstyle-v10-17 = plugins.buildEclipseUpdateSite { + name = "checkstyle-v10.17"; + src = ../plugins/checkstyle-v10.17; + }; + + # A custom derivation of Eclipse with CS345's requirements. + eclipse-cs345 = eclipseWithPlugins { + eclipse = eclipse-v2024-06; + plugins = [ + checkstyle-v10-17 + plugins.color-theme + ]; + }; + +in +with lib; +{ + options.programs.nix-jmu-cs345 = { + enable = mkEnableOption "nix-jmu-cs345"; + }; + + config = mkIf config.programs.nix-jmu-cs345.enable { + environment.systemPackages = with pkgs; [ + jdk21_headless + eclipse-cs345 + ]; + }; +} diff --git a/plugins/checkstyle-v10.17/features/net.sf.eclipsecs.source_10.17.0.202408021402.jar b/plugins/checkstyle-v10.17/features/net.sf.eclipsecs.source_10.17.0.202408021402.jar new file mode 100644 index 0000000..8b53c8c Binary files /dev/null and b/plugins/checkstyle-v10.17/features/net.sf.eclipsecs.source_10.17.0.202408021402.jar differ diff --git a/plugins/checkstyle-v10.17/features/net.sf.eclipsecs_10.17.0.202408021402.jar b/plugins/checkstyle-v10.17/features/net.sf.eclipsecs_10.17.0.202408021402.jar new file mode 100644 index 0000000..6adb094 Binary files /dev/null and b/plugins/checkstyle-v10.17/features/net.sf.eclipsecs_10.17.0.202408021402.jar differ diff --git a/plugins/checkstyle-v10.17/plugins/io.github.classgraph.classgraph_4.8.179.jar b/plugins/checkstyle-v10.17/plugins/io.github.classgraph.classgraph_4.8.179.jar new file mode 100644 index 0000000..b8d3c14 Binary files /dev/null and b/plugins/checkstyle-v10.17/plugins/io.github.classgraph.classgraph_4.8.179.jar differ diff --git a/plugins/checkstyle-v10.17/plugins/net.sf.eclipsecs.branding_10.17.0.202408020907.jar b/plugins/checkstyle-v10.17/plugins/net.sf.eclipsecs.branding_10.17.0.202408020907.jar new file mode 100644 index 0000000..89a49c8 Binary files /dev/null and b/plugins/checkstyle-v10.17/plugins/net.sf.eclipsecs.branding_10.17.0.202408020907.jar differ diff --git a/plugins/checkstyle-v10.17/plugins/net.sf.eclipsecs.checkstyle_10.17.0.202408021402.jar b/plugins/checkstyle-v10.17/plugins/net.sf.eclipsecs.checkstyle_10.17.0.202408021402.jar new file mode 100644 index 0000000..269f5d5 Binary files /dev/null and b/plugins/checkstyle-v10.17/plugins/net.sf.eclipsecs.checkstyle_10.17.0.202408021402.jar differ diff --git a/plugins/checkstyle-v10.17/plugins/net.sf.eclipsecs.core.source_10.17.0.202408021402.jar b/plugins/checkstyle-v10.17/plugins/net.sf.eclipsecs.core.source_10.17.0.202408021402.jar new file mode 100644 index 0000000..96cd28e Binary files /dev/null and b/plugins/checkstyle-v10.17/plugins/net.sf.eclipsecs.core.source_10.17.0.202408021402.jar differ diff --git a/plugins/checkstyle-v10.17/plugins/net.sf.eclipsecs.core_10.17.0.202408021402.jar b/plugins/checkstyle-v10.17/plugins/net.sf.eclipsecs.core_10.17.0.202408021402.jar new file mode 100644 index 0000000..7ac3287 Binary files /dev/null and b/plugins/checkstyle-v10.17/plugins/net.sf.eclipsecs.core_10.17.0.202408021402.jar differ diff --git a/plugins/checkstyle-v10.17/plugins/net.sf.eclipsecs.doc_10.17.0.202408020907.jar b/plugins/checkstyle-v10.17/plugins/net.sf.eclipsecs.doc_10.17.0.202408020907.jar new file mode 100644 index 0000000..3a9cb70 Binary files /dev/null and b/plugins/checkstyle-v10.17/plugins/net.sf.eclipsecs.doc_10.17.0.202408020907.jar differ diff --git a/plugins/checkstyle-v10.17/plugins/net.sf.eclipsecs.ui.source_10.17.0.202408020907.jar b/plugins/checkstyle-v10.17/plugins/net.sf.eclipsecs.ui.source_10.17.0.202408020907.jar new file mode 100644 index 0000000..b72e97f Binary files /dev/null and b/plugins/checkstyle-v10.17/plugins/net.sf.eclipsecs.ui.source_10.17.0.202408020907.jar differ diff --git a/plugins/checkstyle-v10.17/plugins/net.sf.eclipsecs.ui_10.17.0.202408020907.jar b/plugins/checkstyle-v10.17/plugins/net.sf.eclipsecs.ui_10.17.0.202408020907.jar new file mode 100644 index 0000000..b9cc934 Binary files /dev/null and b/plugins/checkstyle-v10.17/plugins/net.sf.eclipsecs.ui_10.17.0.202408020907.jar differ diff --git a/plugins/checkstyle-v10.17/plugins/org.yaml.snakeyaml_2.3.0.jar b/plugins/checkstyle-v10.17/plugins/org.yaml.snakeyaml_2.3.0.jar new file mode 100644 index 0000000..0c9b7fc Binary files /dev/null and b/plugins/checkstyle-v10.17/plugins/org.yaml.snakeyaml_2.3.0.jar differ diff --git a/plugins/checkstyle-v10.17/plugins/wrapped.org.dom4j.dom4j_2.1.4.jar b/plugins/checkstyle-v10.17/plugins/wrapped.org.dom4j.dom4j_2.1.4.jar new file mode 100644 index 0000000..8e5d28a Binary files /dev/null and b/plugins/checkstyle-v10.17/plugins/wrapped.org.dom4j.dom4j_2.1.4.jar differ