[Nix-dev] reimplementation of nukeReferences - when to commit?

Marc Weber marco-oweber at gmx.de
Fri Nov 14 02:46:09 CET 2008


How much would have to be rebuild when using this reimplementation of
nukeReferences ?
It only replaces hashes beeing 32 characters long. That's why it's more
correct. also using "$@" is better than using $* because it doesn't
depend on IFS.. and $* doesn't handle filepaths containing spaces.

replacement:

        nukeReferences = writeTextFile {
          name = "nuke-references"; executable = true; destination = "/bin/nuke-refs";
          text = ''
              #! $SHELL -e
              exec sed -i 's|/nix/store/[a-z0-9]\{32\}-|/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-|g' "$@" '';
        };


is now:
  derivation running this builder.sh

      source $stdenv/setup

      ensureDir $out/bin
      cat > $out/bin/nuke-refs <<EOF
      #! $SHELL -e
      for i in \$*; do
          cat \$i | sed "s|/nix/store/[a-z0-9]*-|/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-|g" > \$i.tmp
          if test -x \$i; then chmod +x \$i.tmp; fi
          mv \$i.tmp \$i
      done
      EOF
      chmod +x $out/bin/nuke-refs

Marc Weber



More information about the nix-dev mailing list