mirror of
https://github.com/kmein/niveum
synced 2026-03-16 10:11:08 +01:00
feat: booksplit script
This commit is contained in:
@@ -11,16 +11,28 @@ let
|
||||
voidrice = pkgs.fetchFromGitHub {
|
||||
owner = "LukeSmithxyz";
|
||||
repo = "voidrice";
|
||||
rev = "dff66cd1efb36afd54dd6dcf2fdaa9475d5646c1";
|
||||
sha256 = "19f33ins2kzgiw72d62j8zz9ai3j8m4qqfqmagxkg9yhxqkdqry7";
|
||||
rev = "107a99f2743b8412d667c10998677d9ed6ca8fc5";
|
||||
sha256 = "0rahn9h66gzfjjijqs6xqwbm9hy8zl7mj0mpdyfph3841lyraxrf";
|
||||
};
|
||||
in {
|
||||
in rec {
|
||||
instaget = wrapScript {
|
||||
packages = [ pkgs.jq pkgs.curl pkgs.gnugrep ];
|
||||
script = ./instaget.sh;
|
||||
name = "instaget";
|
||||
};
|
||||
|
||||
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";
|
||||
};
|
||||
|
||||
n = wrapScript {
|
||||
script = ./n.sh;
|
||||
name = "n";
|
||||
@@ -136,6 +148,36 @@ in {
|
||||
sys.stdout.write(betacode.conv.beta_to_uni(sys.stdin.read()))
|
||||
'';
|
||||
|
||||
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)
|
||||
'';
|
||||
|
||||
scrot-dmenu = wrapScript {
|
||||
script = ./scrot-dmenu.sh;
|
||||
name = "dmenu-scrot";
|
||||
|
||||
Reference in New Issue
Block a user