mirror of
https://github.com/kmein/niveum
synced 2026-03-20 12:01:06 +01:00
chore(packages): reorganize scripts
This commit is contained in:
@@ -122,7 +122,6 @@ in
|
|||||||
gfs-fonts = super.callPackage <niveum/packages/gfs-fonts.nix> {
|
gfs-fonts = super.callPackage <niveum/packages/gfs-fonts.nix> {
|
||||||
scardanelli = config.networking.hostName == "scardanelli";
|
scardanelli = config.networking.hostName == "scardanelli";
|
||||||
};
|
};
|
||||||
fzf-wrappers = super.callPackage <niveum/packages/fzf-wrappers.nix> {};
|
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
@@ -187,8 +186,10 @@ in
|
|||||||
take = pkgs.writers.writeDash "take" ''
|
take = pkgs.writers.writeDash "take" ''
|
||||||
mkdir "$1" && cd "$1"
|
mkdir "$1" && cd "$1"
|
||||||
'';
|
'';
|
||||||
|
cf = pkgs.writers.writeDash "cf" ''
|
||||||
|
cd $HOME && cd "$(${pkgs.fd}/bin/fd -t d | ${pkgs.fzf}/bin/fzf --preview="${pkgs.tree}/bin/tree -L 1 {}" --bind="space:toggle-preview" --preview-window=hidden)"
|
||||||
|
'';
|
||||||
in {
|
in {
|
||||||
"ix.io" = "${pkgs.curl}/bin/curl -F 'f:1=<-' ix.io";
|
|
||||||
cat = "${pkgs.bat}/bin/bat --style=plain";
|
cat = "${pkgs.bat}/bin/bat --style=plain";
|
||||||
chromium-incognito = "chromium --user-data-dir=$(mktemp -d /tmp/chr.XXXXXX) --no-first-run --incognito";
|
chromium-incognito = "chromium --user-data-dir=$(mktemp -d /tmp/chr.XXXXXX) --no-first-run --incognito";
|
||||||
pbcopy = "${pkgs.xclip}/bin/xclip -selection clipboard -in";
|
pbcopy = "${pkgs.xclip}/bin/xclip -selection clipboard -in";
|
||||||
@@ -208,6 +209,7 @@ in
|
|||||||
take = "source ${take}";
|
take = "source ${take}";
|
||||||
tmux = "${pkgs.tmux}/bin/tmux -2";
|
tmux = "${pkgs.tmux}/bin/tmux -2";
|
||||||
tree = "${pkgs.exa}/bin/exa --tree";
|
tree = "${pkgs.exa}/bin/exa --tree";
|
||||||
|
cf = "source ${cf}";
|
||||||
wcd = "source ${wcd}";
|
wcd = "source ${wcd}";
|
||||||
weechat = "${pkgs.openssh}/bin/ssh kmein@prism.r -t tmux attach";
|
weechat = "${pkgs.openssh}/bin/ssh kmein@prism.r -t tmux attach";
|
||||||
where = "source ${where}";
|
where = "source ${where}";
|
||||||
|
|||||||
@@ -1,36 +0,0 @@
|
|||||||
{ lib, fzf, writers, findutils, procps, gnused, gawk, ripgrep, symlinkJoin }:
|
|
||||||
let
|
|
||||||
wrappers.fe = writers.writeBashBin "fe" ''
|
|
||||||
export PATH=$PATH:${fzf}/bin
|
|
||||||
|
|
||||||
IFS=$'\n' files=($(fzf-tmux --query="$1" --multi --select-1 --exit-0))
|
|
||||||
[[ -n "$files" ]] && ''${EDITOR:-vim} "''${files[@]}"
|
|
||||||
'';
|
|
||||||
wrappers.fkill = writers.writeDashBin "fkill" ''
|
|
||||||
export PATH=$PATH:${procps}/bin:${gawk}/bin:${gnused}/bin:${fzf}/bin:${findutils}/bin
|
|
||||||
|
|
||||||
if [ "$UID" != "0" ]; then
|
|
||||||
pid=$(ps -f -u $UID | sed 1d | fzf -m | awk '{print $2}')
|
|
||||||
else
|
|
||||||
pid=$(ps -ef | sed 1d | fzf -m | awk '{print $2}')
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "x$pid" != "x" ]
|
|
||||||
then
|
|
||||||
echo $pid | xargs kill -''${1:-9}
|
|
||||||
fi
|
|
||||||
'';
|
|
||||||
wrappers.vg = writers.writeBashBin "vg" ''
|
|
||||||
export PATH=$PATH:${ripgrep}/bin:${fzf}/bin:${gawk}/bin
|
|
||||||
|
|
||||||
file="$(rg "$@" | fzf -0 -1 | awk -F: '{print $1}')"
|
|
||||||
|
|
||||||
if [[ -n $file ]]
|
|
||||||
then
|
|
||||||
''${EDITOR:-vim} "$file"
|
|
||||||
fi
|
|
||||||
'';
|
|
||||||
in symlinkJoin {
|
|
||||||
name = "fzf-wrappers";
|
|
||||||
paths = lib.attrVals wrappers;
|
|
||||||
}
|
|
||||||
@@ -1,19 +1,95 @@
|
|||||||
{ pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
|
let
|
||||||
|
makeScript = { propagatedBuildInputs ? [], name, src }: pkgs.stdenv.mkDerivation {
|
||||||
|
inherit name src propagatedBuildInputs;
|
||||||
|
phases = [ "installPhase" ];
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/bin
|
||||||
|
install $src $out/bin/${name}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
in
|
||||||
{
|
{
|
||||||
|
instaget = makeScript {
|
||||||
|
propagatedBuildInputs = [ pkgs.jq pkgs.curl pkgs.gnugrep ];
|
||||||
|
src = ./instaget.sh;
|
||||||
|
name = "instaget";
|
||||||
|
};
|
||||||
|
|
||||||
|
n = makeScript {
|
||||||
|
src = ./n.sh;
|
||||||
|
name = "n";
|
||||||
|
};
|
||||||
|
|
||||||
|
dirmir = makeScript {
|
||||||
|
name = "dirmir";
|
||||||
|
src = ./dirmir.sh;
|
||||||
|
};
|
||||||
|
|
||||||
|
favicon = makeScript {
|
||||||
|
propagatedBuildInputs = [ pkgs.imagemagick ];
|
||||||
|
name = "favicon";
|
||||||
|
src = ./favicon.sh;
|
||||||
|
};
|
||||||
|
|
||||||
|
genius = makeScript {
|
||||||
|
propagatedBuildInputs = [ pkgs.curl pkgs.gnused pkgs.pandoc ];
|
||||||
|
name = "genius";
|
||||||
|
src = ./genius.sh;
|
||||||
|
};
|
||||||
|
|
||||||
|
literature-quote = makeScript {
|
||||||
|
propagatedBuildInputs = [ pkgs.xsv pkgs.curl pkgs.gnused ];
|
||||||
|
name = "literature-quote";
|
||||||
|
src = ./literature-quote.sh;
|
||||||
|
};
|
||||||
|
|
||||||
|
man-pdf = makeScript {
|
||||||
|
propagatedBuildInputs = [ pkgs.man pkgs.ghostscript ];
|
||||||
|
name = "man-pdf";
|
||||||
|
src = ./man-pdf.sh;
|
||||||
|
};
|
||||||
|
|
||||||
|
odyssey = makeScript {
|
||||||
|
propagatedBuildInputs = [ pkgs.curl pkgs.xmlstarlet ];
|
||||||
|
name = "odyssey";
|
||||||
|
src = ./odyssey.sh;
|
||||||
|
};
|
||||||
|
|
||||||
|
tolino-screensaver = makeScript {
|
||||||
|
propagatedBuildInputs = [ pkgs.imagemagick ];
|
||||||
|
name = "tolino-screensaver";
|
||||||
|
src = ./tolino-screensaver.sh;
|
||||||
|
};
|
||||||
|
|
||||||
|
wttr = makeScript {
|
||||||
|
propagatedBuildInputs = [ pkgs.curl ];
|
||||||
|
name = "wttr";
|
||||||
|
src = ./wttr.sh;
|
||||||
|
};
|
||||||
|
|
||||||
|
vf = makeScript {
|
||||||
|
propagatedBuildInputs = [ pkgs.fd pkgs.fzf ];
|
||||||
|
name = "vf";
|
||||||
|
src = ./vf.sh;
|
||||||
|
};
|
||||||
|
|
||||||
|
vg = makeScript {
|
||||||
|
propagatedBuildInputs = [ pkgs.ripgrep pkgs.fzf pkgs.gawk ];
|
||||||
|
name = "vg";
|
||||||
|
src = ./vg.sh;
|
||||||
|
};
|
||||||
|
|
||||||
|
fkill = makeScript {
|
||||||
|
propagatedBuildInputs = [ pkgs.procps pkgs.gawk pkgs.gnused pkgs.fzf ];
|
||||||
|
src = ./fkill.sh;
|
||||||
|
name = "fkill";
|
||||||
|
};
|
||||||
|
|
||||||
bvg = pkgs.callPackage ./bvg.nix {};
|
bvg = pkgs.callPackage ./bvg.nix {};
|
||||||
daybook = pkgs.callPackage ./daybook.nix {};
|
daybook = pkgs.callPackage ./daybook.nix {};
|
||||||
depp = pkgs.callPackage ./depp.nix {};
|
depp = pkgs.callPackage ./depp.nix {};
|
||||||
dirmir = pkgs.callPackage ./dirmir.nix {};
|
|
||||||
favicon = pkgs.callPackage ./favicon.nix {};
|
|
||||||
genius = pkgs.callPackage ./genius.nix {};
|
|
||||||
instaget = pkgs.callPackage ./instaget.nix {};
|
|
||||||
literature-quote = pkgs.callPackage ./literature-quote.nix {};
|
|
||||||
man-pdf = pkgs.callPackage ./man-pdf.nix {};
|
|
||||||
n = pkgs.callPackage ./n.nix {};
|
|
||||||
nav = pkgs.callPackage ./nav.nix {};
|
nav = pkgs.callPackage ./nav.nix {};
|
||||||
odyssey = pkgs.callPackage ./odyssey.nix {};
|
|
||||||
tolino-screensaver = pkgs.callPackage ./tolino-screensaver.nix {};
|
|
||||||
wttr = pkgs.callPackage ./wttr.nix {};
|
|
||||||
slide =
|
slide =
|
||||||
let slide-package = pkgs.fetchFromGitHub {
|
let slide-package = pkgs.fetchFromGitHub {
|
||||||
owner = "kmein";
|
owner = "kmein";
|
||||||
@@ -22,12 +98,4 @@
|
|||||||
sha256 = "0skcp3va9v4hmxy5ramghpz53gnyxv10wsacgmc2jr0v1wrqlzbh";
|
sha256 = "0skcp3va9v4hmxy5ramghpz53gnyxv10wsacgmc2jr0v1wrqlzbh";
|
||||||
};
|
};
|
||||||
in pkgs.callPackage slide-package {};
|
in pkgs.callPackage slide-package {};
|
||||||
mnemosyne =
|
|
||||||
let mnemosyne-package = pkgs.fetchFromGitHub {
|
|
||||||
repo = "mnemosyne";
|
|
||||||
owner = "kmein";
|
|
||||||
rev = "6bfa13c88db176af80be90840ff03573d67d679f";
|
|
||||||
sha256 = "1rimv5c5q9602y501hbkgkfbimqnmdkcr5hp1434q06gcazhjhca";
|
|
||||||
};
|
|
||||||
in pkgs.haskellPackages.callPackage mnemosyne-package {};
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,27 +0,0 @@
|
|||||||
{ writers, coreutils, findutils }:
|
|
||||||
let name = "dirmir";
|
|
||||||
in writers.writeDashBin name ''
|
|
||||||
export PATH=$PATH:${coreutils}/bin:${findutils}/bin
|
|
||||||
|
|
||||||
SOURCE="$1"
|
|
||||||
TARGET="$2"
|
|
||||||
|
|
||||||
if [ ! -d "$SOURCE" ] || [ $# -ne 2 ]; then
|
|
||||||
echo >/dev/stderr "Usage: ${name} SOURCE TARGET"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -e "$TARGET" ]; then
|
|
||||||
echo >/dev/stderr "$TARGET" already exists. Please use a different name.
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
for entry in $(find "$SOURCE"); do
|
|
||||||
if [ -d "$entry" ]; then
|
|
||||||
mkdir -p "$TARGET/$entry"
|
|
||||||
else
|
|
||||||
# create a file with the same permissions as $entry
|
|
||||||
install -m "$(stat -c %a "$entry")" /dev/null "$TARGET/$entry"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
''
|
|
||||||
22
packages/scripts/dirmir.sh
Executable file
22
packages/scripts/dirmir.sh
Executable file
@@ -0,0 +1,22 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
SOURCE="$1"
|
||||||
|
TARGET="$2"
|
||||||
|
|
||||||
|
if [ ! -d "$SOURCE" ] || [ $# -ne 2 ]; then
|
||||||
|
echo >/dev/stderr "Usage: dirmir SOURCE TARGET"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -e "$TARGET" ]; then
|
||||||
|
echo >/dev/stderr "$TARGET" already exists. Please use a different name.
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
find "$SOURCE" | while read -r entry; do
|
||||||
|
if [ -d "$entry" ]; then
|
||||||
|
mkdir -p "$TARGET/$entry"
|
||||||
|
else
|
||||||
|
# create a file with the same permissions as $entry
|
||||||
|
install -m "$(stat -c %a "$entry")" /dev/null "$TARGET/$entry"
|
||||||
|
fi
|
||||||
|
done
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
{ imagemagick, writers }:
|
|
||||||
writers.writeDashBin "favicon" ''
|
|
||||||
${imagemagick}/bin/convert "$1" -define icon:auto-resize=64,48,32,16 "''${2-favicon.ico}"
|
|
||||||
''
|
|
||||||
2
packages/scripts/favicon.sh
Executable file
2
packages/scripts/favicon.sh
Executable file
@@ -0,0 +1,2 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
convert "$1" -define icon:auto-resize=64,48,32,16 "${2-favicon.ico}"
|
||||||
12
packages/scripts/fkill.sh
Executable file
12
packages/scripts/fkill.sh
Executable file
@@ -0,0 +1,12 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
if [ "$UID" != "0" ]; then
|
||||||
|
pid=$(ps -f -u "$UID" | sed 1d | fzf -m | awk '{print $2}')
|
||||||
|
else
|
||||||
|
pid=$(ps -ef | sed 1d | fzf -m | awk '{print $2}')
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "x$pid" != "x" ]
|
||||||
|
then
|
||||||
|
echo "$pid" | xargs kill "-${1:-9}"
|
||||||
|
fi
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
{ writeShellScriptBin, gnused, curl, pandoc }:
|
|
||||||
writeShellScriptBin "genius" ''
|
|
||||||
test $# -eq 2 || (
|
|
||||||
echo "usage: $0 <artist> <song>"
|
|
||||||
exit 1
|
|
||||||
)
|
|
||||||
|
|
||||||
normalize() {
|
|
||||||
tr -d -c '0-9A-Za-z ' | tr ' ' - | tr '[:upper:]' '[:lower:]'
|
|
||||||
}
|
|
||||||
|
|
||||||
ARTIST=$(echo "$1" | normalize | ${gnused}/bin/sed 's/./\U&/')
|
|
||||||
TITLE=$(echo "$2" | normalize)
|
|
||||||
GENIUS_URL="https://genius.com/$ARTIST-$TITLE-lyrics"
|
|
||||||
|
|
||||||
${curl}/bin/curl -s "$GENIUS_URL" \
|
|
||||||
| ${gnused}/bin/sed -ne '/class="lyrics"/,/<\/p>/p' \
|
|
||||||
| ${pandoc}/bin/pandoc -f html -s -t plain \
|
|
||||||
| ${gnused}/bin/sed 's/^_/\x1b[3m/g;s/_$/\x1b[0m/g;s/^\[/\n\x1b\[1m\[/g;s/\]$/\]\x1b[0m/g'
|
|
||||||
|
|
||||||
printf "\n(source: $GENIUS_URL)\n" >/dev/stderr
|
|
||||||
''
|
|
||||||
20
packages/scripts/genius.sh
Executable file
20
packages/scripts/genius.sh
Executable file
@@ -0,0 +1,20 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
test "$#" -eq 2 || (
|
||||||
|
echo "usage: $0 <artist> <song>"
|
||||||
|
exit 1
|
||||||
|
)
|
||||||
|
|
||||||
|
normalize() {
|
||||||
|
tr -d -c '0-9A-Za-z ' | tr ' ' - | tr '[:upper:]' '[:lower:]'
|
||||||
|
}
|
||||||
|
|
||||||
|
ARTIST=$(echo "$1" | normalize | sed 's/./\U&/')
|
||||||
|
TITLE=$(echo "$2" | normalize)
|
||||||
|
GENIUS_URL="https://genius.com/$ARTIST-$TITLE-lyrics"
|
||||||
|
|
||||||
|
curl -s "$GENIUS_URL" \
|
||||||
|
| sed -ne '/class="lyrics"/,/<\/p>/p' \
|
||||||
|
| pandoc -f html -s -t plain \
|
||||||
|
| sed 's/^_/\x1b[3m/g;s/_$/\x1b[0m/g;s/^\[/\n\x1b\[1m\[/g;s/\]$/\]\x1b[0m/g'
|
||||||
|
|
||||||
|
printf "\n%s\n" "$GENIUS_URL" >/dev/stderr
|
||||||
@@ -1,13 +1,21 @@
|
|||||||
{ writeShellScriptBin, wget, curl, jq }:
|
{ writeShellScriptBin, wget, curl, jq }:
|
||||||
writeShellScriptBin "instaget" ''
|
writeShellScriptBin "instaget" ''
|
||||||
for url in "$@"; do
|
for url in "$@"; do
|
||||||
${curl}/bin/curl -s "$url" \
|
json="$(${curl}/bin/curl -s "$url" \
|
||||||
| grep display_url \
|
| grep display_url \
|
||||||
| grep -o '{.*}' \
|
| grep -o '{.*}')"
|
||||||
|
|
||||||
|
echo "$json"
|
||||||
| ${jq}/bin/jq -r '
|
| ${jq}/bin/jq -r '
|
||||||
.entry_data.PostPage
|
.entry_data.PostPage
|
||||||
| .[].graphql.shortcode_media.edge_sidecar_to_children.edges
|
| .[].graphql.shortcode_media.edge_sidecar_to_children.edges
|
||||||
| .[].node.display_url' \
|
| .[].node.display_url' \
|
||||||
| xargs ${wget}/bin/wget
|
| xargs ${wget}/bin/wget
|
||||||
|
|
||||||
|
echo "$json"
|
||||||
|
| ${jq}/bin/jq -r '
|
||||||
|
.entry_data.PostPage
|
||||||
|
| .[].graphql.shortcode_media.display_url' \
|
||||||
|
| xargs ${wget}/bin/wget
|
||||||
done
|
done
|
||||||
''
|
''
|
||||||
|
|||||||
19
packages/scripts/instaget.sh
Executable file
19
packages/scripts/instaget.sh
Executable file
@@ -0,0 +1,19 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
for url in "$@"; do
|
||||||
|
json="$(curl -s "$url" \
|
||||||
|
| grep display_url \
|
||||||
|
| grep -o '{.*}')"
|
||||||
|
|
||||||
|
echo "$json" \
|
||||||
|
| jq -r '
|
||||||
|
.entry_data.PostPage
|
||||||
|
| .[].graphql.shortcode_media.edge_sidecar_to_children.edges
|
||||||
|
| .[].node.display_url' \
|
||||||
|
| xargs wget
|
||||||
|
|
||||||
|
echo "$json" \
|
||||||
|
| jq -r '
|
||||||
|
.entry_data.PostPage
|
||||||
|
| .[].graphql.shortcode_media.display_url' \
|
||||||
|
| xargs wget
|
||||||
|
done
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
{ writeShellScriptBin, curl, xsv, gnused }:
|
|
||||||
writeShellScriptBin "literature-quote" ''
|
|
||||||
ROW=$(${curl}/bin/curl -Ls http://kmein.github.io/logotheca/quotes.csv | shuf -n1)
|
|
||||||
|
|
||||||
(
|
|
||||||
printf '%s\n\n— %s: _%s_, %s\n' \
|
|
||||||
"$(echo "$ROW" | ${xsv}/bin/xsv select 4)" \
|
|
||||||
"$(echo "$ROW" | ${xsv}/bin/xsv select 1)" \
|
|
||||||
"$(echo "$ROW" | ${xsv}/bin/xsv select 2)" \
|
|
||||||
"$(echo "$ROW" | ${xsv}/bin/xsv select 3 | tr : ,)"
|
|
||||||
) | ${gnused}/bin/sed 's/ | /\n/g;s/ || /\n\n/g;s/"\(.*\)"/\1/'
|
|
||||||
''
|
|
||||||
10
packages/scripts/literature-quote.sh
Executable file
10
packages/scripts/literature-quote.sh
Executable file
@@ -0,0 +1,10 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
ROW=$(curl -Ls http://kmein.github.io/logotheca/quotes.csv | shuf -n1)
|
||||||
|
|
||||||
|
(
|
||||||
|
printf '%s\n\n— %s: _%s_, %s\n' \
|
||||||
|
"$(echo "$ROW" | xsv select 4)" \
|
||||||
|
"$(echo "$ROW" | xsv select 1)" \
|
||||||
|
"$(echo "$ROW" | xsv select 2)" \
|
||||||
|
"$(echo "$ROW" | xsv select 3 | tr : ,)"
|
||||||
|
) | sed 's/ | /\n/g;s/ || /\n\n/g;s/"\(.*\)"/\1/'
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
{ writeShellScriptBin, ghostscript, man }:
|
|
||||||
let
|
|
||||||
name = "man-pdf";
|
|
||||||
in writeShellScriptBin name ''
|
|
||||||
if [ $# -eq 1 ]; then
|
|
||||||
man_entry="$1"
|
|
||||||
elif [ $# -eq 2 ]; then
|
|
||||||
man_page="$1"
|
|
||||||
man_entry="$2"
|
|
||||||
else
|
|
||||||
echo >/dev/stderr "Usage: ${name} [MAN-PAGE] ENTRY"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "${man}/bin/man "''${man_page:-}" "$man_entry" | ${ghostscript}/bin/ps2pdf - "$man_entry.pdf""
|
|
||||||
${man}/bin/man "''${man_page:-}" "$man_entry" | ${ghostscript}/bin/ps2pdf - "$man_entry.pdf"
|
|
||||||
''
|
|
||||||
12
packages/scripts/man-pdf.sh
Executable file
12
packages/scripts/man-pdf.sh
Executable file
@@ -0,0 +1,12 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
if [ "$#" -eq 1 ]; then
|
||||||
|
man_entry="$1"
|
||||||
|
elif [ $# -eq 2 ]; then
|
||||||
|
man_page="$1"
|
||||||
|
man_entry="$2"
|
||||||
|
else
|
||||||
|
echo >/dev/stderr "Usage: $0 [MAN-PAGE] ENTRY"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
man "${man_page:-}" "$man_entry" | ps2pdf - "$man_entry.pdf"
|
||||||
2
packages/scripts/n.sh
Executable file
2
packages/scripts/n.sh
Executable file
@@ -0,0 +1,2 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
nix-shell -p "$1" --run "${2:-$1}"
|
||||||
@@ -1,23 +0,0 @@
|
|||||||
{ token, writers, python3Packages, ... }:
|
|
||||||
writers.writePython3 "nachtischsatan-bot" { libraries = [ python3Packages.python-telegram-bot ]; } ''
|
|
||||||
import random
|
|
||||||
import time
|
|
||||||
|
|
||||||
from telegram.ext import Updater, MessageHandler
|
|
||||||
from telegram.ext.filters import Filters
|
|
||||||
|
|
||||||
|
|
||||||
def flubber(bot, update):
|
|
||||||
time.sleep(random.randrange(4000) / 1000)
|
|
||||||
update.message.reply_text("*flubberflubber*")
|
|
||||||
|
|
||||||
|
|
||||||
updater = Updater(
|
|
||||||
'${token}'
|
|
||||||
)
|
|
||||||
|
|
||||||
updater.dispatcher.add_handler(MessageHandler(Filters.all, flubber))
|
|
||||||
|
|
||||||
updater.start_polling()
|
|
||||||
updater.idle()
|
|
||||||
''
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
{ xmlstarlet, curl, writeShellScriptBin }:
|
|
||||||
writeShellScriptBin "odyssey" ''
|
|
||||||
if [ $# -eq 1 ] && (echo "$1" | grep -Eq '[0-9]+\.[0-9]+'); then
|
|
||||||
${curl}/bin/curl -Gs http://www.perseus.tufts.edu/hopper/CTS \
|
|
||||||
-d request=GetPassage \
|
|
||||||
-d "urn=urn:cts:greekLit:tlg0012.tlg002:$1" \
|
|
||||||
| ${xmlstarlet}/bin/xmlstarlet sel -t -v 'cts:GetPassage//tei:div'
|
|
||||||
else
|
|
||||||
echo you must supply BOOK.VERSE
|
|
||||||
fi
|
|
||||||
''
|
|
||||||
9
packages/scripts/odyssey.sh
Executable file
9
packages/scripts/odyssey.sh
Executable file
@@ -0,0 +1,9 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
if [ "$#" -eq 1 ] && (echo "$1" | grep -Eq '[0-9]+\.[0-9]+'); then
|
||||||
|
curl -Gs http://www.perseus.tufts.edu/hopper/CTS \
|
||||||
|
-d request=GetPassage \
|
||||||
|
-d "urn=urn:cts:greekLit:tlg0012.tlg002:$1" \
|
||||||
|
| xmlstarlet sel -t -v 'cts:GetPassage//tei:div'
|
||||||
|
else
|
||||||
|
echo you must supply BOOK.VERSE
|
||||||
|
fi
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
{ writers, imagemagick }:
|
|
||||||
writers.writeDashBin "tolino-screensaver" ''
|
|
||||||
source_image="$1"
|
|
||||||
|
|
||||||
if [ -e "$source_image" ]; then
|
|
||||||
${imagemagick}/bin/convert -type Grayscale -resize 758x1024 "$source_image" "suspend.jpg"
|
|
||||||
else
|
|
||||||
echo >/dev/stderr "$1 must exist."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
''
|
|
||||||
9
packages/scripts/tolino-screensaver.sh
Executable file
9
packages/scripts/tolino-screensaver.sh
Executable file
@@ -0,0 +1,9 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
source_image="$1"
|
||||||
|
|
||||||
|
if [ -e "$source_image" ]; then
|
||||||
|
convert -type Grayscale -resize 758x1024 "$source_image" "suspend.jpg"
|
||||||
|
else
|
||||||
|
echo >/dev/stderr "$1 must exist."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
4
packages/scripts/vf.sh
Executable file
4
packages/scripts/vf.sh
Executable file
@@ -0,0 +1,4 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
fd -t f -H -I \
|
||||||
|
| fzf -m --preview="bat {}" \
|
||||||
|
| xargs -ro -d "\n" "$EDITOR" 2>&-
|
||||||
7
packages/scripts/vg.sh
Executable file
7
packages/scripts/vg.sh
Executable file
@@ -0,0 +1,7 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
file="$(rg "$@" | fzf -0 -1 | awk -F: '{print $1}')"
|
||||||
|
|
||||||
|
if [[ -n $file ]]
|
||||||
|
then
|
||||||
|
${EDITOR:-vim} "$file"
|
||||||
|
fi
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
{ writeShellScriptBin, curl }:
|
|
||||||
writeShellScriptBin "wttr" ''
|
|
||||||
${curl}/bin/curl -s -H "Accept-Language: ''${LANG%_*}" --compressed "wttr.in/''${1-}?0"
|
|
||||||
''
|
|
||||||
2
packages/scripts/wttr.sh
Executable file
2
packages/scripts/wttr.sh
Executable file
@@ -0,0 +1,2 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
curl -s -H "Accept-Language: ${LANG%_*}" --compressed "wttr.in/${1-}?0"
|
||||||
Reference in New Issue
Block a user