/** * Recursively deletes the given file whether its a file or directory returning the number * of files deleted */ public static int recursiveDelete(File file) { int answer = 0; if (file.isDirectory()) { File[] files = file.listFiles(); if (files != null) { for (File child : files) { answer += recursiveDelete(child); } } } if (file.delete()) { answer += 1; } return answer; }
private void clearTestResultDirectories(Session session) { Files.recursiveDelete(new File(session.getBaseDir(), "target/test-pod-status")); Files.recursiveDelete(new File(session.getBaseDir(), "target/test-pod-logs")); }
@Override public Response call() throws Exception { LOG.info("Removing clone of project at " + basedir); Files.recursiveDelete(basedir); return Response.ok(new StatusDTO(basedir.getName(), "remove project")).build(); } });
/** * Recursively deletes the file and any children files if its a directory */ public static void recursiveDelete(File file, FileFilter filter) { if (filter == null || filter.accept(file)) { if (file.isDirectory()) { File[] files = file.listFiles(); if (files != null) { for (File child : files) { recursiveDelete(child, filter); } } files = file.listFiles(); // lets not delete if we didn't delete a child file if (files == null || files.length == 0) { file.delete(); } } else { file.delete(); } } }
@Override public void install(InstallContext installContext, ProcessConfig config, String id, File installDir) throws Exception { if (removePaths != null) { File baseDir = ProcessUtils.findInstallDir(installDir); for (String removePath : removePaths) { File removeFile = new File(baseDir, removePath); if (removeFile.exists()) { LOG.info("Removing file " + removeFile); Files.recursiveDelete(removeFile); } else { LOG.warn("Post unpack removal path " + removePath + " does not exist at " + removeFile); } } } } }
/** * Iterates through all projects in the given properties file adn generate an archetype for it */ public void generateArchetypesFromGitRepoList(File file, File outputDir, List<String> dirs) throws IOException { File cloneParentDir = new File(outputDir, "../git-clones"); if (cloneParentDir.exists()) { Files.recursiveDelete(cloneParentDir); } Properties properties = new Properties(); try (FileInputStream is = new FileInputStream(file)) { properties.load(is); } for (Map.Entry<Object, Object> entry : properties.entrySet()) { LinkedList<String> values = new LinkedList<>(Arrays.asList(((String) entry.getValue()).split("\\|"))); String gitrepo = values.removeFirst(); String tag = values.isEmpty() ? null : values.removeFirst(); generateArchetypeFromGitRepo(outputDir, dirs, cloneParentDir, (String)entry.getKey(), gitrepo, tag); } }
/** * Note we pass in the {@link io.hawt.aether.AetherFacade} to ensure that the mvn: URL handler is initialised first before we * start to lazily create the git repository * * @param importUrls the list of app zips URLs to be imported to the library on startup. Supports mvn:group/artifact/version/type/classifier formats in addition to http:, file: etc. */ @Produces @Singleton public GitFacade createGit(@ConfigProperty(name = "IMPORT_APP_URLS") String importUrls, AetherFacade aether) throws Exception { GitFacade git = new GitFacade(); System.out.println("Importing urls: " + importUrls); git.setInitialImportURLs(importUrls); git.setCloneRemoteRepoOnStartup(false); File configDir = new File("library"); if (configDir.exists()) { Files.recursiveDelete(configDir); } configDir.mkdirs(); git.setConfigDirectory(configDir); git.init(); System.out.println("Created library at at: " + configDir.getAbsolutePath()); return git; }
/** * Iterates through all projects in the given github organisation and generates an archetype for it */ public void generateArchetypesFromGithubOrganisation(String githubOrg, File outputDir, List<String> dirs) throws IOException { GitHub github = GitHub.connectAnonymously(); GHOrganization organization = github.getOrganization(githubOrg); Objects.notNull(organization, "No github organisation found for: " + githubOrg); Map<String, GHRepository> repositories = organization.getRepositories(); Set<Map.Entry<String, GHRepository>> entries = repositories.entrySet(); File cloneParentDir = new File(outputDir, "../git-clones"); if (cloneParentDir.exists()) { Files.recursiveDelete(cloneParentDir); } for (Map.Entry<String, GHRepository> entry : entries) { String repoName = entry.getKey(); GHRepository repo = entry.getValue(); String url = repo.getGitTransportUrl(); generateArchetypeFromGitRepo(outputDir, dirs, cloneParentDir, repoName, url, null); } }
cloneDir.getParentFile().mkdirs(); if (cloneDir.exists()) { Files.recursiveDelete(cloneDir); Files.recursiveDelete(gitFolder);
Files.recursiveDelete(archetypeDir); } else if (outputSrcDir.exists() && outputGitIgnoreFile.exists() && fileIncludesLine(outputGitIgnoreFile, "src")) { LOG.debug("Removing generated src dir {}", outputSrcDir); Files.recursiveDelete(outputSrcDir); if (outputSrcDir.exists()) { throw new RuntimeException("The projectDir " + outputSrcDir + " should not exist!");
protected CommitInfo doRemove(Git git, String path) throws Exception { File file = getRelativeFile(path); if (file.exists()) { Files.recursiveDelete(file); String filePattern = getFilePattern(path); git.rm().addFilepattern(filePattern).call(); CommitCommand commit = git.commit().setAll(true).setAuthor(personIdent).setMessage(message); return createCommitInfo(commitThenPush(git, commit)); } else { return null; } }
protected CommitInfo doRemove(Git git, List<String> paths) throws Exception { if (paths != null && paths.size() > 0) { int count = 0; for (String path : paths) { File file = getRelativeFile(path); if (file.exists()) { count++; Files.recursiveDelete(file); String filePattern = getFilePattern(path); git.rm().addFilepattern(filePattern).call(); } } if (count > 0) { CommitCommand commit = git.commit().setAll(true).setAuthor(personIdent).setMessage(message); return createCommitInfo(commitThenPush(git, commit)); } } return null; }