private void createWorkingDir() { logger.debug("Creating working directory..."); if (!inputParameters.getWorkingDirFile().exists()) { boolean result = inputParameters.getWorkingDirFile().mkdirs(); if (!result) { throw new ConversionException( String.format("Could not create working directory '%s'", inputParameters.getWorkingDirFile().getAbsolutePath())); } } logger.debug("Created working directory: OK\n"); }
private void createLogsDir() { logger.debug("Creating external tools logging directory..."); File logsDir = new File(inputParameters.getWorkingDirFile(), CoreConstants.LOGS_DIR); logger.debug("External tools logging directory: {}", logsDir); if (!logsDir.mkdir()) { logger.warn("Couldn't create External tools logging directory!"); } logger.debug("Created external tools logging directory: OK\n"); }
private void cleanWorkingDir() throws IOException { logger.debug("Cleaning working directory..."); if (isCleanWorkingDir()) { FileUtils.cleanDirectory(inputParameters.getWorkingDirFile()); logger.info("Cleaned working directory: OK\n"); } else { logger.info("Cleaning working directory is DISABLED in config.xml\n"); } }
private void initContexts() { logger.debug("Initializing template parameter contexts..."); this.contextProvider = new TemplateParameterContextProvider(configProvider, conversionProvider, inputParameters.getWorkingDirFile()); logger.debug("Initialized template parameter contexts: OK\n"); }
@Override protected void postConvert() throws IOException, XmlParsingException { logger.info("Conversion output:"); String fileName = getOutputName() + ".mxf"; logger.info("{}{}", LogHelper.TAB, new File(inputParameters.getWorkingDirFile(), fileName).getAbsoluteFile()); int subtitleCount = contextProvider.getSequenceContext().getSequenceCount(SequenceType.SUBTITLE); if (subtitleCount == 1) { fileName = getOutputName() + ".stl"; logger.info("{}{}\n", LogHelper.TAB, new File(inputParameters.getWorkingDirFile(), fileName).getAbsoluteFile()); } else { for (int i = 0; i < subtitleCount; i++) { fileName = getOutputName() + "-" + i + ".stl"; logger.info(i < subtitleCount - 1 ? "{}{}" : "{}{}\n", LogHelper.TAB, new File(inputParameters.getWorkingDirFile(), fileName).getAbsoluteFile()); } } } }
private void processSubtitles() { int count = iTunesInputParameters.getSubFiles() == null ? contextProvider.getSequenceContext().getSequenceCount(SequenceType.SUBTITLE) : iTunesInputParameters.getSubFiles().size(); if (count == 0) { return; } IntStream.range(0, count) .mapToObj(i -> contextProvider.getDynamicContext().getParameterValueAsString(DYNAMIC_PARAM_SUBTITLE_ITT_PREFIX + i)) .map(fileName -> new File(inputParameters.getWorkingDirFile(), fileName)) .forEach(this::safeProcessSubtitles); }
/** * Checks whether all input parameters needed for conversion are specified (such as CPL, IMP) are specified. * These parameters can be set either via command line arguments or in config.xml. So, the method must be called * after config.xml is processed. * * @param inputParameters the input to be validated * @throws ArgumentValidationException if some of the required command lines arguments are missing. */ public static void validateInputParameters(ImfUtilityInputParameters inputParameters) throws ArgumentValidationException { File impDirectory = inputParameters.getImpDirectoryFile(); if (impDirectory == null) { throw new ArgumentValidationException("IMP directory must be specified either as a command line argument or in config.xml"); } if (!impDirectory.isDirectory()) { throw new ArgumentValidationException(String.format( "IMP directory '%s' must be an existing folder", impDirectory.getAbsolutePath())); } File cplFile = inputParameters.getCplFile(); if (cplFile == null) { throw new ArgumentValidationException("CPL file must be specified either as a command line argument or in config.xml"); } if (!cplFile.isFile()) { throw new ArgumentValidationException(String.format( "CPL file '%s' must be an existing file", cplFile.getAbsolutePath())); } File workingDir = inputParameters.getWorkingDirFile(); if (workingDir == null) { throw new ArgumentValidationException("Working directory must be specified either as a command line argument or in config.xml"); } }
private void processAdditionalAudio(AudioOption audioOption) throws IOException { File audio = new File(inputParameters.getWorkingDirFile(), audioOption.getFileName()); new AudioAssetProcessor(metadataXmlProvider, itmspDir) .setLocale(LocaleHelper.fromITunesLocale(audioOption.getLocale())) .process(audio); }
@Test public void testDefaultWorkingDir() { String[] args = new String[]{}; ImfUtilityInputParameters inputParameters = new FakeInputParameters( CliFactory.parseArguments(ImfUtilityCmdLineArgs.class, args), new FakeDefaultTools()); inputParameters.setDefaultWorkingDir("defaultWorkingDir"); assertEquals(new File("defaultWorkingDir"), inputParameters.getWorkingDirFile()); }
@Test public void tesCmdLineWorkingDirReplacesDefault() { String[] args = new String[]{ "-w", TemplateParameterContextCreator.getWorkingDir().getAbsolutePath() }; ImfUtilityInputParameters inputParameters = new FakeInputParameters( CliFactory.parseArguments(ImfUtilityCmdLineArgs.class, args), new FakeDefaultTools()); inputParameters.setDefaultWorkingDir("defaultWorkingDir"); assertEquals(TemplateParameterContextCreator.getWorkingDir(), inputParameters.getWorkingDirFile()); }
@Test public void testCmdLineWorkingDir() { String[] argsWorkingDir = new String[]{ "-w", TemplateParameterContextCreator.getWorkingDir().getAbsolutePath() }; String[] argsNoWorkingDir = new String[]{ }; ImfUtilityInputParameters inputParametersWorkingDir = new FakeInputParameters( CliFactory.parseArguments(ImfUtilityCmdLineArgs.class, argsWorkingDir), new FakeDefaultTools()); ImfUtilityInputParameters inputParametersNoWorkingDir = new FakeInputParameters( CliFactory.parseArguments(ImfUtilityCmdLineArgs.class, argsNoWorkingDir), new FakeDefaultTools()); assertEquals(TemplateParameterContextCreator.getWorkingDir(), inputParametersWorkingDir.getWorkingDirFile()); assertNull(inputParametersNoWorkingDir.getWorkingDirFile()); }