1
0
mirror of https://github.com/kmein/niveum synced 2026-03-16 18:21:07 +01:00

feat: convert to flake

feat(zaatar): convert to flake

feat(tahina, tabula): convert to flake

feat(makanek): convert to flake

feat(manakish, zaatar): convert to flake

feat(ci): build flake systems

fix: ci build

feat: secrets via submodule

foo

foo

foo
This commit is contained in:
2023-02-22 10:02:55 +01:00
parent ba27e98297
commit d03c6bb0de
92 changed files with 1656 additions and 934 deletions

View File

@@ -1,11 +1,12 @@
{
pkgs,
lib,
config,
...
}: let
kpaste = pkgs.callPackage <stockholm/krebs/5pkgs/simple/kpaste> {};
opustags = pkgs.callPackage <niveum/packages/opustags.nix> {};
betacode = pkgs.callPackage <niveum/packages/python3Packages/betacode.nix> {};
opustags = pkgs.callPackage ../opustags.nix {};
betacode = pkgs.callPackage ../python3Packages/betacode.nix {};
wrapScript = {
packages ? [],
name,
@@ -73,33 +74,6 @@ in
${pkgs.coreutils}/bin/printf '%s\n' 'nameserver 1.1.1.1' 'options edns0' > /etc/resolv.conf
'';
much-scripts = let
much-current-query = wrapScript {
packages = [pkgs.curl];
name = "much-current-query";
script = ./much-current-query.sh;
};
mail-send = wrapScript {
packages = [pkgs.notmuch pkgs.msmtp pkgs.jq];
name = "mail-send";
script = ./mail-send.sh;
};
mail-reply = wrapScript {
packages = [much-current-query pkgs.notmuch pkgs.gnused pkgs.jq];
name = "mail-reply";
script = ./mail-reply.sh;
};
mail-kill = wrapScript {
name = "mail-kill";
script = ./mail-kill.sh;
packages = [pkgs.notmuch];
};
in
pkgs.symlinkJoin {
name = "much-scripts";
paths = [mail-send much-current-query mail-reply mail-kill];
};
showkeys-toggle = pkgs.writers.writeDashBin "showkeys-toggle" ''
if ${pkgs.procps}/bin/pgrep screenkey; then
exec ${pkgs.procps}/bin/pkill screenkey
@@ -205,7 +179,7 @@ in
| ${pkgs.man}/bin/man --local-file --pager="${pkgs.bat}/bin/bat -p" -
'';
playlist = import ./pls.nix {inherit pkgs;};
playlist = import ./pls.nix {inherit pkgs lib config;};
mpv-tv = import ./mpv-tv.nix {inherit pkgs lib;};
@@ -396,8 +370,8 @@ in
unicodmenu = pkgs.callPackage ./unicodmenu.nix {};
mpv-radio = let
streams = import <niveum/lib/streams.nix> {
di-fm-key = lib.strings.fileContents <secrets/di.fm/key>;
streams = import ../../lib/streams.nix {
di-fm-key = "%DI_FM_KEY%"; # lib.strings.fileContents <secrets/di.fm/key>;
};
streams-tsv = pkgs.writeText "streams.tsv" (lib.concatMapStringsSep "\n" ({
desc ? "",
@@ -408,7 +382,12 @@ in
streams);
in
pkgs.writers.writeDashBin "mpv-radio" ''
exec ${pkgs.mpv}/bin/mpv --force-window=yes "$(${pkgs.dmenu}/bin/dmenu -i -l 5 < ${streams-tsv} | ${pkgs.coreutils}/bin/cut -f3)"
export DI_FM_KEY=$(cat "${config.age.secrets.di-fm-key.path}")
exec ${pkgs.mpv}/bin/mpv --force-window=yes "$(
${pkgs.dmenu}/bin/dmenu -i -l 5 < ${streams-tsv} \
| ${pkgs.coreutils}/bin/cut -f3 \
| ${pkgs.gnused}/bin/sed s/%DI_FM_KEY%/"$DI_FM_KEY"/
)"
'';
rfc = wrapScript {
@@ -489,11 +468,11 @@ in
'';
}
// {
devour = pkgs.callPackage <niveum/packages/devour.nix> {};
depp = pkgs.callPackage <niveum/packages/depp.nix> {};
text2pdf = pkgs.callPackage <niveum/packages/text2pdf.nix> {};
vimv = pkgs.callPackage <niveum/packages/vimv.nix> {};
when = pkgs.callPackage <niveum/packages/when.nix> {};
mahlzeit = pkgs.haskellPackages.callPackage <niveum/packages/mahlzeit.nix> {};
devour = pkgs.callPackage ../devour.nix {};
depp = pkgs.callPackage ../depp.nix {};
text2pdf = pkgs.callPackage ../text2pdf.nix {};
vimv = pkgs.callPackage ../vimv.nix {};
when = pkgs.callPackage ../when.nix {};
mahlzeit = pkgs.haskellPackages.callPackage ../mahlzeit.nix {};
inherit opustags;
}

View File

@@ -1,20 +0,0 @@
#! /bin/sh
set -efu
if ! notmuch search --exclude=false tag:deleted | tac | grep .; then
echo 'No killed mail.'
exit 1
fi
printf 'want do rm these mail? [y/N] '
read REPLY
case "$REPLY" in
y|Y) :;; # continue
*)
echo 'abort.'
exit 2
;;
esac
notmuch search --output=files --exclude=false tag:deleted | xargs -l rm -v
notmuch new

