From 2677dba37a758eb9f93a0f9bda1ecc5cf4aa1be6 Mon Sep 17 00:00:00 2001 From: Wladimir Safonov Date: Thu, 20 May 2021 20:12:12 +0200 Subject: [PATCH] added generic configuration for BigProject generator * BigProject can be used as convenient way to create MPS project with all modules in the repository to run migrations at once for the complete repository --- tools/BigProject/.gitignore | 5 +++++ tools/BigProject/.idea/modules.xml | 8 ++++++++ tools/BigProject/.idea/vcs.xml | 6 ++++++ tools/BigProject/.mps/libraries.xml | 17 +++++++++++++++++ tools/BigProject/.mps/vcs.xml | 6 ++++++ .../BigProject/.run/BigProjectGenerator.run.xml | 15 +++++++++++++++ tools/BigProject/BigProject.iml | 11 +++++++++++ .../src/com/mbeddr/BigProjectGenerator.java | 17 ++++++++++++++--- 8 files changed, 82 insertions(+), 3 deletions(-) create mode 100644 tools/BigProject/.gitignore create mode 100644 tools/BigProject/.idea/modules.xml create mode 100644 tools/BigProject/.idea/vcs.xml create mode 100644 tools/BigProject/.mps/libraries.xml create mode 100644 tools/BigProject/.mps/vcs.xml create mode 100644 tools/BigProject/.run/BigProjectGenerator.run.xml create mode 100644 tools/BigProject/BigProject.iml rename tools/{generateBigProject => BigProject}/src/com/mbeddr/BigProjectGenerator.java (77%) diff --git a/tools/BigProject/.gitignore b/tools/BigProject/.gitignore new file mode 100644 index 0000000000..eddb1b57d6 --- /dev/null +++ b/tools/BigProject/.gitignore @@ -0,0 +1,5 @@ +# Default ignored files +/shelf/ +.idea +.mps +_spreferences \ No newline at end of file diff --git a/tools/BigProject/.idea/modules.xml b/tools/BigProject/.idea/modules.xml new file mode 100644 index 0000000000..eee099c388 --- /dev/null +++ b/tools/BigProject/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/tools/BigProject/.idea/vcs.xml b/tools/BigProject/.idea/vcs.xml new file mode 100644 index 0000000000..b2bdec2d71 --- /dev/null +++ b/tools/BigProject/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/tools/BigProject/.mps/libraries.xml b/tools/BigProject/.mps/libraries.xml new file mode 100644 index 0000000000..4c06cebed0 --- /dev/null +++ b/tools/BigProject/.mps/libraries.xml @@ -0,0 +1,17 @@ + + + + + + \ No newline at end of file diff --git a/tools/BigProject/.mps/vcs.xml b/tools/BigProject/.mps/vcs.xml new file mode 100644 index 0000000000..b4275b6f03 --- /dev/null +++ b/tools/BigProject/.mps/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/tools/BigProject/.run/BigProjectGenerator.run.xml b/tools/BigProject/.run/BigProjectGenerator.run.xml new file mode 100644 index 0000000000..7615e80b09 --- /dev/null +++ b/tools/BigProject/.run/BigProjectGenerator.run.xml @@ -0,0 +1,15 @@ + + + + \ No newline at end of file diff --git a/tools/BigProject/BigProject.iml b/tools/BigProject/BigProject.iml new file mode 100644 index 0000000000..c90834f2d6 --- /dev/null +++ b/tools/BigProject/BigProject.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/tools/generateBigProject/src/com/mbeddr/BigProjectGenerator.java b/tools/BigProject/src/com/mbeddr/BigProjectGenerator.java similarity index 77% rename from tools/generateBigProject/src/com/mbeddr/BigProjectGenerator.java rename to tools/BigProject/src/com/mbeddr/BigProjectGenerator.java index dee938dd93..491d20057f 100644 --- a/tools/generateBigProject/src/com/mbeddr/BigProjectGenerator.java +++ b/tools/BigProject/src/com/mbeddr/BigProjectGenerator.java @@ -6,20 +6,30 @@ public class BigProjectGenerator { - private static File projectDir = new File("P:\\mbeddr.core-2020.1"); - private static File modulesXml = new File(projectDir + "/tmp/allProject/.mps/modules.xml"); + private static final String MODULES_XML_PATH = "/tools/BigProject/.mps/modules.xml"; private static int totalLanguages = 0; private static int totalSolutions = 0; private static int totalDevkits = 0; public static void main(String[] args) throws Exception { - modulesXml.getParentFile().mkdirs(); + File projectDir = new File(System.getProperty("user.dir")); + while (!new File(projectDir, ".git").exists()) { + projectDir = projectDir.getParentFile(); + if (projectDir == null) { + System.err.print("Error: could not determine project directory root"); + System.exit(-1); + } + } + + System.out.println("Searching for modules under " + projectDir); File langDir = new File(projectDir + "/code/languages"); File testsDir = new File(projectDir + "/code/tests"); + File modulesXml = new File(projectDir + MODULES_XML_PATH); + modulesXml.getParentFile().mkdirs(); BufferedWriter w = new BufferedWriter(new FileWriter(modulesXml)); w.write("\n" + @@ -38,6 +48,7 @@ public static void main(String[] args) throws Exception { w.close(); + System.out.println("Updated " + modulesXml); System.out.println("=== TOTAL ==="); System.out.println("Languages: " + totalLanguages); System.out.println("Solutions: " + totalSolutions);