|
3 | 3 | module Main (main) where
|
4 | 4 |
|
5 | 5 | import Data.Bits
|
6 |
| -import Data.Text (Text) |
7 |
| -import qualified Data.Text as T |
8 |
| -import qualified Data.Text.IO as T |
| 6 | +import qualified Data.ByteString as BS |
| 7 | +import qualified Data.ByteString.Char8 as BS8 |
| 8 | +import Data.ByteString (ByteString) |
9 | 9 | import System.Environment
|
10 | 10 | import qualified Data.Map.Strict as M
|
11 | 11 | import Control.Applicative
|
12 | 12 | import Data.AffineSpace ((.-^))
|
13 |
| -import Data.Char (isSpace, digitToInt, isUpper) |
| 13 | +import Data.Char (digitToInt, isUpper) |
14 | 14 | import Data.List (foldl')
|
15 | 15 | import Control.Lens
|
16 | 16 | import Data.Thyme
|
17 | 17 |
|
18 |
| -import Data.Attoparsec.Text |
| 18 | +import Data.Attoparsec.ByteString.Char8 |
19 | 19 |
|
20 | 20 | data UnixFile = UnixFileGen { _fileInode :: !Int
|
21 | 21 | , _fileHardLinks :: !Int
|
22 | 22 | , _fileAtime :: !UTCTime
|
23 | 23 | , _fileMtime :: !UTCTime
|
24 | 24 | , _fileCtime :: !UTCTime
|
25 |
| - , _fileUser :: !Text |
26 |
| - , _fileGroup :: !Text |
| 25 | + , _fileUser :: !ByteString |
| 26 | + , _fileGroup :: !ByteString |
27 | 27 | , _fileBlocks :: !Int
|
28 | 28 | , _fileType :: !FileType
|
29 | 29 | , _filePerms :: !FPerms
|
30 | 30 | , _fileSize :: !Int
|
31 |
| - , _filePath :: !Text |
32 |
| - , _fileTarget :: !(Maybe Text) |
| 31 | + , _filePath :: !ByteString |
| 32 | + , _fileTarget :: !(Maybe ByteString) |
33 | 33 | } deriving (Show, Eq)
|
34 | 34 |
|
35 | 35 | data FileType = TFile
|
@@ -96,14 +96,14 @@ findline = do
|
96 | 96 | <*> t filetype
|
97 | 97 | <*> (FPerms <$> t myOctal)
|
98 | 98 | <*> t decimal
|
99 |
| - rst <- T.words <$> t (takeWhile1 ( /= '\n' )) |
| 99 | + rst <- BS8.words <$> t (takeWhile1 ( /= '\n' )) |
100 | 100 | return $ case break (== "->") rst of
|
101 |
| - (a, []) -> meta (T.unwords a) Nothing |
102 |
| - (a, ["->"]) -> meta (T.unwords a) Nothing |
103 |
| - (a, b) -> meta (T.unwords a) (Just (T.unwords b)) |
| 101 | + (a, []) -> meta (BS8.unwords a) Nothing |
| 102 | + (a, ["->"]) -> meta (BS8.unwords a) Nothing |
| 103 | + (a, b) -> meta (BS8.unwords a) (Just (BS8.unwords b)) |
104 | 104 |
|
105 | 105 | parseFile :: FilePath -> IO [UnixFile]
|
106 |
| -parseFile fp = either (error . show) id . parseOnly (some findline) <$> T.readFile fp |
| 106 | +parseFile fp = either (error . show) id . parseOnly (some findline) <$> BS.readFile fp |
107 | 107 |
|
108 | 108 | main :: IO ()
|
109 | 109 | main = do
|
|
0 commit comments