diff options
Diffstat (limited to 'pkgs/development/lisp-modules/from-quicklisp')
-rwxr-xr-x | pkgs/development/lisp-modules/from-quicklisp/barebones-quicklisp-expression.sh | 33 |
1 files changed, 30 insertions, 3 deletions
diff --git a/pkgs/development/lisp-modules/from-quicklisp/barebones-quicklisp-expression.sh b/pkgs/development/lisp-modules/from-quicklisp/barebones-quicklisp-expression.sh index a9e443b66354..5aaf7bc81e37 100755 --- a/pkgs/development/lisp-modules/from-quicklisp/barebones-quicklisp-expression.sh +++ b/pkgs/development/lisp-modules/from-quicklisp/barebones-quicklisp-expression.sh @@ -4,7 +4,11 @@ name="$1" [ -z "$NIX_LISP_PACKAGES_DEFINED_LIST" ] && export NIX_LISP_PACKAGES_DEFINED_LIST="$(mktemp)" -nix-instantiate "$(dirname "$0")"/../../../../ -A "lispPackages.$name" > /dev/null && exit +if [ -n "$NIX_LISP_UPDATE_PACKAGE" ] || [ -n "$NIX_LISP_UPDATE_PACKAGES" ]; then + export NIX_LISP_UPDATE_PACKAGE= +else + nix-instantiate "$(dirname "$0")"/../../../../ -A "lispPackages.$name" > /dev/null && exit +fi grep "^$name\$" "$NIX_LISP_PACKAGES_DEFINED_LIST" > /dev/null && exit echo "$name" >> "$NIX_LISP_PACKAGES_DEFINED_LIST" @@ -30,7 +34,7 @@ url="${ql_src##* }" [ "$ql_src_type" = "kmr-git" ] && { ql_src_type=git - url="http://git.b9.com/$url.git" + url="http://git.b9.com/$url.git" export NIX_PREFETCH_GIT_DEEP_CLONE=1 } @@ -93,6 +97,29 @@ url="${ql_src##* }" unset url } +[ "$ql_src_type" = clnet-darcs ] && { + ql_src_type=darcs + url="http://common-lisp.net/project/$url/darcs/$url/" +} + +[ "$ql_src_type" = darcs ] && { + fetcher="pkgs.fetchdarcs" + [ -z "$version" ] && + version="$(curl "$url/_darcs/inventory" | grep '\[TAG ' | tail -n 1 | sed -e 's/.* //')" + [ -z "$version" ] && + version="$(curl "$url/_darcs/hashed_inventory" | grep '\[TAG ' | tail -n 1 | sed -e 's/.* //')" + rev="$version"; + hash=$(echo " + with (import <nixpkgs> {}); + fetchdarcs { + url=''$url''; + rev=''$version''; + sha256=''0000000000000000000000000000000000000000000000000000000000000000''; + }" | nix-instantiate - | tail -n 1 | + xargs nix-store -r 2>&1 | tee /dev/stderr | grep 'instead has' | tail -n 1 | + sed -e 's/.* instead has .//;s/[^0-9a-z].*//') +} + [ "$ql_src_type" = froydware-http ] && { dirurl = "http://method-combination.net/lisp/files/"; url="$("$(dirname "$0")/../../../build-support/upstream-updater/urls-from-page.sh" "$dirurl" | grep "/$url_" | tail -n 1)" @@ -111,7 +138,7 @@ url="${ql_src##* }" hash="$(nix-prefetch-url "$url" | grep . | tail -n 1)" } -if [ "$ql_src" = '{"error":"Not Found"}' ]; then +if [ "$ql_src" = '{"error":"Not Found"}' ]; then echo "# $name: not found" else cat << EOF | grep -Ev '^[ ]+$' |