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 { };
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
'';
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -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 {
|
File diff suppressed because it is too large
Load Diff
|
@ -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;
|
||||||
|
})
|
|
@ -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…
Reference in New Issue