Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision

Target

Select target project
  • jastadd/relational-rags
1 result
Select Git revision
Show changes
Commits on Source (2)
......@@ -110,6 +110,47 @@ jastadd {
jastaddOptions = ["--lineColumnNumbers", "--safeLazy", "--visitCheck=true", "--rewrite=cnta", "--cache=all"]
}
def versionFile = 'src/main/resources/RelASTVersion.properties'
task updateVersion {
/* version string handling adapted from https://bitbucket.org/extendj/extendj/src/master/build.gradle
written by Jesper Öqvist <jesper.oqvist@cs.lth.se> */
group 'build'
description 'Updates the version file for RelAST'
doLast {
def oldProps = new Properties()
String oldFullVersion, fullVersion
try {
file(versionFile).withInputStream { stream -> oldProps.load(stream) }
oldFullVersion = oldProps['version']
} catch (ignored) {
oldFullVersion = "???"
}
try {
def proc = 'git describe'.execute(null, rootDir)
if (proc.waitFor() == 0) {
fullVersion = proc.text.trim()
if (hasProperty('withNewVersion')) {
// Trim to get latest tag:
version = (fullVersion =~ /-\d+\-g.+$/).replaceAll('')
}
if (oldFullVersion != fullVersion) {
def props = new Properties()
props['version'] = fullVersion
props.store(file(versionFile).newWriter(), null)
}
} else {
logger.warn('No git tags found.')
}
} catch (IOException e) {
logger.warn("Failded to run git describe (${e.getMessage()}).")
}
}
}
processResources.dependsOn updateVersion
task preprocessRelationTest(type: JavaExec, group: 'verification') {
doFirst {
......
......@@ -8,14 +8,11 @@ import org.jastadd.relast.parser.RelAstParser;
import org.jastadd.relast.scanner.RelAstScanner;
import java.io.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.*;
import java.util.List;
public class Compiler {
private static final String VERSION = "0.2.4";
private ArrayList<Option<?>> options;
private FlagOption optionWriteToFile;
private FlagOption optionPrintAST;
......@@ -35,7 +32,7 @@ public class Compiler {
commandLine = new CommandLine(options);
commandLine.parse(args);
printMessage("Running RelAST " + VERSION);
printMessage("Running RelAST " + readVersion());
if (commandLine.getArguments().size() < 1) {
error("specify at least one input file");
......@@ -126,6 +123,26 @@ public class Compiler {
}
}
/**
* Reads the version string.
*
* The version string is read from the property file
* src/main/resources/Version.properties. This
* file should be generated during the build process. If it is missing
* then there is some problem in the build script.
*
* @author Jesper Öqvist <jesper.oqvist@cs.lth.se>
* @return the read version string, or <code>version ?</code>
*/
private String readVersion() {
try {
ResourceBundle resources = ResourceBundle.getBundle("Version");
return resources.getString("version");
} catch (MissingResourceException e) {
return "version ?";
}
}
public static void main(String[] args) {
try {
new Compiler(args);
......
RelASTVersion.properties