src/main/java/de/unixwork/uwproj/Main.java

Wed, 06 Sep 2023 21:08:04 +0200

author
Mike Becker <universe@uap-core.de>
date
Wed, 06 Sep 2023 21:08:04 +0200
changeset 39
3ca85da78515
parent 7
686991ae6e2f
child 42
becfbf7af928
permissions
-rw-r--r--

add RegressionTest - fixes #264

package de.unixwork.uwproj;

import org.apache.velocity.VelocityContext;
import org.apache.velocity.app.VelocityEngine;

import java.io.*;

public class Main {

    static Project loadProjectFile(String fileName) {
        try {
            return new Project(new File(fileName));
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }

    static void writeConfigureScript(Writer out, String tplFileName, Project project) {
        var context = new VelocityContext();
        context.put("targets", project.getTargets());
        context.put("namedDependencies", project.getNamedDependencies());
        context.put("dependencies", project.getDependencies());
        context.put("options", project.getOptions());
        context.put("features", project.getFeatures());
        context.put("project", project);
        context.put("vars", project.getVars());
        new VelocityEngine().getTemplate(tplFileName).merge(context, out);
    }

    public static void main(String[] args){
        final var inFileName = "make/project.xml";
        final var tplFileName = "make/configure.vm";
        final var outFileName = "configure";

        try (var out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFileName)))) {
            writeConfigureScript(out, tplFileName, loadProjectFile(inFileName));
        } catch (Exception ex) {
            ex.printStackTrace();
            System.exit(1);
        }

        System.out.println("Out: "+outFileName);
    }
}

mercurial