nixpkgs/pkgs/tools/package-management/nixRepositoryManager/default.nix
Marc Weber 328da81b30 - fetchdarcs supports now partial
- fetchdarcs_2pre added
- flapjax added
- no longer used : annotatedDerivations
- added bleeding edge repos with a tiny nix repository manager which dowloads and
  updates repostiries, then creates tar.gz dist files which are used by bleeding_edge_source
  (darcs tested only by now)
- added experimental my_environment with example

svn path=/nixpkgs/branches/stdenv-updates/; revision=10973
2008-03-06 01:58:13 +00:00

43 lines
1.4 KiB
Nix

args: with args; with lib;
let
repoDir = builtins.getEnv "HOME" + "/managed_repos";
toConfigLine = name : set :
"[(\"name\",\"${name}\")," + ( concatStringsSep "," (map (a: "(\"${a}\",\"${__getAttr a set}\")" ) (__attrNames set)))+"]";
config = writeText "nix_repository_manager_config"
(repoDir+"\n" +
concatStringsSep "\n" (mapRecordFlatten toConfigLine bleeding_edge_repos));
in
args.stdenv.mkDerivation {
inherit repoDir; # amend repoDir so that you know which one to take when installing bleeding edge packages
name = "nix_repository_manager";
#src = args.fetchdarcs {
# url = http://mawercer.de/~marc/repos/nix_repository_manager;
# md5 = "b33ba7a5b756eda00a79ba34505ea7ee";
#};
source = /pr/haskell/nix_repository_manager/nix_repository_manager.hs;
phases = "buildPhase";
buildPhase = "
s=\$out/share/nix_repository_manager
ensureDir \$out/bin \$s
#ghc --make nix_repository_manager.hs -o \$s/nix_repository_manager
ghc --make \$source -o \$s/nix_repository_manager
b=\$out/bin/nix_repository_manager
echo -e \"#!/bin/sh\\n\$s/nix_repository_manager --config ${config} \\\$@\" > \$b
chmod +x \$b
";
buildInputs = [ghc];
meta = {
description = "makes it easy to keep some packages up to date";
homepage = http://mawercer.de/repos/nix_repository_manager;
license = "do with it what you want";
};
}