Package JAVMovieScraper
This commit is contained in:
		
							parent
							
								
									68ae3c2cbb
								
							
						
					
					
						commit
						6959b4d93b
					
				@ -6,7 +6,7 @@
 | 
				
			|||||||
# commands such as:
 | 
					# commands such as:
 | 
				
			||||||
#     nix-build -A mypackage
 | 
					#     nix-build -A mypackage
 | 
				
			||||||
 | 
					
 | 
				
			||||||
{ pkgs ? import <nixpkgs> {} }:
 | 
					{ pkgs ? import <nixos-unstable> {} }:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  # The `lib`, `modules`, and `overlay` names are special
 | 
					  # The `lib`, `modules`, and `overlay` names are special
 | 
				
			||||||
@ -19,6 +19,7 @@
 | 
				
			|||||||
  # ...
 | 
					  # ...
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  rank_photos = pkgs.callPackage ./pkgs/rank_photos { };
 | 
					  rank_photos = pkgs.callPackage ./pkgs/rank_photos { };
 | 
				
			||||||
 | 
					  JAVMovieScraper = pkgs.callPackage ./pkgs/JAVMovieScraper { };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										35
									
								
								pkgs/JAVMovieScraper/default.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								pkgs/JAVMovieScraper/default.nix
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,35 @@
 | 
				
			|||||||
 | 
					{ pkgs, fetchFromGitHub, gradleGen, openjdk11}:
 | 
				
			||||||
 | 
					with pkgs;
 | 
				
			||||||
 | 
					let
 | 
				
			||||||
 | 
					  buildGradle = callPackage ./gradle-env.nix { gradleGen = gradleGen.override { java = openjdk11; }; };
 | 
				
			||||||
 | 
					in
 | 
				
			||||||
 | 
					buildGradle {
 | 
				
			||||||
 | 
					  envSpec = ./gradle-env.json;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  src = fetchFromGitHub {
 | 
				
			||||||
 | 
					    owner = "DoctorD1501";
 | 
				
			||||||
 | 
					    repo = "JAVMovieScraper";
 | 
				
			||||||
 | 
					    rev = "fcd695b2981d36aea01c9153ee2ef1c27cd42c78";
 | 
				
			||||||
 | 
					    sha256 = "0qwdzyfmscjj75jyh9mnk1rlmy12fnnsqbhvp9xdsnfhwy78x6xm";
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  patches = [ ./disable_spotless.patch ./respectXDG.patch ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  gradleFlags = [ "DistTar" ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  buildInputs = [ openjdk11 ];
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					  installPhase = ''
 | 
				
			||||||
 | 
					    mkdir -p $out
 | 
				
			||||||
 | 
					    tar xvf ./build/distributions/source--1.tar
 | 
				
			||||||
 | 
					    cp -r source--1/lib source--1/bin $out
 | 
				
			||||||
 | 
					    rm $out/bin/source.bat
 | 
				
			||||||
 | 
					    cat $out/bin/source | sed 's~$JAVA_HOME~${openjdk11}~' > $out/bin/JAVMovieScraper
 | 
				
			||||||
 | 
					    chmod +x $out/bin/JAVMovieScraper
 | 
				
			||||||
 | 
					    rm $out/bin/source
 | 
				
			||||||
 | 
					  '';
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										21
									
								
								pkgs/JAVMovieScraper/disable_spotless.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								pkgs/JAVMovieScraper/disable_spotless.patch
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,21 @@
 | 
				
			|||||||
 | 
					diff --git a/build.gradle b/build.gradle
 | 
				
			||||||
 | 
					index 89d9f44..54ca85e 100644
 | 
				
			||||||
 | 
					--- a/build.gradle
 | 
				
			||||||
 | 
					+++ b/build.gradle
 | 
				
			||||||
 | 
					@@ -79,11 +79,11 @@ shadowJar {
 | 
				
			||||||
 | 
					 	baseName = project.name
 | 
				
			||||||
 | 
					 }
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					-spotless {
 | 
				
			||||||
 | 
					-	java {
 | 
				
			||||||
 | 
					-		eclipse().configFile 'config/format/eclipseformat.xml'
 | 
				
			||||||
 | 
					-	}
 | 
				
			||||||
 | 
					-}
 | 
				
			||||||
 | 
					+/*spotless {
 | 
				
			||||||
 | 
					+	java {
 | 
				
			||||||
 | 
					+		eclipse().configFile 'config/format/eclipseformat.xml'
 | 
				
			||||||
 | 
					+	}
 | 
				
			||||||
 | 
					+t}*/
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					 jacocoTestReport {
 | 
				
			||||||
 | 
					 	reports {
 | 
				
			||||||
							
								
								
									
										3606
									
								
								pkgs/JAVMovieScraper/gradle-env.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3606
									
								
								pkgs/JAVMovieScraper/gradle-env.json
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										130
									
								
								pkgs/JAVMovieScraper/gradle-env.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										130
									
								
								pkgs/JAVMovieScraper/gradle-env.nix
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,130 @@
 | 
				
			|||||||
 | 
					# This file is generated by gradle2nix.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Example usage (e.g. in default.nix):
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#     with (import <nixpkgs> {});
 | 
				
			||||||
 | 
					#     let
 | 
				
			||||||
 | 
					#       buildGradle = callPackage ./gradleEnv.nix {};
 | 
				
			||||||
 | 
					#     in
 | 
				
			||||||
 | 
					#       buildGradle {
 | 
				
			||||||
 | 
					#         envSpec = ./gradle-env.json;
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#         src = ./.;
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#         gradleFlags = [ "installDist" ];
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#         installPhase = ''
 | 
				
			||||||
 | 
					#           mkdir -p $out
 | 
				
			||||||
 | 
					#           cp -r app/build/install/myproject $out
 | 
				
			||||||
 | 
					#         '';
 | 
				
			||||||
 | 
					#       }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{ stdenv, lib, buildEnv, fetchurl, gradleGen, writeText }:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{ envSpec
 | 
				
			||||||
 | 
					, pname ? null
 | 
				
			||||||
 | 
					, version ? null
 | 
				
			||||||
 | 
					, enableParallelBuilding ? true
 | 
				
			||||||
 | 
					, gradleFlags ? [ "build" ]
 | 
				
			||||||
 | 
					, gradlePackage ? null
 | 
				
			||||||
 | 
					, ... } @ args:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					let
 | 
				
			||||||
 | 
					  mkDep = depSpec: stdenv.mkDerivation {
 | 
				
			||||||
 | 
					    inherit (depSpec) name;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    src = fetchurl {
 | 
				
			||||||
 | 
					      inherit (depSpec) urls sha256;
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    phases = "installPhase";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    installPhase = ''
 | 
				
			||||||
 | 
					      mkdir -p $out/${depSpec.path}
 | 
				
			||||||
 | 
					      ln -s $src $out/${depSpec.path}/${depSpec.filename}
 | 
				
			||||||
 | 
					    '';
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  mkRepo = project: type: deps: buildEnv {
 | 
				
			||||||
 | 
					    name = "${project}-gradle-${type}-env";
 | 
				
			||||||
 | 
					    paths = map mkDep deps;
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  mkInitScript = projectSpec:
 | 
				
			||||||
 | 
					    let
 | 
				
			||||||
 | 
					      repos = builtins.mapAttrs (mkRepo projectSpec.name) projectSpec.dependencies;
 | 
				
			||||||
 | 
					    in
 | 
				
			||||||
 | 
					      writeText "init.gradle" ''
 | 
				
			||||||
 | 
					        gradle.settingsEvaluated {
 | 
				
			||||||
 | 
					          it.pluginManagement.repositories {
 | 
				
			||||||
 | 
					            clear()
 | 
				
			||||||
 | 
					            maven { url = uri("${repos.plugin}") }
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        gradle.projectsLoaded {
 | 
				
			||||||
 | 
					          allprojects {
 | 
				
			||||||
 | 
					            buildscript {
 | 
				
			||||||
 | 
					              repositories {
 | 
				
			||||||
 | 
					                clear()
 | 
				
			||||||
 | 
					                maven { url = uri("${repos.buildscript}") }
 | 
				
			||||||
 | 
					              }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            repositories {
 | 
				
			||||||
 | 
					              clear()
 | 
				
			||||||
 | 
					              maven { url = uri("${repos.project}") }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      '';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  mkGradle = gradleSpec:
 | 
				
			||||||
 | 
					    gradleGen.gradleGen {
 | 
				
			||||||
 | 
					      inherit (gradleSpec) nativeVersion;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      name = "gradle-${gradleSpec.version}-${gradleSpec.type}";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      src = fetchurl {
 | 
				
			||||||
 | 
					        inherit (gradleSpec) url sha256;
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  mkProjectEnv = projectSpec: {
 | 
				
			||||||
 | 
					    inherit (projectSpec) name version;
 | 
				
			||||||
 | 
					    initScript = mkInitScript projectSpec;
 | 
				
			||||||
 | 
					    gradle = args.gradlePackage or mkGradle projectSpec.gradle;
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  gradleEnv = builtins.mapAttrs
 | 
				
			||||||
 | 
					    (_: p: mkProjectEnv p)
 | 
				
			||||||
 | 
					    (builtins.fromJSON (builtins.readFile envSpec));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  projectEnv = gradleEnv."";
 | 
				
			||||||
 | 
					  pname = args.pname or projectEnv.name;
 | 
				
			||||||
 | 
					  version = args.version or projectEnv.version;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					in stdenv.mkDerivation (args // {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  inherit pname version;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  nativeBuildInputs = (args.nativeBuildInputs or []) ++ [ projectEnv.gradle ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  buildPhase = args.buildPhase or ''
 | 
				
			||||||
 | 
					    runHook preBuild
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    (
 | 
				
			||||||
 | 
					    set -x
 | 
				
			||||||
 | 
					    env \
 | 
				
			||||||
 | 
					      "GRADLE_USER_HOME=$(mktemp -d)" \
 | 
				
			||||||
 | 
					      gradle --offline --no-daemon --no-build-cache \
 | 
				
			||||||
 | 
					        --info --full-stacktrace --warning-mode=all \
 | 
				
			||||||
 | 
					        ${lib.optionalString enableParallelBuilding "--parallel"} \
 | 
				
			||||||
 | 
					        --init-script ${projectEnv.initScript} \
 | 
				
			||||||
 | 
					        ${builtins.concatStringsSep " " gradleFlags}
 | 
				
			||||||
 | 
					    )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    runHook postBuild
 | 
				
			||||||
 | 
					  '';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  dontStrip = true;
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
							
								
								
									
										65
									
								
								pkgs/JAVMovieScraper/respectXDG.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										65
									
								
								pkgs/JAVMovieScraper/respectXDG.patch
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,65 @@
 | 
				
			|||||||
 | 
					diff --git a/src/main/java/moviescraper/doctord/controller/amalgamation/AllAmalgamationOrderingPreferences.java b/src/main/java/moviescraper/doctord/controller/amalgamation/AllAmalgamationOrderingPreferences.java
 | 
				
			||||||
 | 
					index ac9cf4e..ce57ee3 100644
 | 
				
			||||||
 | 
					--- a/src/main/java/moviescraper/doctord/controller/amalgamation/AllAmalgamationOrderingPreferences.java
 | 
				
			||||||
 | 
					+++ b/src/main/java/moviescraper/doctord/controller/amalgamation/AllAmalgamationOrderingPreferences.java
 | 
				
			||||||
 | 
					@@ -29,7 +29,8 @@ import moviescraper.doctord.controller.siteparsingprofile.specific.TheMovieDatab
 | 
				
			||||||
 | 
					 public class AllAmalgamationOrderingPreferences {
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					 	Map<ScraperGroupName, ScraperGroupAmalgamationPreference> allAmalgamationOrderingPreferences;
 | 
				
			||||||
 | 
					-	private static final String settingsFileName = "AmalgamationSettings.json";
 | 
				
			||||||
 | 
					+	private final static String folderNameOfSettings = (System.getenv("XDG_CONFIG_HOME") != null ? System.getenv("XDG_CONFIG_HOME") : System.getenv("HOME")) + "/.config/JAVMovieSraper";
 | 
				
			||||||
 | 
					+	private static final String settingsFileName = folderNameOfSettings + "/AmalgamationSettings.json";
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					 	public AllAmalgamationOrderingPreferences() {
 | 
				
			||||||
 | 
					 		allAmalgamationOrderingPreferences = new Hashtable<>();
 | 
				
			||||||
 | 
					@@ -89,7 +90,9 @@ public class AllAmalgamationOrderingPreferences {
 | 
				
			||||||
 | 
					 	}
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					 	public void saveToPreferencesFile() {
 | 
				
			||||||
 | 
					-		try (FileOutputStream outputStream = new FileOutputStream(settingsFileName); JsonWriter jw = new JsonWriter(outputStream);) {
 | 
				
			||||||
 | 
					+		File f = new File(settingsFileName);
 | 
				
			||||||
 | 
					+		f.getParentFile().mkdirs();
 | 
				
			||||||
 | 
					+		try (FileOutputStream outputStream = new FileOutputStream(f); JsonWriter jw = new JsonWriter(outputStream);) {
 | 
				
			||||||
 | 
					 			jw.write(this);
 | 
				
			||||||
 | 
					 			System.out.println("Saved amalgamation preferences to " + settingsFileName);
 | 
				
			||||||
 | 
					 		} catch (IOException e1) {
 | 
				
			||||||
 | 
					diff --git a/src/main/java/moviescraper/doctord/model/preferences/Settings.java b/src/main/java/moviescraper/doctord/model/preferences/Settings.java
 | 
				
			||||||
 | 
					index 5810bf3..84fdde2 100644
 | 
				
			||||||
 | 
					--- a/src/main/java/moviescraper/doctord/model/preferences/Settings.java
 | 
				
			||||||
 | 
					+++ b/src/main/java/moviescraper/doctord/model/preferences/Settings.java
 | 
				
			||||||
 | 
					@@ -3,6 +3,7 @@ package moviescraper.doctord.model.preferences;
 | 
				
			||||||
 | 
					 import java.io.FileInputStream;
 | 
				
			||||||
 | 
					 import java.io.FileNotFoundException;
 | 
				
			||||||
 | 
					 import java.io.FileOutputStream;
 | 
				
			||||||
 | 
					+import java.io.File;
 | 
				
			||||||
 | 
					 import java.io.IOException;
 | 
				
			||||||
 | 
					 import java.util.InvalidPropertiesFormatException;
 | 
				
			||||||
 | 
					 import java.util.Properties;
 | 
				
			||||||
 | 
					@@ -10,7 +11,8 @@ import java.util.Properties;
 | 
				
			||||||
 | 
					 public class Settings {
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					 	private final static Properties programPreferences = new Properties();
 | 
				
			||||||
 | 
					-	private static final String fileNameOfPreferences = "settings.xml";
 | 
				
			||||||
 | 
					+	private final static String folderNameOfPreferences = (System.getenv("XDG_CONFIG_HOME") != null ? System.getenv("XDG_CONFIG_HOME") : System.getenv("HOME")) + "/.config/JAVMovieSraper";
 | 
				
			||||||
 | 
					+	private static final String fileNameOfPreferences = folderNameOfPreferences + "/settings.xml";
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					 	protected interface Key {
 | 
				
			||||||
 | 
					 		String getKey();
 | 
				
			||||||
 | 
					@@ -39,7 +41,9 @@ public class Settings {
 | 
				
			||||||
 | 
					 	}
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					 	public static void savePreferences() {
 | 
				
			||||||
 | 
					-		try (FileOutputStream settingsOutputStream = new FileOutputStream(fileNameOfPreferences);) {
 | 
				
			||||||
 | 
					+		File f = new File(fileNameOfPreferences);
 | 
				
			||||||
 | 
					+		f.getParentFile().mkdirs();
 | 
				
			||||||
 | 
					+		try (FileOutputStream settingsOutputStream = new FileOutputStream(f);) {
 | 
				
			||||||
 | 
					 			programPreferences.storeToXML(settingsOutputStream, "");
 | 
				
			||||||
 | 
					 		} catch (FileNotFoundException e) {
 | 
				
			||||||
 | 
					 			// TODO Auto-generated catch block
 | 
				
			||||||
 | 
					@@ -115,4 +119,4 @@ public class Settings {
 | 
				
			||||||
 | 
					 	public String toString() {
 | 
				
			||||||
 | 
					 		return programPreferences.toString();
 | 
				
			||||||
 | 
					 	}
 | 
				
			||||||
 | 
					-}
 | 
				
			||||||
 | 
					\ No newline at end of file
 | 
				
			||||||
 | 
					+}
 | 
				
			||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user