1
0
mirror of https://github.com/kmein/niveum synced 2026-03-16 10:11:08 +01:00
Files
niveum/packages/scripts/default.nix

194 lines
4.8 KiB
Nix
Raw Normal View History

2020-04-10 16:18:20 +02:00
{ pkgs, lib, ... }:
2020-04-09 16:56:47 +02:00
let
2020-06-10 17:37:25 +02:00
kpaste = pkgs.callPackage <stockholm/krebs/5pkgs/simple/kpaste> { };
wrapScript = { packages ? [ ], name, script }:
pkgs.writers.writeDashBin name ''
PATH=$PATH:${
lib.makeBinPath (packages ++ [ pkgs.coreutils pkgs.findutils ])
}
${script} "$@"
'';
2020-04-15 20:39:37 +02:00
voidrice = pkgs.fetchFromGitHub {
owner = "LukeSmithxyz";
repo = "voidrice";
2020-08-28 15:21:34 +02:00
rev = "0582b495937117d899ce8ef715a89c6cc25a36cf";
sha256 = "0c4hkny4zkknlimc9yi9ljss2cws4zn8lzd8ip9b8mfsm094dlfl";
2020-04-15 20:39:37 +02:00
};
2020-07-11 20:43:19 +02:00
in rec {
2020-04-15 00:10:30 +02:00
instaget = wrapScript {
packages = [ pkgs.jq pkgs.curl pkgs.gnugrep ];
script = ./instaget.sh;
2020-04-09 16:56:47 +02:00
name = "instaget";
};
2020-07-11 20:43:19 +02:00
tag = wrapScript {
packages = [ pkgs.vorbisTools pkgs.python3Packages.eyeD3 pkgs.nur.repos.kmein.opustags ];
script = "${voidrice}/.local/bin/tag";
name = "tag";
};
booksplit = wrapScript {
packages = [ pkgs.ffmpeg tag ];
script = "${voidrice}/.local/bin/booksplit";
name = "booksplit";
};
2020-04-15 00:10:30 +02:00
n = wrapScript {
script = ./n.sh;
2020-04-09 16:56:47 +02:00
name = "n";
};
2020-04-15 00:10:30 +02:00
dirmir = wrapScript {
2020-04-09 16:56:47 +02:00
name = "dirmir";
2020-04-15 00:10:30 +02:00
script = ./dirmir.sh;
2020-04-09 16:56:47 +02:00
};
2020-04-15 00:10:30 +02:00
favicon = wrapScript {
packages = [ pkgs.imagemagick ];
2020-04-09 16:56:47 +02:00
name = "favicon";
2020-04-15 00:10:30 +02:00
script = ./favicon.sh;
2020-04-09 16:56:47 +02:00
};
2020-04-15 00:10:30 +02:00
genius = wrapScript {
packages = [ pkgs.curl pkgs.gnused pkgs.pandoc ];
2020-04-09 16:56:47 +02:00
name = "genius";
2020-04-15 00:10:30 +02:00
script = ./genius.sh;
2020-04-09 16:56:47 +02:00
};
2020-04-15 00:10:30 +02:00
literature-quote = wrapScript {
packages = [ pkgs.xsv pkgs.curl pkgs.gnused ];
2020-04-09 16:56:47 +02:00
name = "literature-quote";
2020-04-15 00:10:30 +02:00
script = ./literature-quote.sh;
2020-04-09 16:56:47 +02:00
};
2020-04-15 00:10:30 +02:00
man-pdf = wrapScript {
packages = [ pkgs.man pkgs.ghostscript ];
2020-04-09 16:56:47 +02:00
name = "man-pdf";
2020-04-15 00:10:30 +02:00
script = ./man-pdf.sh;
2020-04-09 16:56:47 +02:00
};
2020-04-15 00:10:30 +02:00
odyssey = wrapScript {
packages = [ pkgs.curl pkgs.xmlstarlet ];
2020-04-09 16:56:47 +02:00
name = "odyssey";
2020-04-15 00:10:30 +02:00
script = ./odyssey.sh;
2020-04-09 16:56:47 +02:00
};
2020-04-15 00:10:30 +02:00
tolino-screensaver = wrapScript {
packages = [ pkgs.imagemagick ];
2020-04-09 16:56:47 +02:00
name = "tolino-screensaver";
2020-04-15 00:10:30 +02:00
script = ./tolino-screensaver.sh;
2020-04-09 16:56:47 +02:00
};
2020-04-15 00:10:30 +02:00
wttr = wrapScript {
packages = [ pkgs.curl ];
2020-04-09 16:56:47 +02:00
name = "wttr";
2020-04-15 00:10:30 +02:00
script = ./wttr.sh;
2020-04-09 16:56:47 +02:00
};
2020-04-15 00:10:30 +02:00
vg = wrapScript {
packages = [ pkgs.ripgrep pkgs.fzf pkgs.gawk ];
2020-04-09 16:56:47 +02:00
name = "vg";
2020-04-15 00:10:30 +02:00
script = ./vg.sh;
2020-04-09 16:56:47 +02:00
};
2020-04-15 00:10:30 +02:00
fkill = wrapScript {
packages = [ pkgs.procps pkgs.gawk pkgs.gnused pkgs.fzf pkgs.bash ];
script = ./fkill.sh;
2020-04-09 16:56:47 +02:00
name = "fkill";
};
2020-04-15 00:10:30 +02:00
nix-git = wrapScript {
packages = [ pkgs.nix-prefetch-git pkgs.jq ];
script = ./nix-git.sh;
2020-04-09 18:15:41 +02:00
name = "nix-git";
};
2020-04-15 20:39:37 +02:00
linkhandler = wrapScript {
2020-06-10 17:37:25 +02:00
packages =
[ pkgs.utillinux pkgs.mpv pkgs.curl pkgs.gnused pkgs.sxiv pkgs.ts ];
2020-04-15 20:39:37 +02:00
script = "${voidrice}/.local/bin/linkhandler";
name = "linkhandler";
};
mansplain = wrapScript {
packages = [ pkgs.man pkgs.zathura pkgs.dmenu pkgs.gnused ];
script = ./mansplain.sh;
name = "mansplain";
};
2020-04-15 00:10:30 +02:00
notetags = wrapScript {
script = ./notetags.sh;
2020-04-09 19:30:35 +02:00
name = "notetags";
};
2020-04-15 00:10:30 +02:00
fzfmenu = wrapScript {
script = ./fzfmenu.sh;
2020-04-10 14:53:16 +02:00
name = "fzfmenu";
packages = [ pkgs.st pkgs.fzf pkgs.dash pkgs.bash ];
2020-04-10 14:53:16 +02:00
};
swallow = wrapScript {
script = ./swallow.sh;
name = "swallow";
packages = [ pkgs.xdo ];
};
ipa = wrapScript {
script = ./ipa.py;
name = "ipa";
packages = [ pkgs.python3 ];
};
default-gateway = pkgs.writers.writeDashBin "default-gateway" ''
${pkgs.iproute}/bin/ip -json route | ${pkgs.jq}/bin/jq --raw-output '.[0].gateway'
'';
betacode = pkgs.writers.writePython3Bin "betacode" {
libraries = [ pkgs.nur.repos.kmein.python3Packages.betacode ];
} ''
import betacode.conv
import sys
sys.stdout.write(betacode.conv.beta_to_uni(sys.stdin.read()))
'';
2020-07-11 20:43:19 +02:00
manual-sort = pkgs.writers.writeHaskellBin "manual-sort" {} ''
{-# LANGUAGE LambdaCase #-}
import Data.Char (toLower)
import System.Environment (getArgs)
import System.IO (BufferMode(NoBuffering), hSetBuffering, stdout)
insertionSortM :: Monad f => (a -> a -> f Ordering) -> [a] -> f [a]
insertionSortM cmp = foldr ((=<<) . insertByM cmp) (pure [])
where
insertByM cmp x = \case
[] -> pure [x]
yys@(y : ys) -> cmp x y >>= \case
GT -> (y :) <$> insertByM cmp x ys
_ -> pure (x : yys)
ask :: Show a => a -> a -> IO Ordering
ask a b = do
putStr (show a ++ " > " ++ show b ++ "? (y/n) ")
map toLower <$> getLine >>= \case
'y' : _ -> return GT
_ -> return LT
main :: IO ()
main = do
hSetBuffering stdout NoBuffering
argv <- getArgs
sorted <- insertionSortM ask argv
mapM_ (\(place, thing) -> putStrLn (show place ++ ". " ++ show thing)) $ zip [1 ..] (reverse sorted)
'';
2020-05-24 10:08:13 +02:00
scrot-dmenu = wrapScript {
script = ./scrot-dmenu.sh;
name = "dmenu-scrot";
packages = [ pkgs.xclip pkgs.scrot kpaste pkgs.libnotify pkgs.dmenu ];
};
2020-06-10 17:37:25 +02:00
bvg = pkgs.callPackage ./bvg.nix { };
nav = pkgs.callPackage ./nav.nix { };
2019-11-09 16:33:59 +01:00
}