pkgs: add comma

This commit is contained in:
Bruno BELANYI 2021-05-13 09:52:50 +02:00
parent 76148d75b8
commit e5fdfd6c44
3 changed files with 77 additions and 0 deletions

33
pkgs/comma/comma Executable file
View file

@ -0,0 +1,33 @@
#!/usr/bin/env bash
set -euo pipefail
print_err() {
printf "%s\n" "$1" >&2
}
usage() {
print_err "Usage: , <program> [argument]..."
}
find_program() {
local CANDIDATE
CANDIDATE="$(nix-locate --top-level --minimal --at-root --whole-name "/bin/$1")"
if [ "$(printf '%s\n' "$CANDIDATE" | wc -l)" -gt 1 ]; then
CANDIDATE="$(printf '%s' "$CANDIDATE" | fzf-tmux)"
fi
printf '%s' "$CANDIDATE"
}
if [ $# -lt 1 ]; then
usage
exit 1
fi
PROGRAM="$(find_program "$1")"
if [ -z "$PROGRAM" ]; then
print_err "No match found for $1"
exit 1
fi
nix shell "nixpkgs#$PROGRAM" -c "$@"

42
pkgs/comma/default.nix Normal file
View file

@ -0,0 +1,42 @@
{ fzf, lib, makeWrapper, nix-index, shellcheck, stdenvNoCC }:
stdenvNoCC.mkDerivation rec {
pname = "comma";
version = "0.1.0";
src = ./. + "/comma";
phases = [ "buildPhase" "installPhase" "fixupPhase" ];
buildInputs = [
makeWrapper
shellcheck
];
buildPhase = ''
shellcheck $src
'';
installPhase = ''
mkdir -p $out/bin
cp $src $out/bin/${meta.mainProgram}
chmod a+x $out/bin/${meta.mainProgram}
'';
wrapperPath = lib.makeBinPath [
fzf
nix-index
];
fixupPhase = ''
patchShebangs $out/bin/${meta.mainProgram}
wrapProgram $out/bin/${meta.mainProgram} --prefix PATH : "${wrapperPath}"
'';
meta = with lib; {
mainProgram = ",";
description = "A simple script inspired by Shopify's comma, for modern Nix";
homepage = "https://gitea.belanyi.fr/ambroisie/nix-config";
license = with licenses; [ mit ];
platforms = platforms.unix;
};
}

View file

@ -1,5 +1,7 @@
{ pkgs }: { pkgs }:
rec { rec {
comma = pkgs.callPackage ./comma { };
diff-flake = pkgs.callPackage ./diff-flake { }; diff-flake = pkgs.callPackage ./diff-flake { };
havm = pkgs.callPackage ./havm { }; havm = pkgs.callPackage ./havm { };