public static File getDownloadedFile(final String fileName, String modFolder) { if (modFolder != null) { createFolder(modFolder); return new File(modFolder + File.separator + fileName); } else { return new File(fileName); } }
static boolean isInLocalRepo(final String projectName, final String fileName) { return getLocalFile(fileName, getProjectNameOrDefault(projectName)).exists(); }
if (FileSystemHelper.getDownloadedFile(decodedFileName, downloadableFile.getFolder()).exists() && !arguments.isForceDownload()) { log.debug("Found {} already downloaded, skipping", decodedFileName); return notifyStatus(DownloadStatus.SKIPPED); if (!FileSystemHelper.isInLocalRepo(downloadableFile.getName(), decodedFileName) || arguments.isForceDownload()) { val downloadedFile = FileSystemHelper.getLocalFile(downloadableFile); try { FileUtils.copyURLToFile(new URL(downloadableFile.getDownloadUrl()), downloadedFile); status = DownloadStatus.SUCCESS_CACHE; FileSystemHelper.moveFromLocalRepo(downloadableFile, decodedFileName, downloadToLocalRepo, arguments.getModFolder()); log.info("Successfully {} {}", status, downloadableFile.getFileName()); return notifyStatus(status);
static void moveFromLocalRepo(final DownloadableFile downloadableFile, final String fileName, boolean downloadToLocalRepo, String modFolder) { val newProjectName = getProjectNameOrDefault(downloadableFile.getName()); String folder = downloadableFile.getFolder(); if (Strings.isNullOrEmpty(folder)) { folder = modFolder; } try { File downloadedFile = getDownloadedFile(fileName, folder); if (downloadToLocalRepo) { FileUtils.copyFileToDirectory(getLocalFile(fileName, newProjectName), new File(folder)); } else if (!downloadedFile.exists()) { FileUtils.moveFileToDirectory(getLocalFile(fileName, newProjectName), new File(folder), true); } if (!Strings.isNullOrEmpty(downloadableFile.getRename())) { downloadedFile.renameTo(new File(downloadedFile.getParent() + File.separator + downloadableFile.getRename())); } } catch (final IOException e) { log.error("Could not copy {} from local repo.", newProjectName, e); } }
public void update() { JSONObject appJson; try { appJson = URLHelper.getJsonFromUrl(reference.getUpdateAppUrl()); } catch (IOException | ParseException e) { log.error("Failed to get latest download link, Nincraft server down?", e); return; } val downloadUrl = (String) appJson.get("url"); val appName = URLHelper .decodeSpaces(downloadUrl.substring(downloadUrl.lastIndexOf('/') + 1, downloadUrl.length())); val updatedApp = FileSystemHelper.getDownloadedFile(appName, "."); if (updatedApp.exists()) { log.info("No new updates found"); return; } else { log.info("Update found, downloading {}", appName); } try { FileUtils.copyURLToFile(new URL(downloadUrl), updatedApp); log.info("Downloaded {}", appName); } catch (IOException e) { log.error("Failed to download update", e); } }
static File getLocalFile(DownloadableFile downloadableFile) { return getLocalFile(downloadableFile.getFileName(), downloadableFile.getName()); }
public static void main(final String[] args) throws InterruptedException { log.info("Starting ModpackDownloaderManager with arguments: {}", Arrays.toString(args)); ModpackDownloaderManager modpackDownloaderManager = new ModpackDownloaderManager(args); Arguments arguments = modpackDownloaderManager.getArguments(); if (arguments.isHelpEnabled()) { modpackDownloaderManager.getJCommander().usage(); return; } modpackDownloaderManager.init(); if (arguments.isClearCache()) { FileSystemHelper.clearCache(); return; } if (arguments.isUpdateApp()) { ApplicationUpdateHandler.update(); return; } modpackDownloaderManager.processManifests(); } }
private void setupRepo() { log.trace("Setting up local repository..."); StringBuilder stringBuilder = new StringBuilder(); stringBuilder.append(System.getProperty("user.home")); log.debug("User Home System Property detected as: {}", stringBuilder.toString()); val os = System.getProperty("os.name"); log.debug("Operating System detected as: {}", os); if (os.startsWith("Windows")) { stringBuilder.append(reference.getWindowsFolder()); } else if (os.startsWith("Mac")) { stringBuilder.append(reference.getMacFolder()); } else { stringBuilder.append(reference.getOtherFolder()); } reference.setUserhome(stringBuilder.toString()); log.debug("User Home Folder set to: {}", reference.getUserhome()); FileSystemHelper.createFolder(reference.getUserhome()); log.debug("Setting User Agent..."); System.setProperty("http.agent", "Mozilla/4.0"); log.trace("Finished setting up local repository."); }