about summary refs log tree commit diff
path: root/overlays/personal
diff options
context:
space:
mode:
Diffstat (limited to 'overlays/personal')
-rw-r--r--overlays/personal/choose/choose.in20
-rw-r--r--overlays/personal/choose/choosebin.in17
-rw-r--r--overlays/personal/choose/default.nix8
-rw-r--r--overlays/personal/default.nix5
-rw-r--r--overlays/personal/pr-tracker/default.nix32
5 files changed, 82 insertions, 0 deletions
diff --git a/overlays/personal/choose/choose.in b/overlays/personal/choose/choose.in
new file mode 100644
index 000000000000..7f60b47386a3
--- /dev/null
+++ b/overlays/personal/choose/choose.in
@@ -0,0 +1,20 @@
+#! @execline@/bin/execlineb -S0
+
+define -s fzf_opts "--reverse"
+
+ifelse { importas -i _ DISPLAY }
+{
+  alacritty --class float -e
+  getpid my_pid
+  importas -i -u my_pid my_pid
+  backtick -i -n term_pid { awk "{print $4}" /proc/${my_pid}/stat }
+  importas -i -u term_pid term_pid
+  redirfd -r 0 /proc/${term_pid}/fd/0
+  redirfd -w 1 /proc/${term_pid}/fd/1
+  @fzf@/bin/fzf $fzf_opts $@
+}
+
+ifelse { importas -i _ TMUX }
+{ @fzf@/bin/fzf-tmux $fzf_opts $@ }
+
+@fzf@/bin/fzf $fzf_opts $@
diff --git a/overlays/personal/choose/choosebin.in b/overlays/personal/choose/choosebin.in
new file mode 100644
index 000000000000..7f8ea520c994
--- /dev/null
+++ b/overlays/personal/choose/choosebin.in
@@ -0,0 +1,17 @@
+#! @execline@/bin/execlineb -S0
+
+backtick -i entry_points {
+  importas PATH PATH
+  heredoc 0 $PATH
+  tr : " "
+}
+importas -s -i -u entry_points entry_points
+
+pipeline {
+  redirfd -w 2 /dev/null
+  find -L $entry_points -mindepth 1 -maxdepth 1 -executable -type f
+}
+
+pipeline { awk -F / "{print $NF}" }
+
+@out@/bin/choose --prompt "$ " $@
diff --git a/overlays/personal/choose/default.nix b/overlays/personal/choose/default.nix
new file mode 100644
index 000000000000..d4e845f8b967
--- /dev/null
+++ b/overlays/personal/choose/default.nix
@@ -0,0 +1,8 @@
+{ runCommand, makeWrapper, execline, fzf }:
+
+runCommand "choose" { inherit execline fzf; } ''
+  install -d $out/bin
+  substituteAll ${./choose.in} $out/bin/choose
+  substituteAll ${./choosebin.in} $out/bin/choosebin
+  chmod +x $out/bin/*
+''
diff --git a/overlays/personal/default.nix b/overlays/personal/default.nix
new file mode 100644
index 000000000000..9cb1371925aa
--- /dev/null
+++ b/overlays/personal/default.nix
@@ -0,0 +1,5 @@
+self: super: {
+  choose = self.callPackage ./choose { };
+
+  pr-tracker = self.callPackage ./pr-tracker { };
+}
diff --git a/overlays/personal/pr-tracker/default.nix b/overlays/personal/pr-tracker/default.nix
new file mode 100644
index 000000000000..ba8c05f06706
--- /dev/null
+++ b/overlays/personal/pr-tracker/default.nix
@@ -0,0 +1,32 @@
+{ lib, rustPlatform, fetchurl, makeWrapper, pkg-config
+, openssl, systemd, gitMinimal
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "pr-tracker";
+  version = "1.0.0";
+
+  src = fetchurl {
+    url = "https://git.qyliss.net/pr-tracker/snapshot/pr-tracker-${version}.tar.xz";
+    sha256 = "0faj2ir0m4cs6y10xkqc9xvrqkv9w2j4z4yhv354dbfchsg127jk";
+  };
+
+  cargoSha256 = "0kgs5h7h30481h67lgxv38px736293jwnmasvzah170sy94q012a";
+
+  nativeBuildInputs = [ makeWrapper pkg-config ];
+  buildInputs = [ openssl systemd ];
+  strictDeps = true;
+
+  postInstall = ''
+    wrapProgram $out/bin/pr-tracker \
+        --prefix PATH : ${lib.makeBinPath [ gitMinimal ]}
+  '';
+
+  meta = with lib; {
+    homepage = "https://git.qyliss.net/pr-tracker/about/";
+    description = "Nixpkgs pull request channel tracker";
+    maintainers = with maintainers; [ qyliss ];
+    license = licenses.agpl3Plus; # with linking exception for OpenSSL
+    platforms = platforms.unix;
+  };
+}