summaryrefslogtreecommitdiffstats
path: root/proxy/buildconf/scripts/gen-eclipse-dot-classpath.py
blob: 2bc6033ff2167ea138f499fc9acd643470975855 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#!/usr/bin/python
import os.path, os
from sys import argv, exit
base_template="""<?xml version="1.0" encoding="UTF-8"?>
<classpath>
    <classpathentry kind="src" path="code/src"/>
    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
    <classpathentry kind="output" path="build/classes"/>
    <classpathentry kind="lib" path="code/webapp"/>
%s    
</classpath>"""

classpath_entry = """    <classpathentry kind="lib" path="%s"/>"""
classpath_sourcepath_entry = """    <classpathentry kind="lib" path="%s" sourcepath="%s"/>"""


def main():
    if len(argv) != 2 and len(argv) != 3:
        print "Usage: python %s <jar dirs separated by :> [<src jars separated by :>]" % argv[0]
        print """Example: python %s "/usr/share/java:/usr/share/java-ext" "/usr/share/src-jars" """ % argv[0]
        exit(1)

    src_entries = {}
    if len(argv) == 3:
        for dr in argv[2].split(":"):
            if dr.strip() and os.path.exists(dr):
                for f in os.listdir(dr):
                    if f != "rhn.jar" and f.endswith(".jar") and not f in src_entries:
                        src_entries[f] = os.path.join(dr,f)
    entries = {}
    entries['tools.jar'] = classpath_entry % "/usr/lib/jvm/java/lib/tools.jar"
    entries['ant-junit.jar'] = classpath_entry % "/usr/share/java/ant/ant-junit.jar"
    entries['ant.jar'] = classpath_entry % "/usr/share/java/ant.jar"

    for dr in argv[1].split(":"):
        if dr.strip():
            if os.path.isdir(dr):
                for f in os.listdir(dr):
                    if f != "rhn.jar" and f.endswith(".jar") and not f in entries:
                        if f in  src_entries:
                            entries[f] = classpath_sourcepath_entry % (os.path.join(dr,f) , src_entries[f])
                        elif f[:-4] + "-" +"src.jar" in src_entries:
                            entries[f] = classpath_sourcepath_entry % (os.path.join(dr,f) ,
                                                                src_entries[f[:-4] + "-" +"src.jar"])
                        elif f[:-4] + "-" +"sources.jar" in src_entries:
                            entries[f] = classpath_sourcepath_entry % (os.path.join(dr,f) ,
                                                                src_entries[f[:-4] + "-" +"sources.jar"])
                        else:
                            entries[f] = classpath_entry % os.path.join(dr,f)
            if os.path.isfile(dr):
                f = os.path.basename(dr)
                if f != "rhn.jar" and f.endswith(".jar") and not f in entries:
                    entries[f] = classpath_entry % dr

    print base_template % "\n".join (entries.values())

if __name__=="__main__":
    main()