blob: 96cfc0ce288aa44a0b2e8da9090bfab722f19db4 [file] [log] [blame]
Carmelo Cascone9d16ad82019-02-07 16:07:43 -08001#!/usr/bin/env python2.7
2import os
3
4import subprocess
5
6JAVA_LANGUAGE_LEVEL = 8
7
8EXCLUDE_DIRECTORIES = (
9 "target",
10)
11
12TEST_SOURCES = (
13 "*/src/test/*",
14)
15
16TEMPLATE = """# Autogenerated with {script_name}
17workspace_type: java
18java_language_level: {language_level}
19additional_languages:
20 python
21 javascript
22
23directories:
24 .
25{exclude_dirs}
26
27targets:
28{targets}
29
30test_sources:
31{test_sources}
32"""
33
34
35def get_library_targets():
36 this_dir = os.path.dirname(os.path.realpath(__file__))
37 out = subprocess.check_output([
38 "bazel", "query", "kind(\"java_library\", //...:all)"], cwd=this_dir)
39 return out.strip().split("\n")
40
41
42def gen_project():
43 all_targets = get_library_targets()
44 all_targets.sort()
45 data = {
46 "script_name": os.path.basename(__file__),
47 "language_level": JAVA_LANGUAGE_LEVEL,
48 "exclude_dirs": "\n".join(
49 map(lambda x: " -" + x, EXCLUDE_DIRECTORIES)),
50 "targets": "\n".join(map(lambda x: " " + x, all_targets)),
51 "test_sources": "\n".join(map(lambda x: " " + x, TEST_SOURCES)),
52 }
53 return TEMPLATE.format(**data)
54
55
56if __name__ == "__main__":
57 print gen_project()