multifile 0.1.0.6 → 0.1.0.7
raw patch · 3 files changed
+47/−27 lines, 3 filesdep ~base
Dependency ranges changed: base
Files
- README.md +7/−2
- multifile.cabal +2/−2
- src/Main.hs +38/−23
README.md view
@@ -1,4 +1,9 @@ # multifile --cat test.xml | multifile +usage:+```+multifile <NOARGS> # extract the multifile+multifile --create (or -c) [FILES]+multifile --edit (or -e) [FILES] # open multiple files via editor+multifile --help (or -h) # show this help message+```
multifile.cabal view
@@ -1,5 +1,5 @@ name: multifile-version: 0.1.0.6+version: 0.1.0.7 cabal-version: >=1.10 build-type: Simple license: BSD3@@ -22,7 +22,7 @@ executable multifile main-is: Main.hs build-depends:- base >=4.9 && <4.10,+ base <10000, HaXml <10000, directory <10000, pretty <10000,
src/Main.hs view
@@ -28,6 +28,25 @@ import Options.Applicative +main = do + args <- getArgs+ case args of + [] -> do x <- getContents + extractMultiFile x+ ("--create":xs) -> create xs+ ("-c":xs) -> create xs+ ("--edit":xs) -> edit xs+ ("-e":xs) -> edit xs+ ("--help":xs) -> help+ ("--h":xs) -> help+ _ -> putStr "unknown usage"+ where + help = do putStrLn "usage:"+ putStrLn "multifile <NOARGS> # extract the multifile"+ putStrLn "multifile --create (or -c) [FILES]"+ putStrLn "multifile --edit (or -e) [FILES] # open multiple files via editor"+ putStrLn "multifile --help (or -h) # show this help message"+ isRegularPath :: FilePath -> Bool isRegularPath f = f /= "." && f /= ".." @@ -46,6 +65,7 @@ return files' else if properFile then do content <- lift $ readFile filePath'+ --lift $ putStr ("{"++content++"}") return [File (File_Attrs filePath') content ] else throwE filePath'@@ -53,7 +73,11 @@ create' files =runExceptT $ do files' <- create'' [] files- return $ (render $ htmlprint $ map myFun $ toContents $ Multifile files')+ let a = toContents (Multifile files')+ let b = map myFun a+ let c = htmlprint2 b+ --lift $ print c+ return $ (render $ c) s = xmlEscapeContent stdXmlEscaper @@ -91,19 +115,6 @@ run x = print 2 -main = do - args <- getArgs- case args of - [] -> do- x <- getContents - extractMultiFile x- x -> z x- where - z ("--create":xs) = create xs- z ("-c":xs) = create xs- z ("--edit":xs) = edit xs- z ("-e":xs) = edit xs- z _ = putStr "unknown usage" edit xs = do dir <- getTemporaryDirectory@@ -114,10 +125,15 @@ (Right multifile) -> do writeFile filename multifile maybeEditor <- lookupEnv "EDITOR"+ time1 <- getModificationTime filename let editor = fromMaybe "vim" maybeEditor system (editor++" "++filename)- x <- readFile filename- extractMultiFile x+ time2 <- getModificationTime filename+ if time2 > time1 then do+ x <- readFile filename+ extractMultiFile x+ else+ return () (Left errorMsg) -> putStrLn ("file: "++errorMsg++" does not exist.") return () @@ -126,12 +142,13 @@ either print processFiles p processFiles (Multifile xs) = mapM_ processFile xs-processFile (File (File_Attrs path) content) = writeFile path content+processFile (File (File_Attrs path) content) = do + -- putStr ("("++content++")")+ -- remove inserted newline Character+ writeFile path (drop 1 content) -{-- htmlprint2 :: [Content i] -> Pretty.Doc htmlprint2 = Pretty.cat . map cprint . foldrefs where@@ -143,8 +160,7 @@ ref (RefChar s) = show s cprint (CElem e _) = element e- cprint (CString ws s _) = Pretty.cat (map Pretty.text (fmt 60- ((if ws then id else id) s)))+ cprint (CString ws s _) = Pretty.text "\n" Pretty.<> Pretty.text s cprint (CRef r _) = Pretty.text ("&"++ref r++";") cprint (CMisc _ _) = Pretty.empty @@ -165,7 +181,7 @@ Pretty.text (printableName n) Pretty.<> attrs as Pretty.<> Pretty.text ">")- , Pretty.nest 4 (htmlprint cs)+ , Pretty.nest 0 (htmlprint2 cs) , ( Pretty.text "</" Pretty.<> Pretty.text (printableName n) Pretty.<> Pretty.text ">" )@@ -199,4 +215,3 @@ | otherwise = select q (y:ls,ys) --}