Revert "fetchzip, fetchgit: cleanup handling of optional features and whitespace"
This commit is contained in:
@@ -5,46 +5,47 @@
|
||||
# (e.g. due to minor changes in the compression algorithm, or changes
|
||||
# in timestamps).
|
||||
|
||||
{ lib, fetchurl, unzip }:
|
||||
{ fetchurl, unzip }:
|
||||
|
||||
{ name ? "source"
|
||||
{ # Optionally move the contents of the unpacked tree up one level.
|
||||
stripRoot ? true
|
||||
, url
|
||||
# Optionally move the contents of the unpacked tree up one level.
|
||||
, stripRoot ? true
|
||||
, extraPostFetch ? ""
|
||||
, name ? "source"
|
||||
, ... } @ args:
|
||||
|
||||
(fetchurl ({
|
||||
inherit name;
|
||||
|
||||
recursiveHash = true;
|
||||
|
||||
downloadToTemp = true;
|
||||
|
||||
postFetch = ''
|
||||
unpackDir="$TMPDIR/unpack"
|
||||
mkdir "$unpackDir"
|
||||
cd "$unpackDir"
|
||||
|
||||
renamed="$TMPDIR/${baseNameOf url}"
|
||||
mv "$downloadedFile" "$renamed"
|
||||
unpackFile "$renamed"
|
||||
result=$unpackDir
|
||||
''
|
||||
# Most src disted tarballs have a parent directory like foo-1.2.3/ to strip
|
||||
+ lib.optionalString stripRoot ''
|
||||
if [ $(ls "$unpackDir" | wc -l) != 1 ]; then
|
||||
echo "error: zip file must contain a single file or directory."
|
||||
echo "hint: Pass stripRoot=false; to fetchzip to assume flat list of files."
|
||||
exit 1
|
||||
fi
|
||||
fn=$(cd "$unpackDir" && echo *)
|
||||
result="$unpackDir/$fn"
|
||||
'' + ''
|
||||
mkdir $out
|
||||
mv "$result" "$out"
|
||||
''
|
||||
+ extraPostFetch;
|
||||
postFetch =
|
||||
''
|
||||
unpackDir="$TMPDIR/unpack"
|
||||
mkdir "$unpackDir"
|
||||
cd "$unpackDir"
|
||||
|
||||
renamed="$TMPDIR/${baseNameOf url}"
|
||||
mv "$downloadedFile" "$renamed"
|
||||
unpackFile "$renamed"
|
||||
''
|
||||
+ (if stripRoot then ''
|
||||
if [ $(ls "$unpackDir" | wc -l) != 1 ]; then
|
||||
echo "error: zip file must contain a single file or directory."
|
||||
echo "hint: Pass stripRoot=false; to fetchzip to assume flat list of files."
|
||||
exit 1
|
||||
fi
|
||||
fn=$(cd "$unpackDir" && echo *)
|
||||
if [ -f "$unpackDir/$fn" ]; then
|
||||
mkdir $out
|
||||
fi
|
||||
mv "$unpackDir/$fn" "$out"
|
||||
'' else ''
|
||||
mv "$unpackDir" "$out"
|
||||
'') #*/
|
||||
+ extraPostFetch;
|
||||
} // removeAttrs args [ "stripRoot" "extraPostFetch" ])).overrideAttrs (x: {
|
||||
# Hackety-hack: we actually need unzip hooks, too
|
||||
nativeBuildInputs = x.nativeBuildInputs ++ [ unzip ];
|
||||
|
||||
Reference in New Issue
Block a user