diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-17 03:00:50 +0000 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-17 03:00:50 +0000 |
commit | cda3ce3f9172e48d4bc673e57fc617ba0f0b40d1 (patch) | |
tree | 338fb039e5af66237ec0e6557f32b0784f022b61 /support/arara/source/src/main/java | |
parent | 111dc5512e3db14318e26b6700731c68c41c1724 (diff) |
CTAN sync 201909170300
Diffstat (limited to 'support/arara/source/src/main/java')
45 files changed, 197 insertions, 124 deletions
diff --git a/support/arara/source/src/main/java/com/github/cereda/arara/Arara.java b/support/arara/source/src/main/java/com/github/cereda/arara/Arara.java index c644978c93..36405b1b47 100644 --- a/support/arara/source/src/main/java/com/github/cereda/arara/Arara.java +++ b/support/arara/source/src/main/java/com/github/cereda/arara/Arara.java @@ -1,6 +1,6 @@ /** * Arara, the cool TeX automation tool - * Copyright (c) 2012 -- 2018, Paulo Roberto Massa Cereda + * Copyright (c) 2012 -- 2019, Paulo Roberto Massa Cereda * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -199,7 +199,7 @@ public class Arara { // just happened and might require user intervention. System.exit(CommonUtils.getExitStatus()); - // I owe David Carlisle $10 + // I owe David Carlisle $100 } } diff --git a/support/arara/source/src/main/java/com/github/cereda/arara/controller/ConfigurationController.java b/support/arara/source/src/main/java/com/github/cereda/arara/controller/ConfigurationController.java index f3868b488f..2dbc3a2bff 100644 --- a/support/arara/source/src/main/java/com/github/cereda/arara/controller/ConfigurationController.java +++ b/support/arara/source/src/main/java/com/github/cereda/arara/controller/ConfigurationController.java @@ -1,6 +1,6 @@ /** * Arara, the cool TeX automation tool - * Copyright (c) 2012 -- 2018, Paulo Roberto Massa Cereda + * Copyright (c) 2012 -- 2019, Paulo Roberto Massa Cereda * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff --git a/support/arara/source/src/main/java/com/github/cereda/arara/controller/LanguageController.java b/support/arara/source/src/main/java/com/github/cereda/arara/controller/LanguageController.java index a0ccc2a958..85bfc3a43d 100644 --- a/support/arara/source/src/main/java/com/github/cereda/arara/controller/LanguageController.java +++ b/support/arara/source/src/main/java/com/github/cereda/arara/controller/LanguageController.java @@ -1,6 +1,6 @@ /** * Arara, the cool TeX automation tool - * Copyright (c) 2012 -- 2018, Paulo Roberto Massa Cereda + * Copyright (c) 2012 -- 2019, Paulo Roberto Massa Cereda * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff --git a/support/arara/source/src/main/java/com/github/cereda/arara/controller/LoggingController.java b/support/arara/source/src/main/java/com/github/cereda/arara/controller/LoggingController.java index 193726fcc4..958beec291 100644 --- a/support/arara/source/src/main/java/com/github/cereda/arara/controller/LoggingController.java +++ b/support/arara/source/src/main/java/com/github/cereda/arara/controller/LoggingController.java @@ -1,6 +1,6 @@ /** * Arara, the cool TeX automation tool - * Copyright (c) 2012 -- 2018, Paulo Roberto Massa Cereda + * Copyright (c) 2012 -- 2019, Paulo Roberto Massa Cereda * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff --git a/support/arara/source/src/main/java/com/github/cereda/arara/controller/SessionController.java b/support/arara/source/src/main/java/com/github/cereda/arara/controller/SessionController.java index ac5a45d2b3..41c627dc98 100644 --- a/support/arara/source/src/main/java/com/github/cereda/arara/controller/SessionController.java +++ b/support/arara/source/src/main/java/com/github/cereda/arara/controller/SessionController.java @@ -1,6 +1,6 @@ /** * Arara, the cool TeX automation tool - * Copyright (c) 2012 -- 2018, Paulo Roberto Massa Cereda + * Copyright (c) 2012 -- 2019, Paulo Roberto Massa Cereda * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff --git a/support/arara/source/src/main/java/com/github/cereda/arara/controller/SystemCallController.java b/support/arara/source/src/main/java/com/github/cereda/arara/controller/SystemCallController.java index 9a592853f6..4d87adc8a8 100644 --- a/support/arara/source/src/main/java/com/github/cereda/arara/controller/SystemCallController.java +++ b/support/arara/source/src/main/java/com/github/cereda/arara/controller/SystemCallController.java @@ -1,6 +1,6 @@ /** * Arara, the cool TeX automation tool - * Copyright (c) 2012 -- 2018, Paulo Roberto Massa Cereda + * Copyright (c) 2012 -- 2019, Paulo Roberto Massa Cereda * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff --git a/support/arara/source/src/main/java/com/github/cereda/arara/model/AraraException.java b/support/arara/source/src/main/java/com/github/cereda/arara/model/AraraException.java index f2a340fd01..5f5d788e0f 100644 --- a/support/arara/source/src/main/java/com/github/cereda/arara/model/AraraException.java +++ b/support/arara/source/src/main/java/com/github/cereda/arara/model/AraraException.java @@ -1,6 +1,6 @@ /** * Arara, the cool TeX automation tool - * Copyright (c) 2012 -- 2018, Paulo Roberto Massa Cereda + * Copyright (c) 2012 -- 2019, Paulo Roberto Massa Cereda * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff --git a/support/arara/source/src/main/java/com/github/cereda/arara/model/Argument.java b/support/arara/source/src/main/java/com/github/cereda/arara/model/Argument.java index 0b15baf9d7..b0e7d2bca6 100644 --- a/support/arara/source/src/main/java/com/github/cereda/arara/model/Argument.java +++ b/support/arara/source/src/main/java/com/github/cereda/arara/model/Argument.java @@ -1,6 +1,6 @@ /** * Arara, the cool TeX automation tool - * Copyright (c) 2012 -- 2018, Paulo Roberto Massa Cereda + * Copyright (c) 2012 -- 2019, Paulo Roberto Massa Cereda * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff --git a/support/arara/source/src/main/java/com/github/cereda/arara/model/Command.java b/support/arara/source/src/main/java/com/github/cereda/arara/model/Command.java index 3058389832..848f3f3010 100644 --- a/support/arara/source/src/main/java/com/github/cereda/arara/model/Command.java +++ b/support/arara/source/src/main/java/com/github/cereda/arara/model/Command.java @@ -1,6 +1,6 @@ /** * Arara, the cool TeX automation tool - * Copyright (c) 2012 -- 2018, Paulo Roberto Massa Cereda + * Copyright (c) 2012 -- 2019, Paulo Roberto Massa Cereda * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -116,7 +116,12 @@ public class Command { */ @Override public String toString() { - return CommonUtils.getCollectionElements(elements, "[ ", " ]", ", "); + return CommonUtils.getCollectionElements(elements, "[ ", " ]", ", "). + concat( + hasWorkingDirectory() + ? " @ " + workingDirectory.toString() + : "" + ); } } diff --git a/support/arara/source/src/main/java/com/github/cereda/arara/model/Conditional.java b/support/arara/source/src/main/java/com/github/cereda/arara/model/Conditional.java index 4c830f0a1b..d8f0543709 100644 --- a/support/arara/source/src/main/java/com/github/cereda/arara/model/Conditional.java +++ b/support/arara/source/src/main/java/com/github/cereda/arara/model/Conditional.java @@ -1,6 +1,6 @@ /** * Arara, the cool TeX automation tool - * Copyright (c) 2012 -- 2018, Paulo Roberto Massa Cereda + * Copyright (c) 2012 -- 2019, Paulo Roberto Massa Cereda * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff --git a/support/arara/source/src/main/java/com/github/cereda/arara/model/Configuration.java b/support/arara/source/src/main/java/com/github/cereda/arara/model/Configuration.java index 0c2c294958..70f6382364 100644 --- a/support/arara/source/src/main/java/com/github/cereda/arara/model/Configuration.java +++ b/support/arara/source/src/main/java/com/github/cereda/arara/model/Configuration.java @@ -1,6 +1,6 @@ /** * Arara, the cool TeX automation tool - * Copyright (c) 2012 -- 2018, Paulo Roberto Massa Cereda + * Copyright (c) 2012 -- 2019, Paulo Roberto Massa Cereda * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -121,7 +121,7 @@ public class Configuration { mapping.put("execution.timeout.value", 0L); mapping.put("execution.timeout.unit", TimeUnit.MILLISECONDS); mapping.put("application.version", "4.0"); - mapping.put("application.revision", "1"); + mapping.put("application.revision", "2"); mapping.put("directives.linebreak.pattern", "^\\s*-->\\s(.*)$"); String directive = "^\\s*(\\w+)\\s*(:\\s*(\\{.*\\})\\s*)?"; @@ -139,7 +139,7 @@ public class Configuration { mapping.put("execution.logging", false); mapping.put("execution.dryrun", false); mapping.put("execution.status", 0); - mapping.put("application.copyright.year", "2012-2018"); + mapping.put("application.copyright.year", "2012-2019"); mapping.put("execution.filetypes", ConfigurationUtils. getDefaultFileTypes()); mapping.put("execution.rule.paths", diff --git a/support/arara/source/src/main/java/com/github/cereda/arara/model/Database.java b/support/arara/source/src/main/java/com/github/cereda/arara/model/Database.java index 66d360fdc0..474209e405 100644 --- a/support/arara/source/src/main/java/com/github/cereda/arara/model/Database.java +++ b/support/arara/source/src/main/java/com/github/cereda/arara/model/Database.java @@ -1,6 +1,6 @@ /** * Arara, the cool TeX automation tool - * Copyright (c) 2012 -- 2018, Paulo Roberto Massa Cereda + * Copyright (c) 2012 -- 2019, Paulo Roberto Massa Cereda * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff --git a/support/arara/source/src/main/java/com/github/cereda/arara/model/Directive.java b/support/arara/source/src/main/java/com/github/cereda/arara/model/Directive.java index e311477125..a3831db8b2 100644 --- a/support/arara/source/src/main/java/com/github/cereda/arara/model/Directive.java +++ b/support/arara/source/src/main/java/com/github/cereda/arara/model/Directive.java @@ -1,6 +1,6 @@ /** * Arara, the cool TeX automation tool - * Copyright (c) 2012 -- 2018, Paulo Roberto Massa Cereda + * Copyright (c) 2012 -- 2019, Paulo Roberto Massa Cereda * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff --git a/support/arara/source/src/main/java/com/github/cereda/arara/model/Evaluator.java b/support/arara/source/src/main/java/com/github/cereda/arara/model/Evaluator.java index 41f8d09943..30995ecaf9 100644 --- a/support/arara/source/src/main/java/com/github/cereda/arara/model/Evaluator.java +++ b/support/arara/source/src/main/java/com/github/cereda/arara/model/Evaluator.java @@ -1,6 +1,6 @@ /** * Arara, the cool TeX automation tool - * Copyright (c) 2012 -- 2018, Paulo Roberto Massa Cereda + * Copyright (c) 2012 -- 2019, Paulo Roberto Massa Cereda * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff --git a/support/arara/source/src/main/java/com/github/cereda/arara/model/Extractor.java b/support/arara/source/src/main/java/com/github/cereda/arara/model/Extractor.java index 84edef1eb0..b4a248688a 100644 --- a/support/arara/source/src/main/java/com/github/cereda/arara/model/Extractor.java +++ b/support/arara/source/src/main/java/com/github/cereda/arara/model/Extractor.java @@ -1,6 +1,6 @@ /** * Arara, the cool TeX automation tool - * Copyright (c) 2012 -- 2018, Paulo Roberto Massa Cereda + * Copyright (c) 2012 -- 2019, Paulo Roberto Massa Cereda * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff --git a/support/arara/source/src/main/java/com/github/cereda/arara/model/FileType.java b/support/arara/source/src/main/java/com/github/cereda/arara/model/FileType.java index b9f2a01e03..e7403bee51 100644 --- a/support/arara/source/src/main/java/com/github/cereda/arara/model/FileType.java +++ b/support/arara/source/src/main/java/com/github/cereda/arara/model/FileType.java @@ -1,6 +1,6 @@ /** * Arara, the cool TeX automation tool - * Copyright (c) 2012 -- 2018, Paulo Roberto Massa Cereda + * Copyright (c) 2012 -- 2019, Paulo Roberto Massa Cereda * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff --git a/support/arara/source/src/main/java/com/github/cereda/arara/model/FileTypeResource.java b/support/arara/source/src/main/java/com/github/cereda/arara/model/FileTypeResource.java index 2934035858..d23b10f9f5 100644 --- a/support/arara/source/src/main/java/com/github/cereda/arara/model/FileTypeResource.java +++ b/support/arara/source/src/main/java/com/github/cereda/arara/model/FileTypeResource.java @@ -1,6 +1,6 @@ /** * Arara, the cool TeX automation tool - * Copyright (c) 2012 -- 2018, Paulo Roberto Massa Cereda + * Copyright (c) 2012 -- 2019, Paulo Roberto Massa Cereda * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff --git a/support/arara/source/src/main/java/com/github/cereda/arara/model/Interpreter.java b/support/arara/source/src/main/java/com/github/cereda/arara/model/Interpreter.java index 7c8f6e3928..30c18a3074 100644 --- a/support/arara/source/src/main/java/com/github/cereda/arara/model/Interpreter.java +++ b/support/arara/source/src/main/java/com/github/cereda/arara/model/Interpreter.java @@ -1,6 +1,6 @@ /** * Arara, the cool TeX automation tool - * Copyright (c) 2012 -- 2018, Paulo Roberto Massa Cereda + * Copyright (c) 2012 -- 2019, Paulo Roberto Massa Cereda * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -60,13 +60,13 @@ public class Interpreter { // the application messages obtained from the // language controller - private static final LanguageController messages = - LanguageController.getInstance(); - + private static final LanguageController messages + = LanguageController.getInstance(); + // the class logger obtained from // the logger factory - private static final Logger logger = - LoggerFactory.getLogger(Interpreter.class); + private static final Logger logger + = LoggerFactory.getLogger(Interpreter.class); // list of directives to be // interpreted in here @@ -128,8 +128,8 @@ public class Interpreter { Methods.addRuleMethods(parameters); String name = rule.getName(); - List<String> authors = rule.getAuthors() == null ? - new ArrayList<String>() : rule.getAuthors(); + List<String> authors = rule.getAuthors() == null + ? new ArrayList<String>() : rule.getAuthors(); ConfigurationController.getInstance(). put("execution.rule.arguments", InterpreterUtils.getRuleArguments(rule) @@ -187,11 +187,11 @@ public class Interpreter { String.valueOf(current))) { DisplayUtils.printEntry(name, - command.getName() == null ? - messages.getMessage( - Messages.INFO_LABEL_UNNAMED_TASK - ) - : command.getName() + command.getName() == null + ? messages.getMessage( + Messages.INFO_LABEL_UNNAMED_TASK + ) + : command.getName() ); boolean success = true; @@ -223,72 +223,100 @@ public class Interpreter { Trigger trigger = (Trigger) current; trigger.process(); } else { - Object representation = - CommonUtils.checkClass( - Command.class, - current - ) ? - current - : String.valueOf(current); - logger.info( - messages.getMessage( - Messages.LOG_INFO_SYSTEM_COMMAND, - representation - ) - ); + if (CommonUtils.checkClass( + Boolean.class, current)) { + success = (Boolean) current; + logger.info( + messages.getMessage( + Messages.LOG_INFO_BOOLEAN_MODE, + String.valueOf(success) + ) + ); - if (((Boolean) ConfigurationController. - getInstance(). - get("execution.dryrun")) == false) { - int code = InterpreterUtils. - run(representation); - Object check = null; - try { - Map<String, Object> context = - new HashMap<String, Object>(); - context.put("value", code); - check = TemplateRuntime.eval( - "@{ ".concat( - command.getExit() == null ? - "value == 0" - : command.getExit()).concat(" }"), - context); - } catch (RuntimeException exception) { - throw new AraraException( - CommonUtils.getRuleErrorHeader(). - concat( - messages.getMessage( - Messages.ERROR_INTERPRETER_EXIT_RUNTIME_ERROR - ) - ), - exception - ); - } - if (CommonUtils. - checkClass( - Boolean.class, - check)) { - success = (Boolean) check; - } else { - throw new AraraException( - CommonUtils.getRuleErrorHeader().concat( - messages.getMessage( - Messages.ERROR_INTERPRETER_WRONG_EXIT_CLOSURE_RETURN - ) + if (((Boolean) ConfigurationController. + getInstance(). + get("execution.dryrun")) == true) { + + DisplayUtils.printAuthors(authors); + DisplayUtils.wrapText( + messages.getMessage( + Messages.INFO_INTERPRETER_DRYRUN_MODE_BOOLEAN_MODE, + success ) ); + DisplayUtils.printConditional( + directive.getConditional() + ); } } else { - DisplayUtils.printAuthors(authors); - DisplayUtils.wrapText( + + Object representation + = CommonUtils.checkClass( + Command.class, + current + ) + ? current + : String.valueOf(current); + logger.info( messages.getMessage( - Messages.INFO_INTERPRETER_DRYRUN_MODE_SYSTEM_COMMAND, + Messages.LOG_INFO_SYSTEM_COMMAND, representation ) ); - DisplayUtils.printConditional( - directive.getConditional() - ); + + if (((Boolean) ConfigurationController. + getInstance(). + get("execution.dryrun")) == false) { + int code = InterpreterUtils. + run(representation); + Object check = null; + try { + Map<String, Object> context + = new HashMap<String, Object>(); + context.put("value", code); + check = TemplateRuntime.eval( + "@{ ".concat( + command.getExit() == null + ? "value == 0" + : command.getExit()).concat(" }"), + context); + } catch (RuntimeException exception) { + throw new AraraException( + CommonUtils.getRuleErrorHeader(). + concat( + messages.getMessage( + Messages.ERROR_INTERPRETER_EXIT_RUNTIME_ERROR + ) + ), + exception + ); + } + if (CommonUtils. + checkClass( + Boolean.class, + check)) { + success = (Boolean) check; + } else { + throw new AraraException( + CommonUtils.getRuleErrorHeader().concat( + messages.getMessage( + Messages.ERROR_INTERPRETER_WRONG_EXIT_CLOSURE_RETURN + ) + ) + ); + } + } else { + DisplayUtils.printAuthors(authors); + DisplayUtils.wrapText( + messages.getMessage( + Messages.INFO_INTERPRETER_DRYRUN_MODE_SYSTEM_COMMAND, + representation + ) + ); + DisplayUtils.printConditional( + directive.getConditional() + ); + } } } @@ -397,8 +425,8 @@ public class Interpreter { Methods.addRuleMethods(context); for (Argument argument : arguments) { - if ((argument.isRequired()) && - (!directive.getParameters().containsKey( + if ((argument.isRequired()) + && (!directive.getParameters().containsKey( argument.getIdentifier()))) { throw new AraraException( CommonUtils.getRuleErrorHeader().concat( @@ -421,7 +449,7 @@ public class Interpreter { concat(messages.getMessage( Messages.ERROR_INTERPRETER_DEFAULT_VALUE_RUNTIME_ERROR ) - ), + ), exception ); } @@ -429,8 +457,8 @@ public class Interpreter { mapping.put(argument.getIdentifier(), ""); } - if ((argument.getFlag() != null) && - (directive.getParameters().containsKey( + if ((argument.getFlag() != null) + && (directive.getParameters().containsKey( argument.getIdentifier()))) { try { @@ -451,7 +479,7 @@ public class Interpreter { } } } - + return mapping; } diff --git a/support/arara/source/src/main/java/com/github/cereda/arara/model/Language.java b/support/arara/source/src/main/java/com/github/cereda/arara/model/Language.java index 2b0fc8266e..ff1b16a03f 100644 --- a/support/arara/source/src/main/java/com/github/cereda/arara/model/Language.java +++ b/support/arara/source/src/main/java/com/github/cereda/arara/model/Language.java @@ -1,6 +1,6 @@ /** * Arara, the cool TeX automation tool - * Copyright (c) 2012 -- 2018, Paulo Roberto Massa Cereda + * Copyright (c) 2012 -- 2019, Paulo Roberto Massa Cereda * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff --git a/support/arara/source/src/main/java/com/github/cereda/arara/model/Messages.java b/support/arara/source/src/main/java/com/github/cereda/arara/model/Messages.java index 9916c3c145..901e61be6a 100644 --- a/support/arara/source/src/main/java/com/github/cereda/arara/model/Messages.java +++ b/support/arara/source/src/main/java/com/github/cereda/arara/model/Messages.java @@ -1,6 +1,6 @@ /** * Arara, the cool TeX automation tool - * Copyright (c) 2012 -- 2018, Paulo Roberto Massa Cereda + * Copyright (c) 2012 -- 2019, Paulo Roberto Massa Cereda * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -81,6 +81,7 @@ public enum Messages { ERROR_INTERPRETER_RULE_NOT_FOUND, ERROR_INTERPRETER_UNKNOWN_KEYS, ERROR_INTERPRETER_WRONG_EXIT_CLOSURE_RETURN, + ERROR_ISSUBDIRECTORY_NOT_A_DIRECTORY, ERROR_LANGUAGE_INVALID_CODE, ERROR_LOAD_COULD_NOT_LOAD_XML, ERROR_PARSER_INVALID_PREAMBLE, @@ -128,6 +129,7 @@ public enum Messages { INFO_DISPLAY_EXCEPTION_MORE_DETAILS, INFO_DISPLAY_EXECUTION_TIME, INFO_DISPLAY_FILE_INFORMATION, + INFO_INTERPRETER_DRYRUN_MODE_BOOLEAN_MODE, INFO_INTERPRETER_DRYRUN_MODE_SYSTEM_COMMAND, INFO_INTERPRETER_DRYRUN_MODE_TRIGGER_MODE, INFO_INTERPRETER_VERBOSE_MODE_TRIGGER_MODE, @@ -154,6 +156,7 @@ public enum Messages { INFO_PARSER_VERBOSE_MODE_DESCRIPTION, INFO_PARSER_VERSION_DESCRIPTION, LOG_INFO_BEGIN_BUFFER, + LOG_INFO_BOOLEAN_MODE, LOG_INFO_DIRECTIVES_BLOCK, LOG_INFO_END_BUFFER, LOG_INFO_INTERPRET_RULE, diff --git a/support/arara/source/src/main/java/com/github/cereda/arara/model/Pair.java b/support/arara/source/src/main/java/com/github/cereda/arara/model/Pair.java index d8591b6ef7..427a5fca1d 100644 --- a/support/arara/source/src/main/java/com/github/cereda/arara/model/Pair.java +++ b/support/arara/source/src/main/java/com/github/cereda/arara/model/Pair.java @@ -1,6 +1,6 @@ /** * Arara, the cool TeX automation tool - * Copyright (c) 2012 -- 2018, Paulo Roberto Massa Cereda + * Copyright (c) 2012 -- 2019, Paulo Roberto Massa Cereda * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff --git a/support/arara/source/src/main/java/com/github/cereda/arara/model/Parser.java b/support/arara/source/src/main/java/com/github/cereda/arara/model/Parser.java index 723e24e76e..681c2f8fef 100644 --- a/support/arara/source/src/main/java/com/github/cereda/arara/model/Parser.java +++ b/support/arara/source/src/main/java/com/github/cereda/arara/model/Parser.java @@ -1,6 +1,6 @@ /** * Arara, the cool TeX automation tool - * Copyright (c) 2012 -- 2018, Paulo Roberto Massa Cereda + * Copyright (c) 2012 -- 2019, Paulo Roberto Massa Cereda * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff --git a/support/arara/source/src/main/java/com/github/cereda/arara/model/Resource.java b/support/arara/source/src/main/java/com/github/cereda/arara/model/Resource.java index 2994a4d691..58eaa0dc40 100644 --- a/support/arara/source/src/main/java/com/github/cereda/arara/model/Resource.java +++ b/support/arara/source/src/main/java/com/github/cereda/arara/model/Resource.java @@ -1,6 +1,6 @@ /** * Arara, the cool TeX automation tool - * Copyright (c) 2012 -- 2018, Paulo Roberto Massa Cereda + * Copyright (c) 2012 -- 2019, Paulo Roberto Massa Cereda * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff --git a/support/arara/source/src/main/java/com/github/cereda/arara/model/Rule.java b/support/arara/source/src/main/java/com/github/cereda/arara/model/Rule.java index af3ad19950..acf43cdf58 100644 --- a/support/arara/source/src/main/java/com/github/cereda/arara/model/Rule.java +++ b/support/arara/source/src/main/java/com/github/cereda/arara/model/Rule.java @@ -1,6 +1,6 @@ /** * Arara, the cool TeX automation tool - * Copyright (c) 2012 -- 2018, Paulo Roberto Massa Cereda + * Copyright (c) 2012 -- 2019, Paulo Roberto Massa Cereda * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff --git a/support/arara/source/src/main/java/com/github/cereda/arara/model/RuleCommand.java b/support/arara/source/src/main/java/com/github/cereda/arara/model/RuleCommand.java index b209d19bcb..e63430afeb 100644 --- a/support/arara/source/src/main/java/com/github/cereda/arara/model/RuleCommand.java +++ b/support/arara/source/src/main/java/com/github/cereda/arara/model/RuleCommand.java @@ -1,6 +1,6 @@ /** * Arara, the cool TeX automation tool - * Copyright (c) 2012 -- 2018, Paulo Roberto Massa Cereda + * Copyright (c) 2012 -- 2019, Paulo Roberto Massa Cereda * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff --git a/support/arara/source/src/main/java/com/github/cereda/arara/model/Session.java b/support/arara/source/src/main/java/com/github/cereda/arara/model/Session.java index c756ae4550..4462c5e369 100644 --- a/support/arara/source/src/main/java/com/github/cereda/arara/model/Session.java +++ b/support/arara/source/src/main/java/com/github/cereda/arara/model/Session.java @@ -1,6 +1,6 @@ /** * Arara, the cool TeX automation tool - * Copyright (c) 2012 -- 2018, Paulo Roberto Massa Cereda + * Copyright (c) 2012 -- 2019, Paulo Roberto Massa Cereda * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff --git a/support/arara/source/src/main/java/com/github/cereda/arara/model/StopWatch.java b/support/arara/source/src/main/java/com/github/cereda/arara/model/StopWatch.java index 45e0969d0b..da7062cf19 100644 --- a/support/arara/source/src/main/java/com/github/cereda/arara/model/StopWatch.java +++ b/support/arara/source/src/main/java/com/github/cereda/arara/model/StopWatch.java @@ -1,6 +1,6 @@ /** * Arara, the cool TeX automation tool - * Copyright (c) 2012 -- 2018, Paulo Roberto Massa Cereda + * Copyright (c) 2012 -- 2019, Paulo Roberto Massa Cereda * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff --git a/support/arara/source/src/main/java/com/github/cereda/arara/model/Trigger.java b/support/arara/source/src/main/java/com/github/cereda/arara/model/Trigger.java index 11da04bfcb..7d8ae6ce79 100644 --- a/support/arara/source/src/main/java/com/github/cereda/arara/model/Trigger.java +++ b/support/arara/source/src/main/java/com/github/cereda/arara/model/Trigger.java @@ -1,6 +1,6 @@ /** * Arara, the cool TeX automation tool - * Copyright (c) 2012 -- 2018, Paulo Roberto Massa Cereda + * Copyright (c) 2012 -- 2019, Paulo Roberto Massa Cereda * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff --git a/support/arara/source/src/main/java/com/github/cereda/arara/utils/ClassLoadingUtils.java b/support/arara/source/src/main/java/com/github/cereda/arara/utils/ClassLoadingUtils.java index c40536ce08..fdd642e21d 100644 --- a/support/arara/source/src/main/java/com/github/cereda/arara/utils/ClassLoadingUtils.java +++ b/support/arara/source/src/main/java/com/github/cereda/arara/utils/ClassLoadingUtils.java @@ -1,6 +1,6 @@ /** * Arara, the cool TeX automation tool - * Copyright (c) 2012 -- 2018, Paulo Roberto Massa Cereda + * Copyright (c) 2012 -- 2019, Paulo Roberto Massa Cereda * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff --git a/support/arara/source/src/main/java/com/github/cereda/arara/utils/CommonUtils.java b/support/arara/source/src/main/java/com/github/cereda/arara/utils/CommonUtils.java index 621634749e..0263f64eac 100644 --- a/support/arara/source/src/main/java/com/github/cereda/arara/utils/CommonUtils.java +++ b/support/arara/source/src/main/java/com/github/cereda/arara/utils/CommonUtils.java @@ -1,6 +1,6 @@ /** * Arara, the cool TeX automation tool - * Copyright (c) 2012 -- 2018, Paulo Roberto Massa Cereda + * Copyright (c) 2012 -- 2019, Paulo Roberto Massa Cereda * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -925,5 +925,30 @@ public class CommonUtils { return buildPath(path, getBasename(file)); } } + + /** + * Checks whether a directory is under a root directory. + * @param f1 Directory to be inspected. + * @param f2 Root directory. + * @return Logical value indicating whether the directoy is under root. + * @throws AraraException There was a problem with path retrieval. + */ + public static boolean isSubDirectory(File f1, File f2) + throws AraraException { + if (f1.isDirectory()) { + return getCanonicalPath(f1). + startsWith( + getParentCanonicalPath(f2).concat(File.separator) + ); + } + else { + throw new AraraException( + messages.getMessage( + Messages.ERROR_ISSUBDIRECTORY_NOT_A_DIRECTORY, + f1.getName() + ) + ); + } + } } diff --git a/support/arara/source/src/main/java/com/github/cereda/arara/utils/ConfigurationUtils.java b/support/arara/source/src/main/java/com/github/cereda/arara/utils/ConfigurationUtils.java index 0b7d3b8a5b..7336110ebe 100644 --- a/support/arara/source/src/main/java/com/github/cereda/arara/utils/ConfigurationUtils.java +++ b/support/arara/source/src/main/java/com/github/cereda/arara/utils/ConfigurationUtils.java @@ -1,6 +1,6 @@ /** * Arara, the cool TeX automation tool - * Copyright (c) 2012 -- 2018, Paulo Roberto Massa Cereda + * Copyright (c) 2012 -- 2019, Paulo Roberto Massa Cereda * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff --git a/support/arara/source/src/main/java/com/github/cereda/arara/utils/DatabaseUtils.java b/support/arara/source/src/main/java/com/github/cereda/arara/utils/DatabaseUtils.java index 8861ff7e5e..3a9b4eeea5 100644 --- a/support/arara/source/src/main/java/com/github/cereda/arara/utils/DatabaseUtils.java +++ b/support/arara/source/src/main/java/com/github/cereda/arara/utils/DatabaseUtils.java @@ -1,6 +1,6 @@ /** * Arara, the cool TeX automation tool - * Copyright (c) 2012 -- 2018, Paulo Roberto Massa Cereda + * Copyright (c) 2012 -- 2019, Paulo Roberto Massa Cereda * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff --git a/support/arara/source/src/main/java/com/github/cereda/arara/utils/DirectiveAssembler.java b/support/arara/source/src/main/java/com/github/cereda/arara/utils/DirectiveAssembler.java index d2dd588996..6f6f676ab5 100644 --- a/support/arara/source/src/main/java/com/github/cereda/arara/utils/DirectiveAssembler.java +++ b/support/arara/source/src/main/java/com/github/cereda/arara/utils/DirectiveAssembler.java @@ -1,6 +1,6 @@ /** * Arara, the cool TeX automation tool - * Copyright (c) 2012 -- 2018, Paulo Roberto Massa Cereda + * Copyright (c) 2012 -- 2019, Paulo Roberto Massa Cereda * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff --git a/support/arara/source/src/main/java/com/github/cereda/arara/utils/DirectiveResolver.java b/support/arara/source/src/main/java/com/github/cereda/arara/utils/DirectiveResolver.java index 6ea18e31ba..b0a1af850b 100644 --- a/support/arara/source/src/main/java/com/github/cereda/arara/utils/DirectiveResolver.java +++ b/support/arara/source/src/main/java/com/github/cereda/arara/utils/DirectiveResolver.java @@ -1,6 +1,6 @@ /** * Arara, the cool TeX automation tool - * Copyright (c) 2012 -- 2018, Paulo Roberto Massa Cereda + * Copyright (c) 2012 -- 2019, Paulo Roberto Massa Cereda * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff --git a/support/arara/source/src/main/java/com/github/cereda/arara/utils/DirectiveUtils.java b/support/arara/source/src/main/java/com/github/cereda/arara/utils/DirectiveUtils.java index d4d2a88ac7..6ea0404f72 100644 --- a/support/arara/source/src/main/java/com/github/cereda/arara/utils/DirectiveUtils.java +++ b/support/arara/source/src/main/java/com/github/cereda/arara/utils/DirectiveUtils.java @@ -1,6 +1,6 @@ /** * Arara, the cool TeX automation tool - * Copyright (c) 2012 -- 2018, Paulo Roberto Massa Cereda + * Copyright (c) 2012 -- 2019, Paulo Roberto Massa Cereda * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff --git a/support/arara/source/src/main/java/com/github/cereda/arara/utils/DisplayUtils.java b/support/arara/source/src/main/java/com/github/cereda/arara/utils/DisplayUtils.java index 879119e60e..75cda6f99a 100644 --- a/support/arara/source/src/main/java/com/github/cereda/arara/utils/DisplayUtils.java +++ b/support/arara/source/src/main/java/com/github/cereda/arara/utils/DisplayUtils.java @@ -1,6 +1,6 @@ /** * Arara, the cool TeX automation tool - * Copyright (c) 2012 -- 2018, Paulo Roberto Massa Cereda + * Copyright (c) 2012 -- 2019, Paulo Roberto Massa Cereda * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff --git a/support/arara/source/src/main/java/com/github/cereda/arara/utils/FileHandlingUtils.java b/support/arara/source/src/main/java/com/github/cereda/arara/utils/FileHandlingUtils.java index 9f56c92f5d..fdd1ab36c6 100644 --- a/support/arara/source/src/main/java/com/github/cereda/arara/utils/FileHandlingUtils.java +++ b/support/arara/source/src/main/java/com/github/cereda/arara/utils/FileHandlingUtils.java @@ -1,6 +1,6 @@ /** * Arara, the cool TeX automation tool - * Copyright (c) 2012 -- 2018, Paulo Roberto Massa Cereda + * Copyright (c) 2012 -- 2019, Paulo Roberto Massa Cereda * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff --git a/support/arara/source/src/main/java/com/github/cereda/arara/utils/FileSearchingUtils.java b/support/arara/source/src/main/java/com/github/cereda/arara/utils/FileSearchingUtils.java index 473674cbc5..9f0c03c143 100644 --- a/support/arara/source/src/main/java/com/github/cereda/arara/utils/FileSearchingUtils.java +++ b/support/arara/source/src/main/java/com/github/cereda/arara/utils/FileSearchingUtils.java @@ -1,6 +1,6 @@ /** * Arara, the cool TeX automation tool - * Copyright (c) 2012 -- 2018, Paulo Roberto Massa Cereda + * Copyright (c) 2012 -- 2019, Paulo Roberto Massa Cereda * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff --git a/support/arara/source/src/main/java/com/github/cereda/arara/utils/InterpreterUtils.java b/support/arara/source/src/main/java/com/github/cereda/arara/utils/InterpreterUtils.java index 978cb07374..d60de0884b 100644 --- a/support/arara/source/src/main/java/com/github/cereda/arara/utils/InterpreterUtils.java +++ b/support/arara/source/src/main/java/com/github/cereda/arara/utils/InterpreterUtils.java @@ -1,6 +1,6 @@ /** * Arara, the cool TeX automation tool - * Copyright (c) 2012 -- 2018, Paulo Roberto Massa Cereda + * Copyright (c) 2012 -- 2019, Paulo Roberto Massa Cereda * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff --git a/support/arara/source/src/main/java/com/github/cereda/arara/utils/MessageUtils.java b/support/arara/source/src/main/java/com/github/cereda/arara/utils/MessageUtils.java index 52a5d095a8..b36bda8808 100644 --- a/support/arara/source/src/main/java/com/github/cereda/arara/utils/MessageUtils.java +++ b/support/arara/source/src/main/java/com/github/cereda/arara/utils/MessageUtils.java @@ -1,6 +1,6 @@ /** * Arara, the cool TeX automation tool - * Copyright (c) 2012 -- 2018, Paulo Roberto Massa Cereda + * Copyright (c) 2012 -- 2019, Paulo Roberto Massa Cereda * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff --git a/support/arara/source/src/main/java/com/github/cereda/arara/utils/Methods.java b/support/arara/source/src/main/java/com/github/cereda/arara/utils/Methods.java index 15c6604934..24982dace9 100644 --- a/support/arara/source/src/main/java/com/github/cereda/arara/utils/Methods.java +++ b/support/arara/source/src/main/java/com/github/cereda/arara/utils/Methods.java @@ -1,6 +1,6 @@ /** * Arara, the cool TeX automation tool - * Copyright (c) 2012 -- 2018, Paulo Roberto Massa Cereda + * Copyright (c) 2012 -- 2019, Paulo Roberto Massa Cereda * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -147,6 +147,7 @@ public class Methods { map.put("writeToFile", Methods.class.getMethod("writeToFile", String.class, List.class, boolean.class)); map.put("readFromFile", Methods.class.getMethod("readFromFile", File.class)); map.put("readFromFile", Methods.class.getMethod("readFromFile", String.class)); + map.put("isSubdirectory", Methods.class.getMethod("isSubdirectory", File.class)); } catch (Exception exception) { // quack, quack, quack } @@ -1353,4 +1354,15 @@ public class Methods { return FileHandlingUtils.readFromFile(new File(path)); } + /** + * Checks whether a directory is under the project directory. + * @param directory The directory to be inspected. + * @return Logical value indicating whether the directoy is under root. + * @throws AraraException There was a problem with path retrieval. + */ + public static boolean isSubdirectory(File directory) + throws AraraException { + return CommonUtils.isSubDirectory(directory, getOriginalReference()); + } + } diff --git a/support/arara/source/src/main/java/com/github/cereda/arara/utils/RuleUtils.java b/support/arara/source/src/main/java/com/github/cereda/arara/utils/RuleUtils.java index d855344762..f2fb1c8570 100644 --- a/support/arara/source/src/main/java/com/github/cereda/arara/utils/RuleUtils.java +++ b/support/arara/source/src/main/java/com/github/cereda/arara/utils/RuleUtils.java @@ -1,6 +1,6 @@ /** * Arara, the cool TeX automation tool - * Copyright (c) 2012 -- 2018, Paulo Roberto Massa Cereda + * Copyright (c) 2012 -- 2019, Paulo Roberto Massa Cereda * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff --git a/support/arara/source/src/main/java/com/github/cereda/arara/utils/TeeOutputStream.java b/support/arara/source/src/main/java/com/github/cereda/arara/utils/TeeOutputStream.java index 65d3d58ffb..58418ea62d 100644 --- a/support/arara/source/src/main/java/com/github/cereda/arara/utils/TeeOutputStream.java +++ b/support/arara/source/src/main/java/com/github/cereda/arara/utils/TeeOutputStream.java @@ -1,6 +1,6 @@ /** * Arara, the cool TeX automation tool - * Copyright (c) 2012 -- 2018, Paulo Roberto Massa Cereda + * Copyright (c) 2012 -- 2019, Paulo Roberto Massa Cereda * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff --git a/support/arara/source/src/main/java/com/github/cereda/arara/utils/UnsafeUtils.java b/support/arara/source/src/main/java/com/github/cereda/arara/utils/UnsafeUtils.java index b989e074c8..d5a4058b3e 100644 --- a/support/arara/source/src/main/java/com/github/cereda/arara/utils/UnsafeUtils.java +++ b/support/arara/source/src/main/java/com/github/cereda/arara/utils/UnsafeUtils.java @@ -1,6 +1,6 @@ /** * Arara, the cool TeX automation tool - * Copyright (c) 2012 -- 2018, Paulo Roberto Massa Cereda + * Copyright (c) 2012 -- 2019, Paulo Roberto Massa Cereda * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff --git a/support/arara/source/src/main/java/com/github/cereda/arara/utils/VelocityUtils.java b/support/arara/source/src/main/java/com/github/cereda/arara/utils/VelocityUtils.java index 2040b671b7..3f94adc909 100644 --- a/support/arara/source/src/main/java/com/github/cereda/arara/utils/VelocityUtils.java +++ b/support/arara/source/src/main/java/com/github/cereda/arara/utils/VelocityUtils.java @@ -1,6 +1,6 @@ /** * Arara, the cool TeX automation tool - * Copyright (c) 2012 -- 2018, Paulo Roberto Massa Cereda + * Copyright (c) 2012 -- 2019, Paulo Roberto Massa Cereda * All rights reserved. * * Redistribution and use in source and binary forms, with or without |