allow picking patches from files
This commit is contained in:
		
							parent
							
								
									259ad6101b
								
							
						
					
					
						commit
						b52b106ac5
					
				
							
								
								
									
										5
									
								
								Main.hs
									
									
									
									
									
								
							
							
						
						
									
										5
									
								
								Main.hs
									
									
									
									
									
								
							|  | @ -344,7 +344,10 @@ runCmd CmdPatch {..} cfg = do | |||
|   withSystemTempDirectory "werge-patch" $ \workdir -> do | ||||
|     let f = workdir </> "file" | ||||
|     bracketFile patchMy ReadMode $ \h -> hSplitToFile cfg h f | ||||
|     _ <- runPatch f stdin | ||||
|     _ <- | ||||
|       case patchInput of | ||||
|         Nothing -> runPatch f stdin | ||||
|         Just path -> bracketFile path ReadMode $ runPatch f | ||||
|     conflicted <- pmerge f >>= format cfg stdout -- TODO try to resolve more? | ||||
|     if conflicted | ||||
|       then exitWith (ExitFailure 1) | ||||
|  |  | |||
							
								
								
									
										9
									
								
								Opts.hs
									
									
									
									
									
								
							
							
						
						
									
										9
									
								
								Opts.hs
									
									
									
									
									
								
							|  | @ -230,6 +230,7 @@ data Command | |||
|       } | ||||
|   | CmdPatch | ||||
|       { patchMy :: FilePath | ||||
|       , patchInput :: Maybe FilePath | ||||
|       } | ||||
|   | CmdBreak | ||||
|   | CmdGlue | ||||
|  | @ -295,6 +296,12 @@ cmdDiff = do | |||
| cmdPatch :: Parser Command | ||||
| cmdPatch = do | ||||
|   patchMy <- strArgument $ metavar "MYFILE" <> help "File to be modified" | ||||
|   patchInput <- | ||||
|     optional . strOption | ||||
|       $ long "patch" | ||||
|           <> short 'p' | ||||
|           <> metavar "PATCH" | ||||
|           <> help "File with the patch (default: stdin)" | ||||
|   pure CmdPatch {..} | ||||
| 
 | ||||
| -- TODO have some option to output the (partially merged) my/old/your files so | ||||
|  | @ -314,7 +321,7 @@ cmd = | |||
|             $ progDesc "Find differences between two files" | ||||
|         , command "patch" | ||||
|             $ info cmdPatch | ||||
|             $ progDesc "Apply a patch from `diff' to file" | ||||
|             $ progDesc "Modify a file using a patch from `diff'" | ||||
|         , command "break" | ||||
|             $ info (pure CmdBreak) | ||||
|             $ progDesc "Break text to tokens" | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue
	
	 Mirek Kratochvil
						Mirek Kratochvil