mirror of
https://github.com/kmein/niveum
synced 2026-03-22 12:51:08 +01:00
feat(script): wrapper function
This commit is contained in:
@@ -110,7 +110,7 @@
|
|||||||
scripts.literature-quote
|
scripts.literature-quote
|
||||||
scripts.nav # json navigation
|
scripts.nav # json navigation
|
||||||
scripts.n
|
scripts.n
|
||||||
scripts.vf
|
scripts.notetags
|
||||||
scripts.vg
|
scripts.vg
|
||||||
scripts.emoji-menu
|
scripts.emoji-menu
|
||||||
scripts.fkill
|
scripts.fkill
|
||||||
|
|||||||
@@ -1,7 +1,9 @@
|
|||||||
{ pkgs, lib, ... }:
|
{ pkgs, lib, ... }:
|
||||||
let
|
let
|
||||||
inherit (lib.strings) makeBinPath;
|
wrapScript = { packages ? [], name, script }: pkgs.writers.writeDashBin name ''
|
||||||
makeScript = { binPath ? [], name, src }: pkgs.writeScriptBin name (builtins.readFile src);
|
PATH=${lib.makeBinPath (packages ++ [pkgs.coreutils pkgs.findutils])}
|
||||||
|
${script} "$@"
|
||||||
|
'';
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
# https://github.com/LukeSmithxyz/voidrice/blob/9fe6802122f6e0392c7fe20eefd30437771d7f8e/.local/bin/dmenuunicode
|
# https://github.com/LukeSmithxyz/voidrice/blob/9fe6802122f6e0392c7fe20eefd30437771d7f8e/.local/bin/dmenuunicode
|
||||||
@@ -11,7 +13,7 @@ in
|
|||||||
sha256 = "09m2rgb9d5jpiy8q4jz3dw36gkpb4ng2pl7xi7ppsrzzzdvq85qk";
|
sha256 = "09m2rgb9d5jpiy8q4jz3dw36gkpb4ng2pl7xi7ppsrzzzdvq85qk";
|
||||||
};
|
};
|
||||||
in with pkgs; writers.writeDashBin "emoji-menu" ''
|
in with pkgs; writers.writeDashBin "emoji-menu" ''
|
||||||
PATH=${makeBinPath [ coreutils dmenu gnused libnotify xclip xdotool ]}
|
PATH=${lib.makeBinPath [ coreutils dmenu gnused libnotify xclip xdotool ]}
|
||||||
chosen=$(cut -d ';' -f1 ${emoji-file} | dmenu -i -l 10 | sed "s/ .*//")
|
chosen=$(cut -d ';' -f1 ${emoji-file} | dmenu -i -l 10 | sed "s/ .*//")
|
||||||
|
|
||||||
[ "$chosen" != "" ] || exit
|
[ "$chosen" != "" ] || exit
|
||||||
@@ -25,97 +27,91 @@ in
|
|||||||
fi
|
fi
|
||||||
'';
|
'';
|
||||||
|
|
||||||
instaget = makeScript {
|
instaget = wrapScript {
|
||||||
binPath = [ pkgs.jq pkgs.curl pkgs.gnugrep ];
|
packages = [ pkgs.jq pkgs.curl pkgs.gnugrep ];
|
||||||
src = ./instaget.sh;
|
script = ./instaget.sh;
|
||||||
name = "instaget";
|
name = "instaget";
|
||||||
};
|
};
|
||||||
|
|
||||||
n = makeScript {
|
n = wrapScript {
|
||||||
src = ./n.sh;
|
script = ./n.sh;
|
||||||
name = "n";
|
name = "n";
|
||||||
};
|
};
|
||||||
|
|
||||||
dirmir = makeScript {
|
dirmir = wrapScript {
|
||||||
name = "dirmir";
|
name = "dirmir";
|
||||||
src = ./dirmir.sh;
|
script = ./dirmir.sh;
|
||||||
};
|
};
|
||||||
|
|
||||||
favicon = makeScript {
|
favicon = wrapScript {
|
||||||
binPath = [ pkgs.imagemagick ];
|
packages = [ pkgs.imagemagick ];
|
||||||
name = "favicon";
|
name = "favicon";
|
||||||
src = ./favicon.sh;
|
script = ./favicon.sh;
|
||||||
};
|
};
|
||||||
|
|
||||||
genius = makeScript {
|
genius = wrapScript {
|
||||||
binPath = [ pkgs.curl pkgs.gnused pkgs.pandoc ];
|
packages = [ pkgs.curl pkgs.gnused pkgs.pandoc ];
|
||||||
name = "genius";
|
name = "genius";
|
||||||
src = ./genius.sh;
|
script = ./genius.sh;
|
||||||
};
|
};
|
||||||
|
|
||||||
literature-quote = makeScript {
|
literature-quote = wrapScript {
|
||||||
binPath = [ pkgs.xsv pkgs.curl pkgs.gnused ];
|
packages = [ pkgs.xsv pkgs.curl pkgs.gnused ];
|
||||||
name = "literature-quote";
|
name = "literature-quote";
|
||||||
src = ./literature-quote.sh;
|
script = ./literature-quote.sh;
|
||||||
};
|
};
|
||||||
|
|
||||||
man-pdf = makeScript {
|
man-pdf = wrapScript {
|
||||||
binPath = [ pkgs.man pkgs.ghostscript ];
|
packages = [ pkgs.man pkgs.ghostscript ];
|
||||||
name = "man-pdf";
|
name = "man-pdf";
|
||||||
src = ./man-pdf.sh;
|
script = ./man-pdf.sh;
|
||||||
};
|
};
|
||||||
|
|
||||||
odyssey = makeScript {
|
odyssey = wrapScript {
|
||||||
binPath = [ pkgs.curl pkgs.xmlstarlet ];
|
packages = [ pkgs.curl pkgs.xmlstarlet ];
|
||||||
name = "odyssey";
|
name = "odyssey";
|
||||||
src = ./odyssey.sh;
|
script = ./odyssey.sh;
|
||||||
};
|
};
|
||||||
|
|
||||||
tolino-screensaver = makeScript {
|
tolino-screensaver = wrapScript {
|
||||||
binPath = [ pkgs.imagemagick ];
|
packages = [ pkgs.imagemagick ];
|
||||||
name = "tolino-screensaver";
|
name = "tolino-screensaver";
|
||||||
src = ./tolino-screensaver.sh;
|
script = ./tolino-screensaver.sh;
|
||||||
};
|
};
|
||||||
|
|
||||||
wttr = makeScript {
|
wttr = wrapScript {
|
||||||
binPath = [ pkgs.curl ];
|
packages = [ pkgs.curl ];
|
||||||
name = "wttr";
|
name = "wttr";
|
||||||
src = ./wttr.sh;
|
script = ./wttr.sh;
|
||||||
};
|
};
|
||||||
|
|
||||||
vf = makeScript {
|
vg = wrapScript {
|
||||||
binPath = [ pkgs.fd pkgs.fzf ];
|
packages = [ pkgs.ripgrep pkgs.fzf pkgs.gawk ];
|
||||||
name = "vf";
|
|
||||||
src = ./vf.sh;
|
|
||||||
};
|
|
||||||
|
|
||||||
vg = makeScript {
|
|
||||||
binPath = [ pkgs.ripgrep pkgs.fzf pkgs.gawk ];
|
|
||||||
name = "vg";
|
name = "vg";
|
||||||
src = ./vg.sh;
|
script = ./vg.sh;
|
||||||
};
|
};
|
||||||
|
|
||||||
fkill = makeScript {
|
fkill = wrapScript {
|
||||||
binPath = [ pkgs.procps pkgs.gawk pkgs.gnused pkgs.fzf ];
|
packages = [ pkgs.procps pkgs.gawk pkgs.gnused pkgs.fzf pkgs.bash ];
|
||||||
src = ./fkill.sh;
|
script = ./fkill.sh;
|
||||||
name = "fkill";
|
name = "fkill";
|
||||||
};
|
};
|
||||||
|
|
||||||
nix-git = makeScript {
|
nix-git = wrapScript {
|
||||||
binPath = [ pkgs.nix-prefetch-git pkgs.jq ];
|
packages = [ pkgs.nix-prefetch-git pkgs.jq ];
|
||||||
src = ./nix-git.sh;
|
script = ./nix-git.sh;
|
||||||
name = "nix-git";
|
name = "nix-git";
|
||||||
};
|
};
|
||||||
|
|
||||||
notetags = makeScript {
|
notetags = wrapScript {
|
||||||
src = ./notetags.sh;
|
script = ./notetags.sh;
|
||||||
name = "notetags";
|
name = "notetags";
|
||||||
};
|
};
|
||||||
|
|
||||||
fzfmenu = makeScript {
|
fzfmenu = wrapScript {
|
||||||
src = ./fzfmenu.sh;
|
script = ./fzfmenu.sh;
|
||||||
name = "fzfmenu";
|
name = "fzfmenu";
|
||||||
binPath = [ pkgs.st pkgs.fzf ];
|
packages = [ pkgs.st pkgs.fzf pkgs.dash ];
|
||||||
};
|
};
|
||||||
|
|
||||||
bvg = pkgs.callPackage ./bvg.nix {};
|
bvg = pkgs.callPackage ./bvg.nix {};
|
||||||
|
|||||||
@@ -10,7 +10,9 @@ mkfifo "$output"
|
|||||||
chmod 600 "$input" "$output"
|
chmod 600 "$input" "$output"
|
||||||
|
|
||||||
# it's better to use st here (starts a lot faster than pretty much everything else)
|
# it's better to use st here (starts a lot faster than pretty much everything else)
|
||||||
st -c fzfmenu -n fzfmenu -g 85x15 -e sh -c "cat $input | fzf $* | tee $output" & disown
|
st -c fzfmenu -n fzfmenu -g 85x10 \
|
||||||
|
-e dash \
|
||||||
|
-c "cat $input | fzf --print-query $* | tee $output" & disown
|
||||||
|
|
||||||
# handle ctrl+c outside child terminal window
|
# handle ctrl+c outside child terminal window
|
||||||
trap 'kill $! 2>/dev/null; rm -f $input $output' EXIT
|
trap 'kill $! 2>/dev/null; rm -f $input $output' EXIT
|
||||||
|
|||||||
3
packages/scripts/nix-git.sh
Normal file → Executable file
3
packages/scripts/nix-git.sh
Normal file → Executable file
@@ -1,2 +1,3 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
nix-prefetch-git "$@" 2> /dev/null | jq -r '"rev = \"\(.rev)\";\nsha256 = \"\(.sha256)\";"'
|
nix-prefetch-git "$@" 2> /dev/null \
|
||||||
|
| jq -r '"rev = \"\(.rev)\";\nsha256 = \"\(.sha256)\";"'
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
#!/usr/bin/env bash
|
#!/bin/sh
|
||||||
|
|
||||||
# inspired by https://github.com/connermcd/bin/blob/1d38cb98812906d8b95dc6e51e1149e29261617d/notetags
|
# inspired by https://github.com/connermcd/bin/blob/1d38cb98812906d8b95dc6e51e1149e29261617d/notetags
|
||||||
|
|
||||||
cd "$HOME/notes/" || exit
|
cd "$HOME/notes/" || exit
|
||||||
|
|
||||||
[[ -f tags ]] && rm tags
|
[ -f tags ] && rm tags
|
||||||
grep -r 'tags:' ./* | while read -r line; do
|
grep -r 'tags:' ./* | while read -r line; do
|
||||||
file=$(echo "$line" | cut -d: -f1)
|
file=$(echo "$line" | cut -d: -f1)
|
||||||
unparsed_tags=$(echo "$line" | cut -d: -f3) #
|
unparsed_tags=$(echo "$line" | cut -d: -f3) #
|
||||||
|
|||||||
@@ -1,4 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
fd -t f -H -I \
|
|
||||||
| fzf -m --preview="bat {}" \
|
|
||||||
| xargs -ro -d "\n" "$EDITOR" 2>&-
|
|
||||||
@@ -1,7 +1,6 @@
|
|||||||
#!/usr/bin/env bash
|
#!/bin/sh
|
||||||
file="$(rg "$@" | fzf -0 -1 | awk -F: '{print $1}')"
|
file="$(rg "$@" | fzf -0 -1 | awk -F: '{print $1}')"
|
||||||
|
|
||||||
if [[ -n $file ]]
|
if [ -n "$file" ]; then
|
||||||
then
|
${EDITOR:-vim} "$file"
|
||||||
${EDITOR:-vim} "$file"
|
|
||||||
fi
|
fi
|
||||||
|
|||||||
Reference in New Issue
Block a user