11.10 Map
This commit is contained in:
115
Eclipse.py
Normal file
115
Eclipse.py
Normal file
@@ -0,0 +1,115 @@
|
||||
#!/usr/bin/python
|
||||
"""
|
||||
Eclipse.py by Bruce Eckel, for Thinking in Java 4e
|
||||
Modify or insert package statments so that Eclipse is happy with the code tree.
|
||||
Run this with no arguments from the root of the code tree.
|
||||
|
||||
The Ant build will not work once you run this program!
|
||||
|
||||
You may also want to modify the dotproject and dotclasspath text below.
|
||||
|
||||
You must have Python 2.3 installed to run this program. See www.python.org.
|
||||
"""
|
||||
import os
|
||||
|
||||
os.remove("reusing/Lisa.java");
|
||||
|
||||
for path, dirs, files in os.walk('.'):
|
||||
for file in files:
|
||||
if file.endswith(".java"):
|
||||
filepath = path + os.sep + file
|
||||
firstLine = open(filepath).readline().strip()
|
||||
tagPath = firstLine.split()[1]
|
||||
tagPath = ".".join(tagPath.split('/')[:-1])
|
||||
packageStatement = "package " + tagPath + ";"
|
||||
code = open(filepath).readlines()
|
||||
found = False
|
||||
for line in code:
|
||||
if line.startswith("package "):
|
||||
found = True
|
||||
if not found:
|
||||
code.insert(1, packageStatement + " /* Added by Eclipse.py */\n")
|
||||
open(filepath, 'w').writelines(code)
|
||||
|
||||
here = os.path.abspath('.').replace("\\", "/")
|
||||
if here.startswith("/cygdrive/"): # If using cygwin
|
||||
here = here.replace("/cygdrive/", "", 1)
|
||||
here = here[0] + ":" + here[1:]
|
||||
print "here", here
|
||||
open(".classpath", 'w').write(\
|
||||
"""<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry excluding="polymorphism/|holding/|flow/|exceptions/|concurrency/|typeinfo/|innerclasses/|arrays/|interfaces/|reusing/|initialization/|cloning/|io/|containers/|generics/|xml/|hiding/|io/xfiles/|passing/|gui/|annotations/|enumerated/|discovering/|object/|strings/|swt/" kind="src" path=""/>
|
||||
<classpathentry kind="src" path="annotations"/>
|
||||
<classpathentry kind="src" path="arrays"/>
|
||||
<classpathentry kind="src" path="cloning"/>
|
||||
<classpathentry kind="src" path="concurrency"/>
|
||||
<classpathentry kind="src" path="containers"/>
|
||||
<classpathentry kind="src" path="discovering"/>
|
||||
<classpathentry kind="src" path="enumerated"/>
|
||||
<classpathentry kind="src" path="exceptions"/>
|
||||
<classpathentry kind="src" path="flow"/>
|
||||
<classpathentry kind="src" path="generics"/>
|
||||
<classpathentry kind="src" path="gui"/>
|
||||
<classpathentry kind="src" path="hiding"/>
|
||||
<classpathentry kind="src" path="holding"/>
|
||||
<classpathentry kind="src" path="initialization"/>
|
||||
<classpathentry kind="src" path="innerclasses"/>
|
||||
<classpathentry kind="src" path="interfaces"/>
|
||||
<classpathentry excluding="xfiles/" kind="src" path="io"/>
|
||||
<classpathentry kind="src" path="io/xfiles"/>
|
||||
<classpathentry kind="src" path="object"/>
|
||||
<classpathentry kind="src" path="passing"/>
|
||||
<classpathentry kind="src" path="polymorphism"/>
|
||||
<classpathentry kind="src" path="reusing"/>
|
||||
<classpathentry kind="src" path="strings"/>
|
||||
<classpathentry kind="src" path="swt"/>
|
||||
<classpathentry kind="src" path="typeinfo"/>
|
||||
<classpathentry kind="src" path="xml"/>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jre1.5.0_01"/>
|
||||
<classpathentry kind="output" path="bin"/>
|
||||
</classpath>
|
||||
""") # % (here, here))
|
||||
|
||||
open(".project", 'w').write(\
|
||||
"""<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>TIJ4</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.jdt.core.javabuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
||||
|
||||
""")
|
||||
|
||||
if not os.path.exists(".settings"):
|
||||
os.mkdir(".settings")
|
||||
os.chdir(".settings")
|
||||
open("org.eclipse.jdt.core.prefs", 'w').write(\
|
||||
"""#Fri Jan 14 11:03:37 MST 2005
|
||||
org.eclipse.jdt.core.compiler.debug.localVariable=generate
|
||||
org.eclipse.jdt.core.compiler.compliance=1.5
|
||||
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
|
||||
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
|
||||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
|
||||
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
|
||||
eclipse.preferences.version=1
|
||||
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
|
||||
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
|
||||
org.eclipse.jdt.core.compiler.source=1.5
|
||||
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
|
||||
""")
|
||||
|
||||
print """Project ready to be opened with Eclipse (see www.Eclipse.org)
|
||||
Use DEclipse.py if you want to go back to building with Ant."""
|
||||
|
||||
Reference in New Issue
Block a user