From 83db37ce967d7ff51e583a8ece4f1bebbb8f52fb Mon Sep 17 00:00:00 2001 From: voidlizard Date: Sun, 2 Feb 2025 20:47:11 +0300 Subject: [PATCH] suckless to suck less --- .../lib/Data/Config/Suckless/Script/Internal.hs | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/miscellaneous/suckless-conf/lib/Data/Config/Suckless/Script/Internal.hs b/miscellaneous/suckless-conf/lib/Data/Config/Suckless/Script/Internal.hs index c1c1d2d7..3a4f000f 100644 --- a/miscellaneous/suckless-conf/lib/Data/Config/Suckless/Script/Internal.hs +++ b/miscellaneous/suckless-conf/lib/Data/Config/Suckless/Script/Internal.hs @@ -57,6 +57,7 @@ import Safe import Streaming.Prelude qualified as S import System.Environment import System.Directory qualified as Dir +import System.FilePath.Posix as P import Text.InterpolatedString.Perl6 (qc) import UnliftIO @@ -1613,6 +1614,18 @@ internalEntries = do liftIO (Dir.doesFileExist p) <&> mkBool _ -> pure $ mkBool False + entry $ bindMatch "path:ext" $ \case + [ StringLike p ] -> pure $ mkSym (P.takeExtension p) + _ -> throwIO $ BadFormException @c nil + + entry $ bindMatch "path:base" $ \case + [ StringLike p ] -> pure $ mkSym (P.takeBaseName p) + _ -> throwIO $ BadFormException @c nil + + entry $ bindMatch "path:dir" $ \case + [ StringLike p ] -> pure $ mkSym (P.takeDirectory p) + _ -> throwIO $ BadFormException @c nil + entry $ bindMatch "path:expand" $ \case [ StringLike p ] -> lift do mkSym <$> canonicalizePath p