summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
authorPeter Hoeg <peter@hoeg.com>2018-02-04 21:31:39 +0800
committerPeter Hoeg <peter@hoeg.com>2018-02-12 22:28:06 +0800
commit126cc690ac291e2290f3e151866b2bc37c178c8d (patch)
tree9ff1d3753a6fe5a348f618134786f961323b9166 /pkgs
parent646abe9b29ee7900c7942a25125861c4291db4eb (diff)
downloadnixlib-126cc690ac291e2290f3e151866b2bc37c178c8d.tar
nixlib-126cc690ac291e2290f3e151866b2bc37c178c8d.tar.gz
nixlib-126cc690ac291e2290f3e151866b2bc37c178c8d.tar.bz2
nixlib-126cc690ac291e2290f3e151866b2bc37c178c8d.tar.lz
nixlib-126cc690ac291e2290f3e151866b2bc37c178c8d.tar.xz
nixlib-126cc690ac291e2290f3e151866b2bc37c178c8d.tar.zst
nixlib-126cc690ac291e2290f3e151866b2bc37c178c8d.zip
build-support gogUnpackHook: support for unpacking games from gog.com
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/build-support/setup-hooks/gog-unpack.sh11
-rw-r--r--pkgs/top-level/all-packages.nix5
2 files changed, 16 insertions, 0 deletions
diff --git a/pkgs/build-support/setup-hooks/gog-unpack.sh b/pkgs/build-support/setup-hooks/gog-unpack.sh
new file mode 100644
index 000000000000..559b543fadfc
--- /dev/null
+++ b/pkgs/build-support/setup-hooks/gog-unpack.sh
@@ -0,0 +1,11 @@
+unpackPhase="unpackGog"
+
+unpackGog() {
+    runHook preUnpackGog
+
+    innoextract --silent --extract --exclude-temp "${src}"
+
+    find . -depth -print -execdir rename -f 'y/A-Z/a-z/' '{}' \;
+
+    runHook postUnpackGog
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 934c7388bccb..74969c98b4df 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -92,6 +92,11 @@ with pkgs;
     { substitutions = { gnu_config = gnu-config;}; }
     ../build-support/setup-hooks/update-autotools-gnu-config-scripts.sh;
 
+  gogUnpackHook = makeSetupHook {
+    name = "gog-unpack-hook";
+    deps = [ innoextract file-rename ]; }
+    ../build-support/setup-hooks/gog-unpack.sh;
+
   buildEnv = callPackage ../build-support/buildenv { }; # not actually a package
 
   buildFHSUserEnv = callPackage ../build-support/build-fhs-userenv { };