{-# LANGUAGE LambdaCase #-}
module OptEnvConf.Casing
(
toArgCase,
toEnvCase,
toConfigCase,
toShellFunctionCase,
)
where
import qualified Data.Char as Char
toArgCase :: String -> String
toArgCase :: String -> String
toArgCase = String -> String
toConfigCase
toEnvCase :: String -> String
toEnvCase :: String -> String
toEnvCase = (Char -> Char) -> String -> String
forall a b. (a -> b) -> [a] -> [b]
map (Char -> Char
Char.toUpper (Char -> Char) -> (Char -> Char) -> Char -> Char
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Char -> Char -> Char
spacer Char
'_')
toConfigCase :: String -> String
toConfigCase :: String -> String
toConfigCase = (Char -> Char) -> String -> String
forall a b. (a -> b) -> [a] -> [b]
map (Char -> Char
Char.toLower (Char -> Char) -> (Char -> Char) -> Char -> Char
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Char -> Char -> Char
spacer Char
'-')
toShellFunctionCase :: String -> String
toShellFunctionCase :: String -> String
toShellFunctionCase = (Char -> Char) -> String -> String
forall a b. (a -> b) -> [a] -> [b]
map (Char -> Char
Char.toLower (Char -> Char) -> (Char -> Char) -> Char -> Char
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Char -> Char -> Char
spacer Char
'_')
spacer :: Char -> Char -> Char
spacer :: Char -> Char -> Char
spacer Char
s = \case
Char
'-' -> Char
s
Char
'_' -> Char
s
Char
'.' -> Char
s
Char
' ' -> Char
s
Char
'\t' -> Char
s
Char
c -> Char
c