|
|
|
@ -1,4 +1,13 @@ |
|
|
|
|
{ stdenv, lib, fetchFromGitHub, nix, makeWrapper, coreutils, gnutar, gzip, bzip2 }: |
|
|
|
|
{ lib |
|
|
|
|
, stdenv |
|
|
|
|
, fetchFromGitHub |
|
|
|
|
, bzip2 |
|
|
|
|
, coreutils |
|
|
|
|
, gnutar |
|
|
|
|
, gzip |
|
|
|
|
, makeWrapper |
|
|
|
|
, nix |
|
|
|
|
}: |
|
|
|
|
|
|
|
|
|
stdenv.mkDerivation rec { |
|
|
|
|
pname = "nix-bundle"; |
|
|
|
@ -13,25 +22,40 @@ stdenv.mkDerivation rec { |
|
|
|
|
|
|
|
|
|
nativeBuildInputs = [ makeWrapper ]; |
|
|
|
|
|
|
|
|
|
# coreutils, gnutar is actually needed by nix for bootstrap |
|
|
|
|
buildInputs = [ nix coreutils gnutar gzip bzip2 ]; |
|
|
|
|
|
|
|
|
|
binPath = lib.makeBinPath [ nix coreutils gnutar gzip bzip2 ]; |
|
|
|
|
# coreutils, gnutar are needed by nix for bootstrap |
|
|
|
|
buildInputs = [ |
|
|
|
|
bzip2 |
|
|
|
|
coreutils |
|
|
|
|
gnutar |
|
|
|
|
gzip |
|
|
|
|
nix |
|
|
|
|
]; |
|
|
|
|
|
|
|
|
|
makeFlags = [ "PREFIX=$(out)" ]; |
|
|
|
|
|
|
|
|
|
postInstall = '' |
|
|
|
|
mkdir -p $out/bin |
|
|
|
|
makeWrapper $out/share/nix-bundle/nix-bundle.sh $out/bin/nix-bundle \ |
|
|
|
|
--prefix PATH : ${binPath} |
|
|
|
|
cp $out/share/nix-bundle/nix-run.sh $out/bin/nix-run |
|
|
|
|
--prefix PATH : ${lib.makeBinPath buildInputs} |
|
|
|
|
ln -s $out/share/nix-bundle/nix-run.sh $out/bin/nix-run |
|
|
|
|
''; |
|
|
|
|
|
|
|
|
|
meta = with lib; { |
|
|
|
|
maintainers = [ maintainers.matthewbauer ]; |
|
|
|
|
platforms = platforms.all; |
|
|
|
|
homepage = "https://github.com/matthewbauer/nix-bundle"; |
|
|
|
|
description = "Create bundles from Nixpkgs attributes"; |
|
|
|
|
longDescription = '' |
|
|
|
|
nix-bundle is a way to package Nix attributes into single-file |
|
|
|
|
executables. |
|
|
|
|
|
|
|
|
|
Benefits: |
|
|
|
|
- Single-file output |
|
|
|
|
- Can be run by non-root users |
|
|
|
|
- No runtime |
|
|
|
|
- Distro agnostic |
|
|
|
|
- No installation |
|
|
|
|
''; |
|
|
|
|
license = licenses.mit; |
|
|
|
|
homepage = "https://github.com/matthewbauer/nix-bundle"; |
|
|
|
|
maintainers = [ maintainers.matthewbauer ]; |
|
|
|
|
platforms = platforms.all; |
|
|
|
|
}; |
|
|
|
|
} |
|
|
|
|