diff --git a/doc/stdenv.xml b/doc/stdenv.xml
index 99c5d30c2db..b075e0219a5 100644
--- a/doc/stdenv.xml
+++ b/doc/stdenv.xml
@@ -1191,35 +1191,31 @@ echo @foo@
file.
-
-
- baseHash
- path
- suffix
-
- Strips the directory and hash part of a store
- path, storing the name part in the environment variable
- strippedName. If suffix is also
- provided, the suffix will also be removed. For example:
-
-
-baseHash "/nix/store/9s9r019176g7cvn2nvcw41gsp862y6b4-coreutils-8.24"
-# prints coreutils-8.24
-
-
-
-baseHash "/nix/store/0016702zbydafsr20n9l1dcw7x2bf6jj-arraysugar-0.1.0.gem" .gem
-# prints arraysugar-0.1.0
-
-
-
-
stripHash
path
- Deprecated. Use baseHash instead.
+ Strips the directory and hash part of a store
+ path, storing the name part in the environment variable
+ strippedName. For example:
+
+
+stripHash "/nix/store/9s9r019176g7cvn2nvcw41gsp862y6b4-coreutils-8.24"
+# prints coreutils-8.24
+echo $strippedName
+
+
+ If you wish to store the result in another variable, then the
+ following idiom may be useful:
+
+
+name="/nix/store/9s9r019176g7cvn2nvcw41gsp862y6b4-coreutils-8.24"
+someVar=$(stripHash $name; echo $strippedName)
+
+
+
+
diff --git a/nixos/modules/services/networking/ircd-hybrid/builder.sh b/nixos/modules/services/networking/ircd-hybrid/builder.sh
index 489aa1ca9fb..f2c92878a4d 100644
--- a/nixos/modules/services/networking/ircd-hybrid/builder.sh
+++ b/nixos/modules/services/networking/ircd-hybrid/builder.sh
@@ -12,7 +12,7 @@ for i in $scripts; do
if test "$(echo $i | cut -c1-2)" = "=>"; then
subDir=$(echo $i | cut -c3-)
else
- dst=$out/$subDir/$(baseHash $i | sed 's/\.in//')
+ dst=$out/$subDir/$((stripHash $i; echo $strippedName) | sed 's/\.in//')
doSub $i $dst
chmod +x $dst # !!!
fi
@@ -23,7 +23,7 @@ for i in $substFiles; do
if test "$(echo $i | cut -c1-2)" = "=>"; then
subDir=$(echo $i | cut -c3-)
else
- dst=$out/$subDir/$(baseHash $i | sed 's/\.in//')
+ dst=$out/$subDir/$((stripHash $i; echo $strippedName) | sed 's/\.in//')
doSub $i $dst
fi
done
diff --git a/pkgs/build-support/vm/default.nix b/pkgs/build-support/vm/default.nix
index 3753668bcbf..82cb72cb67e 100644
--- a/pkgs/build-support/vm/default.nix
+++ b/pkgs/build-support/vm/default.nix
@@ -531,7 +531,8 @@ rec {
# Hacky: RPM looks for .spec inside the tarball, so
# strip off the hash.
- srcName=$(baseHash "$src")
+ stripHash "$src"
+ srcName="$strippedName"
cp "$src" "$srcName" # `ln' doesn't work always work: RPM requires that the file is owned by root
export HOME=/tmp/home
diff --git a/pkgs/data/fonts/droid/default.nix b/pkgs/data/fonts/droid/default.nix
index f78c8240809..784dfe71007 100644
--- a/pkgs/data/fonts/droid/default.nix
+++ b/pkgs/data/fonts/droid/default.nix
@@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
sourceRoot = "./";
unpackCmd = ''
- ttfName=$(baseHash $curSrc)
+ ttfName=$(basename $(stripHash $curSrc; echo $strippedName))
cp $curSrc ./$ttfName
'';
diff --git a/pkgs/data/sgml+xml/schemas/xml-dtd/docbook-ebnf/builder.sh b/pkgs/data/sgml+xml/schemas/xml-dtd/docbook-ebnf/builder.sh
index 5504c9f3299..70fd729297c 100644
--- a/pkgs/data/sgml+xml/schemas/xml-dtd/docbook-ebnf/builder.sh
+++ b/pkgs/data/sgml+xml/schemas/xml-dtd/docbook-ebnf/builder.sh
@@ -3,4 +3,5 @@ source $stdenv/setup
mkdir -p $out/xml/dtd/docbook-ebnf
cd $out/xml/dtd/docbook-ebnf
cp -p $dtd dbebnf.dtd
-cp -p $catalog $(baseHash $catalog)
+stripHash $catalog
+cp -p $catalog $strippedName
diff --git a/pkgs/stdenv/generic/setup.sh b/pkgs/stdenv/generic/setup.sh
index 88300db35bc..85e74461d2a 100644
--- a/pkgs/stdenv/generic/setup.sh
+++ b/pkgs/stdenv/generic/setup.sh
@@ -484,7 +484,8 @@ dumpVars() {
}
-# DEPRECATED, use baseHash - 2016-06-23
+# Utility function: return the base name of the given path, with the
+# prefix `HASH-' removed, if present.
stripHash() {
strippedName=$(basename $1);
if echo "$strippedName" | grep -q '^[a-z0-9]\{32\}-'; then
@@ -492,14 +493,6 @@ stripHash() {
fi
}
-# Print NAME with any leading directory components and hash removed.
-# If specified, also remove a trailing SUFFIX.
-#
-# Usage: baseHash NAME [SUFFIX]
-# Usage: baseName -a [-s SUFFIX] NAME...
-baseHash() {
- basename "$@" | sed -s 's/^[a-z0-9]\{32\}-//g'
-}
unpackCmdHooks+=(_defaultUnpack)
_defaultUnpack() {
diff --git a/pkgs/tools/typesetting/tex/nix/animatedot.sh b/pkgs/tools/typesetting/tex/nix/animatedot.sh
index 1b5b2ce5079..46a2c515e03 100644
--- a/pkgs/tools/typesetting/tex/nix/animatedot.sh
+++ b/pkgs/tools/typesetting/tex/nix/animatedot.sh
@@ -4,6 +4,6 @@ mkdir -p $out
for ((i = 1; i <= $nrFrames; i++)); do
echo "producing frame $i...";
- targetName=$out/$(baseHash $dotGraph .dot)-f-$i.dot
+ targetName=$out/$(basename $(stripHash $dotGraph; echo $strippedName) .dot)-f-$i.dot
cpp -DFRAME=$i < $dotGraph > $targetName
done
diff --git a/pkgs/tools/typesetting/tex/nix/default.nix b/pkgs/tools/typesetting/tex/nix/default.nix
index 0d68f1e85f1..ce5c025475a 100644
--- a/pkgs/tools/typesetting/tex/nix/default.nix
+++ b/pkgs/tools/typesetting/tex/nix/default.nix
@@ -185,7 +185,7 @@ rec {
if test -d $postscript; then
input=$(ls $postscript/*.ps)
else
- input=$(baseHash $postscript)
+ input=$(stripHash $postscript; echo $strippedName)
ln -s $postscript $input
fi
diff --git a/pkgs/tools/typesetting/tex/nix/dot2pdf.sh b/pkgs/tools/typesetting/tex/nix/dot2pdf.sh
index 93ea9099ad1..c416bf235a1 100644
--- a/pkgs/tools/typesetting/tex/nix/dot2pdf.sh
+++ b/pkgs/tools/typesetting/tex/nix/dot2pdf.sh
@@ -4,7 +4,7 @@ mkdir -p $out
dot2pdf() {
sourceFile=$1
- targetName=$out/$(baseHash $sourceFile .dot).pdf
+ targetName=$out/$(basename $(stripHash $sourceFile; echo $strippedName) .dot).pdf
echo "converting $sourceFile to $targetName..."
export FONTCONFIG_FILE=$fontsConf
dot -Tpdf $sourceFile > $targetName
diff --git a/pkgs/tools/typesetting/tex/nix/dot2ps.sh b/pkgs/tools/typesetting/tex/nix/dot2ps.sh
index 81debb09228..c70e76ce4c7 100644
--- a/pkgs/tools/typesetting/tex/nix/dot2ps.sh
+++ b/pkgs/tools/typesetting/tex/nix/dot2ps.sh
@@ -4,7 +4,7 @@ mkdir -p $out
dot2ps() {
sourceFile=$1
- targetName=$out/$(baseHash $sourceFile .dot).ps
+ targetName=$out/$(basename $(stripHash $sourceFile; echo $strippedName) .dot).ps
echo "converting $sourceFile to $targetName..."
dot -Tps $sourceFile > $targetName
}
diff --git a/pkgs/tools/typesetting/tex/nix/lhs2tex.sh b/pkgs/tools/typesetting/tex/nix/lhs2tex.sh
index 789d100959b..f34b3944c8e 100644
--- a/pkgs/tools/typesetting/tex/nix/lhs2tex.sh
+++ b/pkgs/tools/typesetting/tex/nix/lhs2tex.sh
@@ -10,7 +10,7 @@ cd $startDir
lhstex() {
sourceFile=$1
- targetName=$out/$(baseHash $sourceFile .lhs).tex
+ targetName=$out/$(basename $(stripHash $sourceFile; echo $strippedName) .lhs).tex
echo "converting $sourceFile to $targetName..."
lhs2TeX -o "$targetName" $flags "$sourceFile"
}
diff --git a/pkgs/tools/typesetting/tex/nix/run-latex.sh b/pkgs/tools/typesetting/tex/nix/run-latex.sh
index 97079c476fb..fa27520d11c 100644
--- a/pkgs/tools/typesetting/tex/nix/run-latex.sh
+++ b/pkgs/tools/typesetting/tex/nix/run-latex.sh
@@ -16,11 +16,11 @@ for i in $extraFiles; do
if test -d $i; then
ln -s $i/* .
else
- ln -s $i $(baseHash $i)
+ ln -s $i $(stripHash $i; echo $strippedName)
fi
done
-rootName=$(baseHash "$rootFile")
+rootName=$(basename $(stripHash "$rootFile"; echo $strippedName))
rootNameBase=$(echo "$rootName" | sed 's/\..*//')