43 lines
1.4 KiB
Nix
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";
|
|
};
|
|
}
|