View File

@@ -1,47 +0,0 @@
#! /bin/sh
set -efu
reply_to=$(much-current-query)
if ! test "$(notmuch search --output=messages "$reply_to" | wc -l)" = 1; then
echo "current query doesn't point to exactly one message. abort." >&2
exit 1
fi
# TODO update headers
notmuch reply "$reply_to" |
sed '
/^Non-text part: /d
/^Attachment: /d
' |
jq -Rrs '
# TODO dedup with mail-send
split("\n") |
index("") as $i |
.[:$i] as $head |
.[$i:] as $body |
{
"MIME-Version": "1.0",
"Content-Type": "text/plain; charset=UTF-8; format=flowed",
"Content-Transfer-Encoding": "8bit"
} as $extra_head |
($extra_head | keys | join("|")) as $extra_head_regex |
($extra_head | to_entries | map("\(.key): \(.value)")) as $extra_head_lines |
# TODO each of these could be followed by multiple lines starting with spaces
($head | map(select(test("^(\($extra_head_regex)):";"i") | not))) as $head |
($head + $extra_head_lines) as $head |
($head + $body) | join("\n")
'
# TODO fix From:
# TODO tune quote
# TODO write draft
# TODO send mail

View File

@@ -1,56 +0,0 @@
#! /bin/sh
# usage: mail-send < FILE
set -efu
get_in_reply_to() {
sed -n '/^In-Reply-to:/I{s/In-Reply-to:\s*//I;h;:a;n;/^\s/{s/^\s*//;H;ba};x;p;q}' |
sed -n 's/^<\(.*\)>$/\1/p' |
grep .
}
now=$(date --rfc-email)
id=$(whoami)+$(date +%s -d "$now")@$(hostname -f)
# TODO check if mail with that ID already exists
# TODO encode subject https://ncona.com/2011/06/using-utf-8-characters-on-an-e-mail-subject/
# and maybe recipients
# TODO use tmpfile instead?
mail=$(
env now="$now" id="$id" \
jq -Rrs '
# TODO dedup with mail-reply
split("\n") |
index("") as $i |
.[:$i] as $head |
.[$i:] as $body |
# TODO each of these could be followed by multiple lines starting with spaces
($head | map(select(test("^(Date|Message-ID|User-Agent):";"i") | not))) as $head |
($head + [
"Date: \(env.now)",
"Message-ID: <\(env.id)>",
"User-Agent: much"
]) as $head |
($head + $body) | join("\n")
'
)
printf %s "$mail" | msmtpq --read-recipients --read-envelope-from
printf %s "$mail" | notmuch insert
if in_reply_to=$(printf %s "$mail" | get_in_reply_to); then
if test "$(notmuch search --output=messages "id:$in_reply_to")" != "id:$in_reply_to"; then
echo "while trying to put replied tag, failed to find exactly one message" >&2
echo " query = id:$in_reply_to" >&2
exit 1
fi
notmuch tag +replied -unread -- "id:$in_reply_to"
fi
echo "id:$id"

View File

@@ -1,10 +1,12 @@
{pkgs}: let
inherit (pkgs) lib;
{
config,
pkgs,
lib,
}: let
playlistAPI = "https://radio.lassul.us";
sendIRC = pkgs.writers.writeDash "send-irc" ''
${pkgs.ircaids}/bin/ircsink \
${config.nur.repos.mic92.ircsink}/bin/ircsink \
--nick musikkritiker \
--server irc.hackint.org \
--port 6697 \