packages feed

wacom-daemon-0.1.0.0: System/Wacom/Util.hs

module System.Wacom.Util where

import Data.Char
import Data.List
import qualified Data.ByteString as B

-- | Trim spaces from right and left
trim :: String -> String
trim = \xs -> rtrim $ ltrim xs
  where
    ltrim = dropWhile isSpace
    rtrim [] = []
    rtrim xs = if isSpace $ last xs
                 then rtrim $ init xs
                 else xs

-- | Trim double quotes from right and left
trimQuotes :: String -> String
trimQuotes [] = []
trimQuotes ('"' : xs) = rtrim xs
  where
    rtrim [] = []
    rtrim xs = case last xs of
                 '"' -> init xs
                 _ -> xs

dropLastWord :: String -> String
dropLastWord = init . dropWhileEnd (not . isSpace)

fromBS :: B.ByteString -> String
fromBS = map (chr . fromIntegral) . B.unpack

isWacom :: String -> Bool
isWacom dev = "Wacom" `isInfixOf` dev