add cleanLoomMappings, close #36
This commit is contained in:
		
							parent
							
								
									d9b8c90b5f
								
							
						
					
					
						commit
						a39d0b6656
					
				
					 4 changed files with 99 additions and 13 deletions
				
			
		|  | @ -33,6 +33,7 @@ public class LoomGradlePlugin extends AbstractPlugin { | ||||||
| 		super.apply(target); | 		super.apply(target); | ||||||
| 
 | 
 | ||||||
| 		makeTask("cleanLoomBinaries", CleanLoomBinaries.class); | 		makeTask("cleanLoomBinaries", CleanLoomBinaries.class); | ||||||
|  | 		makeTask("cleanLoomMappings", CleanLoomMappings.class); | ||||||
| 
 | 
 | ||||||
| 		makeTask("remapJar", RemapJar.class); | 		makeTask("remapJar", RemapJar.class); | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
							
								
								
									
										51
									
								
								src/main/java/net/fabricmc/loom/task/CleanLoomMappings.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										51
									
								
								src/main/java/net/fabricmc/loom/task/CleanLoomMappings.java
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,51 @@ | ||||||
|  | /* | ||||||
|  |  * This file is part of fabric-loom, licensed under the MIT License (MIT). | ||||||
|  |  * | ||||||
|  |  * Copyright (c) 2016, 2017, 2018 FabricMC | ||||||
|  |  * | ||||||
|  |  * Permission is hereby granted, free of charge, to any person obtaining a copy | ||||||
|  |  * of this software and associated documentation files (the "Software"), to deal | ||||||
|  |  * in the Software without restriction, including without limitation the rights | ||||||
|  |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||||||
|  |  * copies of the Software, and to permit persons to whom the Software is | ||||||
|  |  * furnished to do so, subject to the following conditions: | ||||||
|  |  * | ||||||
|  |  * The above copyright notice and this permission notice shall be included in all | ||||||
|  |  * copies or substantial portions of the Software. | ||||||
|  |  * | ||||||
|  |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||||
|  |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||||
|  |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||||||
|  |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||||||
|  |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||||||
|  |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | ||||||
|  |  * SOFTWARE. | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | package net.fabricmc.loom.task; | ||||||
|  | 
 | ||||||
|  | import net.fabricmc.loom.LoomGradleExtension; | ||||||
|  | import net.fabricmc.loom.util.DeletingFileVisitor; | ||||||
|  | import org.gradle.api.DefaultTask; | ||||||
|  | import org.gradle.api.Project; | ||||||
|  | import org.gradle.api.tasks.TaskAction; | ||||||
|  | 
 | ||||||
|  | import java.io.IOException; | ||||||
|  | import java.nio.file.Files; | ||||||
|  | 
 | ||||||
|  | public class CleanLoomMappings extends DefaultTask { | ||||||
|  |     @TaskAction | ||||||
|  |     public void run() { | ||||||
|  |         Project project = this.getProject(); | ||||||
|  |         LoomGradleExtension extension = project.getExtensions().getByType(LoomGradleExtension.class); | ||||||
|  |         extension.getMappingsProvider().MAPPINGS_TINY.delete(); | ||||||
|  |         extension.getMappingsProvider().MAPPINGS_TINY_BASE.delete(); | ||||||
|  |         extension.getMinecraftMappedProvider().getIntermediaryJar().delete(); | ||||||
|  |         extension.getMinecraftMappedProvider().getMappedJar().delete(); | ||||||
|  |         try { | ||||||
|  |             Files.walkFileTree(extension.getProjectCache().toPath(), new DeletingFileVisitor()); | ||||||
|  |         } catch (IOException e) { | ||||||
|  |             throw new RuntimeException(e); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | @ -0,0 +1,46 @@ | ||||||
|  | /* | ||||||
|  |  * This file is part of fabric-loom, licensed under the MIT License (MIT). | ||||||
|  |  * | ||||||
|  |  * Copyright (c) 2016, 2017, 2018 FabricMC | ||||||
|  |  * | ||||||
|  |  * Permission is hereby granted, free of charge, to any person obtaining a copy | ||||||
|  |  * of this software and associated documentation files (the "Software"), to deal | ||||||
|  |  * in the Software without restriction, including without limitation the rights | ||||||
|  |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||||||
|  |  * copies of the Software, and to permit persons to whom the Software is | ||||||
|  |  * furnished to do so, subject to the following conditions: | ||||||
|  |  * | ||||||
|  |  * The above copyright notice and this permission notice shall be included in all | ||||||
|  |  * copies or substantial portions of the Software. | ||||||
|  |  * | ||||||
|  |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||||
|  |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||||
|  |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||||||
|  |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||||||
|  |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||||||
|  |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | ||||||
|  |  * SOFTWARE. | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | package net.fabricmc.loom.util; | ||||||
|  | 
 | ||||||
|  | import java.io.IOException; | ||||||
|  | import java.nio.file.FileVisitResult; | ||||||
|  | import java.nio.file.Files; | ||||||
|  | import java.nio.file.Path; | ||||||
|  | import java.nio.file.SimpleFileVisitor; | ||||||
|  | import java.nio.file.attribute.BasicFileAttributes; | ||||||
|  | 
 | ||||||
|  | public class DeletingFileVisitor extends SimpleFileVisitor<Path> { | ||||||
|  | 	@Override | ||||||
|  | 	public FileVisitResult visitFile(Path path, BasicFileAttributes basicFileAttributes) throws IOException { | ||||||
|  | 		Files.delete(path); | ||||||
|  | 		return FileVisitResult.CONTINUE; | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	@Override | ||||||
|  | 	public FileVisitResult postVisitDirectory(Path path, IOException e) throws IOException { | ||||||
|  | 		Files.delete(path); | ||||||
|  | 		return FileVisitResult.CONTINUE; | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | @ -125,19 +125,7 @@ public class SourceRemapper { | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		if (isSrcTmp) { | 		if (isSrcTmp) { | ||||||
| 			Files.walkFileTree(srcPath, new SimpleFileVisitor<Path>() { | 			Files.walkFileTree(srcPath, new DeletingFileVisitor()); | ||||||
| 				@Override |  | ||||||
| 				public FileVisitResult visitFile(Path path, BasicFileAttributes basicFileAttributes) throws IOException { |  | ||||||
| 					Files.delete(path); |  | ||||||
| 					return FileVisitResult.CONTINUE; |  | ||||||
| 				} |  | ||||||
| 
 |  | ||||||
| 				@Override |  | ||||||
| 				public FileVisitResult postVisitDirectory(Path path, IOException e) throws IOException { |  | ||||||
| 					Files.delete(path); |  | ||||||
| 					return FileVisitResult.CONTINUE; |  | ||||||
| 				} |  | ||||||
| 			}); |  | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue