Skip to content

Instantly share code, notes, and snippets.

@haitlahcen
Last active November 28, 2018 14:17
Show Gist options
  • Select an option

  • Save haitlahcen/d163c24ef3cb9bcc5614e148e5b36079 to your computer and use it in GitHub Desktop.

Select an option

Save haitlahcen/d163c24ef3cb9bcc5614e148e5b36079 to your computer and use it in GitHub Desktop.
Nixify CLI made by node, run `nix-build && nix-shell -p nodejs-10_x --run "./result"`
{ pkgs ? import <nixpkgs> {} }: with pkgs;
let
clever-tools-src =
stdenv.mkDerivation rec {
name = "clever-tools-${version}";
version = "1.2.2-beta.0";
phases = [ "installPhase" ];
src = builtins.fetchurl {
url = "https://github.com/CleverCloud/clever-tools/archive/${version}.tar.gz";
sha256 = "050l15wmmy93l2dc4bsik0v298d1lvhi28ls68800g1jkif38029";
};
installPhase = ''
mkdir $out;
tar -xzf $src;
mv clever-tools-${version}/* $out;
'';
};
emmet-src =
stdenv.mkDerivation rec {
name = "emmet-cli-${version}";
version = "1.2.0";
phases = [ "installPhase" ];
src = builtins.fetchurl {
url = "https://github.com/Delapouite/emmet-cli/archive/v${version}.tar.gz";
sha256 = "1vq3c0i5cid2zs5j53v778wj0wdka57nny1jvsaa8adj26mjnw6f";
};
installPhase = ''
mkdir $out;
tar -xzf $src;
mv emmet-cli-${version}/* $out;
'';
};
nixifyAndInstallScript =
let
nixifyEntry =
{ src, args ? [] }: ''
pushd "$(mktemp -d)"
${nodePackages.node2nix}/bin/node2nix ${lib.concatStringsSep " " args} -i ${src}/package.json -l ${src}/package-lock.json
nix-env -iA package -f default.nix
popd
'';
in
drvs:
writeScript "nixify" (lib.concatStringsSep "" (map nixifyEntry drvs));
in
# nix-build && nix-shell -p nodejs-10_x --run "./result"
nixifyAndInstallScript [
{ src = emmet-src; }
{ src = clever-tools-src;
args = [ "--nodejs-10" ];
}
]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment