mirror of
https://github.com/kmein/niveum
synced 2026-03-16 10:11:08 +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> {
|
||||
scardanelli = config.networking.hostName == "scardanelli";
|
||||
};
|
||||
fzf-wrappers = super.callPackage <niveum/packages/fzf-wrappers.nix> {};
|
||||
})
|
||||
];
|
||||
};
|
||||
@@ -187,8 +186,10 @@ in
|
||||
take = pkgs.writers.writeDash "take" ''
|
||||
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 {
|
||||
"ix.io" = "${pkgs.curl}/bin/curl -F 'f:1=<-' ix.io";
|
||||
cat = "${pkgs.bat}/bin/bat --style=plain";
|
||||
chromium-incognito = "chromium --user-data-dir=$(mktemp -d /tmp/chr.XXXXXX) --no-first-run --incognito";
|
||||
pbcopy = "${pkgs.xclip}/bin/xclip -selection clipboard -in";
|
||||
@@ -208,6 +209,7 @@ in
|
||||
take = "source ${take}";
|
||||
tmux = "${pkgs.tmux}/bin/tmux -2";
|
||||
tree = "${pkgs.exa}/bin/exa --tree";
|
||||
cf = "source ${cf}";
|
||||
wcd = "source ${wcd}";
|
||||
weechat = "${pkgs.openssh}/bin/ssh kmein@prism.r -t tmux attach";
|
||||
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, ... }:
|
||||
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 {};
|
||||
daybook = pkgs.callPackage ./daybook.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 {};
|
||||
odyssey = pkgs.callPackage ./odyssey.nix {};
|
||||
tolino-screensaver = pkgs.callPackage ./tolino-screensaver.nix {};
|
||||
wttr = pkgs.callPackage ./wttr.nix {};
|
||||
slide =
|
||||
let slide-package = pkgs.fetchFromGitHub {
|
||||
owner = "kmein";
|
||||
@@ -22,12 +98,4 @@
|
||||
sha256 = "0skcp3va9v4hmxy5ramghpz53gnyxv10wsacgmc2jr0v1wrqlzbh";
|
||||
};
|
||||
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 "instaget" ''
|
||||
for url in "$@"; do
|
||||
${curl}/bin/curl -s "$url" \
|
||||
json="$(${curl}/bin/curl -s "$url" \
|
||||
| grep display_url \
|
||||
| grep -o '{.*}' \
|
||||
| grep -o '{.*}')"
|
||||
|
||||
echo "$json"
|
||||
| ${jq}/bin/jq -r '
|
||||
.entry_data.PostPage
|
||||
| .[].graphql.shortcode_media.edge_sidecar_to_children.edges
|
||||
| .[].node.display_url' \
|
||||
| xargs ${wget}/bin/wget
|
||||
|
||||
echo "$json"
|
||||
| ${jq}/bin/jq -r '
|
||||
.entry_data.PostPage
|
||||
| .[].graphql.shortcode_media.display_url' \
|
||||
| xargs ${wget}/bin/wget
|
||||
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