nixpkgs/pkgs/tools/package-management/nixRepositoryManager/default.nix

43 lines
1.4 KiB
Nix
Raw Normal View History

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";
};
}