Add gitea spam user cleaning script
This commit is contained in:
24
tea-cleaner/TeaCleaner/Options.hs
Normal file
24
tea-cleaner/TeaCleaner/Options.hs
Normal file
@ -0,0 +1,24 @@
|
||||
module TeaCleaner.Options
|
||||
( jsonOptions
|
||||
) where
|
||||
|
||||
import qualified Data.Aeson.TH as Aeson
|
||||
import Prelude hiding (id)
|
||||
import Data.Char
|
||||
|
||||
applyFirst :: (Char -> Char) -> String -> String
|
||||
applyFirst _ [] = []
|
||||
applyFirst f [x] = [f x]
|
||||
applyFirst f (x:xs) = f x: xs
|
||||
|
||||
-- | Generic casing for symbol separated names
|
||||
symbCase :: String -> String
|
||||
symbCase = u . applyFirst toLower
|
||||
where u [] = []
|
||||
u (x:xs) | isUpper x = '_' : toLower x : u xs
|
||||
| otherwise = x : u xs
|
||||
|
||||
jsonOptions :: Aeson.Options
|
||||
jsonOptions = Aeson.defaultOptions
|
||||
{ Aeson.fieldLabelModifier = symbCase
|
||||
}
|
Reference in New Issue
Block a user