@@ -48,8 +48,11 @@ main' (Options { optFile = file,
48
48
input = if file == " -" then BS. getContents else BS. readFile file
49
49
output = if file == " -" then BS. putStr else BS. writeFile file
50
50
51
+ printEntries :: Tar. Entries Tar. FormatError -> IO ()
51
52
printEntries = Tar. foldEntries (\ entry rest -> printEntry entry >> rest)
52
- (return () ) throwIO
53
+ (return () ) (either throwIO throwIO)
54
+ . Tar. decodeLongNames
55
+
53
56
printEntry = putStrLn . entryInfo verbosity
54
57
55
58
data Compression = None | GZip | BZip
@@ -70,11 +73,11 @@ data Verbosity = Verbose | Concise
70
73
------------------------
71
74
-- List archive contents
72
75
73
- entryInfo :: Verbosity -> Tar. Entry -> String
76
+ entryInfo :: Verbosity -> Tar. GenEntry FilePath FilePath -> String
74
77
entryInfo Verbose = detailedInfo
75
- entryInfo Concise = Tar. entryPath
78
+ entryInfo Concise = Tar. entryTarPath
76
79
77
- detailedInfo :: Tar. Entry -> String
80
+ detailedInfo :: Tar. GenEntry FilePath FilePath -> String
78
81
detailedInfo entry =
79
82
unwords [ typeCode : permissions
80
83
, justify 19 (owner ++ ' /' : group) size
@@ -111,10 +114,10 @@ detailedInfo entry =
111
114
_ -> " 0"
112
115
113
116
time = formatEpochTime " %Y-%m-%d %H:%M" (Tar. entryTime entry)
114
- name = Tar. entryPath entry
117
+ name = Tar. entryTarPath entry
115
118
link = case Tar. entryContent entry of
116
- Tar. HardLink l -> " link to " ++ Tar. fromLinkTarget l
117
- Tar. SymbolicLink l -> " -> " ++ Tar. fromLinkTarget l
119
+ Tar. HardLink l -> " link to " ++ l
120
+ Tar. SymbolicLink l -> " -> " ++ l
118
121
_ -> " "
119
122
120
123
justify :: Int -> String -> String -> String
0 commit comments