Skip to content
Snippets Groups Projects
Commit 1cfc1ed1 authored by René Schöne's avatar René Schöne
Browse files

Added script to make new sub-projects.

parent 1e335808
Branches
Tags
No related merge requests found
#!/usr/bin/env python3
import argparse
import os
import shutil
import subprocess
TEMPLATE = 'project-template'
FILES_TO_SED = ['build.gradle',
'src/main/java/de/tudresden/inf/st/eraser/projectName/Main.java',
'src/test/java/de/tudresden/inf/st/eraser/projectName/ATest.java']
SRC_PARENT_DIRS_TO_MOVE = ['src/main/java/de/tudresden/inf/st/eraser/',
'src/test/java/de/tudresden/inf/st/eraser/']
def main(args):
projectName = args.projectName.replace('/', '').replace('-', '_')
# copy
shutil.copytree(TEMPLATE, projectName)
# fill in template names
for file in FILES_TO_SED:
cmds = ["sed", "-i", "s|projectName|" + projectName + "|",
os.path.join(projectName, file)]
print('cmds', cmds)
subprocess.call(cmds)
# correct packages
for package in SRC_PARENT_DIRS_TO_MOVE:
shutil.move(os.path.join(projectName, package, "projectName/"),
os.path.join(projectName, package, projectName))
# add project to settings.gradle
with open('settings.gradle', 'a') as fdr:
fdr.write("include ':" + projectName + "'\n")
if __name__ == '__main__':
parser = argparse.ArgumentParser()
parser.add_argument('projectName', help='Name of the project to create')
args = parser.parse_args()
main(args)
/build/
repositories {
mavenCentral()
}
sourceCompatibility = 1.8
apply plugin: 'java'
apply plugin: 'application'
dependencies {
compile project(':eraser-base')
compile group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.8.8.1'
compile group: 'org.apache.logging.log4j', name: 'log4j-api', version: '2.10.0'
compile group: 'org.apache.logging.log4j', name: 'log4j-core', version: '2.10.0'
testCompile group: 'junit', name: 'junit', version: '4.12'
testCompile group: 'org.hamcrest', name: 'hamcrest-junit', version: '1.0.0.0'
}
run {
mainClassName = 'de.tudresden.inf.st.eraser.projectName.Main'
standardInput = System.in
if (project.hasProperty("appArgs")) {
args Eval.me(appArgs)
}
}
sourceSets {
main {
java {
srcDir 'src/main/java'
}
}
}
package de.tudresden.inf.st.eraser.projectName;
import de.tudresden.inf.st.eraser.jastadd.model.*;
public class Main {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
<Appenders>
<Console name="Console">
<PatternLayout pattern="%highlight{%d{HH:mm:ss.SSS} %-5level} %c{1.} - %msg%n"/>
</Console>
<RollingFile name="RollingFile" fileName="logs/jastadd-mquat.log"
filePattern="logs/jastadd-mquat-%i.log">
<PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %logger{36} - %msg%n"/>
<Policies>
<OnStartupTriggeringPolicy/>
</Policies>
<DefaultRolloverStrategy max="20"/>
</RollingFile>
</Appenders>
<Loggers>
<Root level="debug">
<AppenderRef ref="Console"/>
<AppenderRef ref="RollingFile"/>
</Root>
</Loggers>
</Configuration>
import de.tudresden.inf.st.eraser.jastadd.model.*;
import org.junit.Test;
import java.util.Set;
import static org.hamcrest.Matchers.*;
import static org.junit.Assert.fail;
/**
* TODO: Add description.
*
* @author rschoene - Initial contribution
*/
public class ATest {
@Test
public void test1() {
fail();
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment