package pt.utl.ist.fenix.tools.scripts; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import org.joda.time.DateTime; import pt.utl.ist.fenix.tools.util.FileUtils; public class RegisterSQLScript { public static void main(String[] args) { final File baseDir = new File(args[0]); if (!baseDir.exists()) { System.err.println("Base directory of sql scripts: " + args[0] + " does not exist!"); } else if (baseDir.isDirectory()) { System.err.println("Base directory of sql scripts: " + args[0] + " is not a directory!"); } else { final File file = new File(args[1]); if (!file.exists()) { System.err.println("File: " + args[1] + " does not exist!"); } else if (!file.isFile()) { System.err.println("File: " + args[1] + " is not a file!"); } else { final DateTime dateTime = new DateTime(); final String destinationDirName = getDestinationDir(baseDir, dateTime); final File destinationDir = new File(destinationDirName); if (!destinationDir.exists()) { destinationDir.mkdirs(); } final String destinationFileName = getDestinationFile(destinationDir, dateTime, file); final File destinationFile = new File(destinationFileName); if (destinationFile.exists()) { System.out.println("File " + destinationFileName + " already exists!"); } else { try { final FileInputStream fileInputStream = new FileInputStream(file); final FileOutputStream fileOutputStream = new FileOutputStream(destinationFile); FileUtils.copy(fileInputStream, fileOutputStream); } catch (final IOException ex) { ex.printStackTrace(); } } } } System.exit(0); } private static String getDestinationFile(final File destinationDir, final DateTime dateTime, final File file) { return destinationDir.getAbsolutePath() + File.separatorChar + dateTime.toString("yyyyMMddHHmmss") + "_" + file.getName(); } private static String getDestinationDir(final File baseDir, final DateTime dateTime) { final int year = dateTime.getYear(); final int month = dateTime.getMonthOfYear(); final int day = dateTime.getDayOfMonth(); return baseDir.getAbsolutePath() + File.separatorChar + "R" + year + File.separatorChar + "R" + year + "-" + month + File.separatorChar + "R" + year + "-" + month + "-" + day; } }