diff options
author | Alyssa Ross <hi@alyssa.is> | 2019-02-25 18:26:39 +0000 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2019-02-25 18:26:39 +0000 |
commit | 6f3cd4b6093b45253c92c715b2744858cf71d6a8 (patch) | |
tree | f0c65c9f8faffa6088da051e4615d1029d41e24c | |
parent | 0da874d0017790baa83771089a1c7a4642104c3c (diff) | |
download | nixlib-6f3cd4b6093b45253c92c715b2744858cf71d6a8.tar nixlib-6f3cd4b6093b45253c92c715b2744858cf71d6a8.tar.gz nixlib-6f3cd4b6093b45253c92c715b2744858cf71d6a8.tar.bz2 nixlib-6f3cd4b6093b45253c92c715b2744858cf71d6a8.tar.lz nixlib-6f3cd4b6093b45253c92c715b2744858cf71d6a8.tar.xz nixlib-6f3cd4b6093b45253c92c715b2744858cf71d6a8.tar.zst nixlib-6f3cd4b6093b45253c92c715b2744858cf71d6a8.zip |
choose: init
-rw-r--r-- | nixpkgs-overlays/scripts/choose/choose.in | 20 | ||||
-rw-r--r-- | nixpkgs-overlays/scripts/choose/choosebin.in | 17 | ||||
-rw-r--r-- | nixpkgs-overlays/scripts/choose/default.nix | 8 | ||||
-rw-r--r-- | nixpkgs-overlays/scripts/default.nix | 3 |
4 files changed, 48 insertions, 0 deletions
diff --git a/nixpkgs-overlays/scripts/choose/choose.in b/nixpkgs-overlays/scripts/choose/choose.in new file mode 100644 index 000000000000..7f60b47386a3 --- /dev/null +++ b/nixpkgs-overlays/scripts/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/nixpkgs-overlays/scripts/choose/choosebin.in b/nixpkgs-overlays/scripts/choose/choosebin.in new file mode 100644 index 000000000000..7f8ea520c994 --- /dev/null +++ b/nixpkgs-overlays/scripts/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/nixpkgs-overlays/scripts/choose/default.nix b/nixpkgs-overlays/scripts/choose/default.nix new file mode 100644 index 000000000000..1091c84b647f --- /dev/null +++ b/nixpkgs-overlays/scripts/choose/default.nix @@ -0,0 +1,8 @@ +{ runCommand, makeWrapper, execline, fzf }: + +in 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/nixpkgs-overlays/scripts/default.nix b/nixpkgs-overlays/scripts/default.nix new file mode 100644 index 000000000000..983d32d867a4 --- /dev/null +++ b/nixpkgs-overlays/scripts/default.nix @@ -0,0 +1,3 @@ +self: super: { + choose = self.callPackage ./choose { }; +} |