updated flake. nix package now includes completions
This commit is contained in:
109
flake.nix
109
flake.nix
@@ -12,29 +12,71 @@
|
||||
nixpkgs,
|
||||
systems,
|
||||
naersk,
|
||||
self,
|
||||
...
|
||||
}:
|
||||
let
|
||||
eachSystem = f: nixpkgs.lib.genAttrs (import systems) (system: f nixpkgs.legacyPackages.${system});
|
||||
build_asciidoctor_revealjs = pkgs: pkgs.buildRubyGem {
|
||||
gemName = "asciidoctor-revealjs";
|
||||
version = "5.2.0";
|
||||
source = {
|
||||
type = "git";
|
||||
url = "https://rubygems.org/downloads/asciidoctor-revealjs-5.2.0.gem";
|
||||
sha256 = "sha256-NQSl5+ryyR3jf5YYkxT/sea/lNrZ1kbVyaJMZpG/auI=";
|
||||
build_asciidoctor_revealjs =
|
||||
pkgs:
|
||||
pkgs.buildRubyGem {
|
||||
gemName = "asciidoctor-revealjs";
|
||||
version = "5.2.0";
|
||||
source = {
|
||||
type = "git";
|
||||
url = "https://rubygems.org/downloads/asciidoctor-revealjs-5.2.0.gem";
|
||||
sha256 = "sha256-NQSl5+ryyR3jf5YYkxT/sea/lNrZ1kbVyaJMZpG/auI=";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
build_asciidoctor = pkgs: pkgs.buildRubyGem {
|
||||
gemName = "asciidoctor";
|
||||
version = "2.0.25";
|
||||
source = {
|
||||
type = "git";
|
||||
url = "https://rubygems.org/downloads/asciidoctor-2.0.25.gem";
|
||||
sha256 = "sha256-sG/oIrCRDU4l6g9WL+z8eUjpRuIi79lJSEnSfaQmfRk=";
|
||||
build_asciidoctor =
|
||||
pkgs:
|
||||
pkgs.buildRubyGem {
|
||||
gemName = "asciidoctor";
|
||||
version = "2.0.25";
|
||||
source = {
|
||||
type = "git";
|
||||
url = "https://rubygems.org/downloads/asciidoctor-2.0.25.gem";
|
||||
sha256 = "sha256-sG/oIrCRDU4l6g9WL+z8eUjpRuIi79lJSEnSfaQmfRk=";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
build_docki =
|
||||
{ naerskLib, pkgs }:
|
||||
let
|
||||
runtimeDeps = with pkgs; [
|
||||
(ruby.withPackages (
|
||||
p: with p; [
|
||||
(build_asciidoctor_revealjs pkgs)
|
||||
(build_asciidoctor pkgs)
|
||||
bundler
|
||||
]
|
||||
))
|
||||
];
|
||||
in
|
||||
naerskLib.buildPackage {
|
||||
src = ./.;
|
||||
buildInputs = [
|
||||
];
|
||||
nativeBuildInputs = with pkgs; [
|
||||
pkg-config
|
||||
openssl.dev
|
||||
libiconv
|
||||
makeWrapper
|
||||
];
|
||||
postInstall = ''
|
||||
mkdir -p $out/share/bash-completion/completions
|
||||
mkdir -p $out/share/zsh/site-functions
|
||||
mkdir -p $out/share/fish/vendor_completions.d
|
||||
|
||||
$out/bin/docki completions bash > $out/share/bash-completion/completions/docki
|
||||
$out/bin/docki completions zsh > $out/share/zsh/site-functions/_docki
|
||||
$out/bin/docki completions fish > $out/share/fish/vendor_completions.d/docki.fish
|
||||
|
||||
wrapProgram $out/bin/docki --prefix PATH : ${pkgs.lib.makeBinPath runtimeDeps}
|
||||
'';
|
||||
};
|
||||
|
||||
in
|
||||
{
|
||||
devShells = eachSystem (pkgs: {
|
||||
@@ -56,36 +98,27 @@
|
||||
))
|
||||
];
|
||||
};
|
||||
|
||||
preview = pkgs.mkShell {
|
||||
name = "docki-preview";
|
||||
buildInputs = [
|
||||
pkgs.zsh
|
||||
pkgs.fish
|
||||
pkgs.bash
|
||||
self.packages.${pkgs.system}.default
|
||||
];
|
||||
};
|
||||
});
|
||||
|
||||
packages = eachSystem (
|
||||
pkgs:
|
||||
let
|
||||
naerskLib = pkgs.callPackage naersk { };
|
||||
runtimeDeps = with pkgs; [
|
||||
(ruby.withPackages (
|
||||
p: with p; [
|
||||
(build_asciidoctor_revealjs pkgs)
|
||||
(build_asciidoctor pkgs)
|
||||
bundler
|
||||
]
|
||||
))
|
||||
];
|
||||
in
|
||||
{
|
||||
default = naerskLib.buildPackage {
|
||||
src = ./.;
|
||||
buildInputs =[
|
||||
];
|
||||
nativeBuildInputs = with pkgs; [
|
||||
pkg-config
|
||||
openssl.dev
|
||||
libiconv
|
||||
makeWrapper
|
||||
];
|
||||
postInstall = ''
|
||||
wrapProgram $out/bin/docki --prefix PATH : ${pkgs.lib.makeBinPath runtimeDeps}
|
||||
'';
|
||||
default = build_docki {
|
||||
naerskLib = naerskLib;
|
||||
pkgs = pkgs;
|
||||
};
|
||||
}
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user