Revision 744 org.gvsig.scripting/trunk/org.gvsig.scripting/org.gvsig.scripting.app/org.gvsig.scripting.app.mainplugin/src/main/resources-plugin/scripting/scripts/tools/makedocs/makedocs.py

View differences:

makedocs.py
7 7
import os.path
8 8
import shutil
9 9
import sys
10
import subprocess 
10
import subprocess
11 11
import threading
12 12
import logging
13 13

  
......
42 42
                  sources.append(javaSources)
43 43
                  self.message2(root)
44 44
    return sources
45
  
45

  
46 46
  def findJavadocSources(self,workspace,projects):
47 47
    sources = list()
48 48
    for project, url in projects:
......
53 53
          "src","main","resources-plugin","scripting","lib","gvsig","javadocs"
54 54
        ))
55 55
    return sources
56
  
56

  
57 57
  def calculateCountFromSources(self,sources):
58 58
    countfiles = 0
59 59
    folders = set()
......
66 66
        if len(files)>0:
67 67
          package = root[len(sourceFolder)+1:]
68 68
          folders.add(package)
69
  
69

  
70 70
    return countfiles, len(folders)
71 71

  
72 72
  def calculateHTMLFileList(self,htmlroot, listfname):
......
86 86

  
87 87
  def message(self,msg):
88 88
    self.lblStatus.setText(msg)
89
    
89

  
90 90
  def message2(self,msg):
91 91
    self.lblStatus2.setText(msg)
92 92

  
93
  def checkoutSources(self,workspace,projects, outputpath):
94
    if not os.path.exists(workspace):
95
      os.makedirs(workspace)
96
    self.message("Descargando proyectos...")
97
    count = 0
98
    self.pgbProgreso.setMaximum(len(projects))
99
    self.pgbProgreso.setValue(count)
100
    self.pgbProgreso.setIndeterminate(False)
101
    for project, url in projects:
102
      if self.canceled:
103
        break
104
      self.message2("Descargando %s..." % project)
105
      count += 1
106
      self.pgbProgreso.setValue(count)
107
      cmd = 'cd "%s" ; svn checkout "%s"' % (workspace,url)
108
      os.system(cmd)
109

  
93 110
  def mkjavadoc(self,workspace,projects, outputpath):
94 111
    try:
95 112
      self.pgbProgreso.setIndeterminate(True)
96 113
      self.message("Creando carpeta de salida...")
97 114
      if not os.path.exists(outputpath):
98 115
        os.makedirs(outputpath)
99
    
116

  
100 117
      os.chdir(outputpath)
101 118
      if not os.path.exists("html"):
102 119
        os.makedirs("html")
103 120
      os.chdir("html")
104
  
105
      if self.chkGenerarJavadocs.isSelected():
121

  
122
      if not self.canceled  and self.chkCheckoutSources.isSelected():
123
        self.checkoutSources(workspace,projects, outputpath)
124

  
125
      if not self.canceled  and self.chkGenerarJavadocs.isSelected():
106 126
        self.message("Eliminando javadoc existentes...")
127
        self.pgbProgreso.setIndeterminate(True)
107 128
        os.chdir("..")
108 129
        shutil.rmtree("html",True)
109 130
        os.makedirs("html")
110 131
        os.chdir("html")
111
  
132

  
112 133
        self.message("Localizando fuentes...")
113 134
        sources = self.findJavadocSources(workspace,projects)
114
    
135

  
115 136
        self.message("Preparando procesado...")
116 137
        maxfiles, maxpackages = self.calculateCountFromSources(sources)
117
        
138

  
118 139
        argsfile = file("javadoc_args","w")
119
        argsfile.write("-nonavbar\n")
140
        #argsfile.write("-nonavbar\n")
141
        argsfile.write("-link http://docs.oracle.com/javase/8/docs/api/\n")
120 142
        argsfile.write("-encoding ISO-8859-1\n")
121 143
        argsfile.write("-subpackages org:scripting\n")
122 144
        argsfile.write("-sourcepath ")
......
124 146
          argsfile.write(":%s" % source)
125 147
        argsfile.write("\n")
126 148
        argsfile.close()
127
    
149

  
128 150
        proc = subprocess.Popen(["javadoc", "@javadoc_args"], stdout=subprocess.PIPE,stderr=subprocess.STDOUT)
129
        stdoutprocess = proc.stdout 
151
        stdoutprocess = proc.stdout
130 152
        generatingcount = 0
131 153
        loadingcount=0
132 154

  
133 155
        self.pgbProgreso.setMaximum(maxpackages)
134 156
        self.pgbProgreso.setValue(0)
135 157
        self.pgbProgreso.setIndeterminate(False)
136
        
158

  
137 159
        for line in stdoutprocess:
138 160
          if self.canceled:
139 161
            break
......
141 163
          if ": error:" in line :
142 164
            self.message("Procesando fuentes...")
143 165
            self.message2(line)
144
                  
166

  
145 167
          elif line.startswith("Generating "):
146 168
            self.message("Generando javadocs...")
147 169
            if generatingcount == 0:
......
153 175
              if os.path.basename(line[:-4]).count(".")==1:
154 176
                generatingcount +=1
155 177
            self.pgbProgreso.setValue(generatingcount)
156
                
178

  
157 179
          elif line.startswith("Loading source files for package "):
158 180
            self.message("Cargando fuentes...")
159 181
            loadingcount+=1
......
165 187
      self.pgbProgreso.setValue(self.pgbProgreso.getMaximum())
166 188
      if self.canceled:
167 189
        print "Proceso cancelado"
168
        
190

  
169 191
    except Exception, ex:
170 192
      self.message("Proceso abortado")
171 193
      self.message2(str(ex))
......
177 199
    if f == None or len(f)<1:
178 200
      return
179 201
    self.txtWorkspace.setText(f[0].getAbsolutePath())
180
  
202

  
181 203
  def btnSelectOutputFolder_click(self, *args):
182 204
    f = openFolderDialog("Selecciona la carpeta de salida")
183 205
    if f == None or len(f)<1:
184 206
      return
185 207
    self.txtOutputFolder.setText(f[0].getAbsolutePath())
186
  
208

  
187 209
  def btnCerrar_click(self,*args):
188 210
    self.canceled = True
189 211
    self.hide()
......
192 214
    self.btnProcesar.setEnabled(False)
193 215
    self.btnCerrar.setText("Cancelar")
194 216
    self.start()
195
    
217

  
196 218
  def showWindow(self,title="Crear javadocs"):
197 219
    windowManager = ScriptingSwingLocator.getUIManager()
198 220
    windowManager.showWindow(self.asJComponent(),title)
......
200 222
  def run(self):
201 223
    self.mkjavadoc(
202 224
      self.workspace,
203
      self.projects, 
225
      self.projects,
204 226
      self.outputfolder
205 227
    )
206 228
    # Falla al volverse a lanzar el proceso por que no se
......
210 232

  
211 233

  
212 234
def main(*args):
213
  workspace = "/home/jjdelcerro/data/devel/temp"
235
  workspace = "/tmp/makedocs"
214 236
  outputfolder = workspace + "/javadocs"
215 237
  projects = (
216
    ("org.gvsig.scripting",None),
217
    ("org.gvsig.tools",None),
218
    ("org.gvsig.desktop",None),
219
    ("org.gvsig.gdal",None),
220
    ("org.gvsig.raster",None),
221
    ("org.gvsig.raster.gdal",None),
222
    ("org.gvsig.geoprocess",None),
223
    ("org.gvsig.3d",None),
224
    ("org.gvsig.app.document.layout2.app",None),
225
    ("org.gvsig.attributeeditor",None),
226
    ("org.gvsig.chart",None),
227
    ("org.gvsig.complexlegend",None),
228
    ("org.gvsig.derivedgeometries",None),
229
    ("org.gvsig.dgn",None),
230
    ("org.gvsig.downloader",None),
231
    ("org.gvsig.dwg",None),
232
    ("org.gvsig.dxf",None),
233
    ("org.gvsig.dyschromatopsia",None),
234
    ("org.gvsig.educa.portableview",None),
235
    ("org.gvsig.expressionfield",None),
236
    ("org.gvsig.gpe",None),
237
    ("org.gvsig.hyperlink.app",None),
238
    ("org.gvsig.jexcel",None),
239
    ("org.gvsig.jvmpreferences",None),
240
    ("org.gvsig.legend.dotdensity.app",None),
241
    ("org.gvsig.legend.graduatedsymbols.app",None),
242
    ("org.gvsig.legend.proportionalsymbols.app",None),
243
    ("org.gvsig.legend.quantitybycategory.app",None),
244
    ("org.gvsig.legend.vectorfilterexpression.app",None),
245
    ("org.gvsig.mapsheets.app",None),
246
    ("org.gvsig.postgresql",None),
247
    ("org.gvsig.projection.jcrs",None),
248
    ("org.gvsig.raster.ermapper",None),
249
    ("org.gvsig.raster.georeferencing",None),
250
    ("org.gvsig.raster.lizardtech",None),
251
    ("org.gvsig.raster.multifile",None),
252
    ("org.gvsig.raster.netcdf",None),
253
    ("org.gvsig.raster.osm",None),
254
    ("org.gvsig.raster.postgis",None),
255
    ("org.gvsig.raster.principalcomponents",None),
256
    ("org.gvsig.raster.reproject",None),
257
    ("org.gvsig.raster.roimask",None),
258
    ("org.gvsig.raster.tasseledcap",None),
259
    ("org.gvsig.raster.tilecache",None),
260
    ("org.gvsig.raster.tools",None),
261
    ("org.gvsig.raster.wms",None),
262
    ("org.gvsig.raster.wcs",None),
263
    ("org.gvsig.raster.wmts",None),
264
    ("org.gvsig.seismic",None),
265
    ("org.gvsig.sld",None),
266
    ("org.gvsig.vectorediting",None),
267
    ("org.gvsig.vectorediting.symmetry",None),
268
    ("org.gvsig.vectorediting.offset",None),
269
    ("org.gvsig.wfs.app",None),
270
    ("org.gvsig.customize.app",None),
271
    ("org.gvsig.catalog",None),
272
    ("org.gvsig.gazetteer",None),
273
    ("org.gvsig.publish",None),
274
    ("org.gvsig.webmap",None),
275
    ("org.gvsig.googlemaps",None),
276
    ("org.gvsig.bingmaps",None),
277
    ("org.gvsig.toolbox", None),
238
    ("org.gvsig.scripting","http://devel.gvsig.org/svn/gvsig-scripting/org.gvsig.scripting/trunk/org.gvsig.scripting"),
239
    ("org.gvsig.tools","http://devel.gvsig.org/svn/gvsig-tools/org.gvsig.tools/library/trunk/org.gvsig.tools"),
240
    ("org.gvsig.desktop","http://devel.gvsig.org/svn/gvsig-desktop/trunk/org.gvsig.desktop"),
241
    ("org.gvsig.gdal","http://devel.gvsig.org/svn/gvsig-gdal/trunk/org.gvsig.gdal"),
242
    ("org.gvsig.raster","http://devel.gvsig.org/svn/gvsig-raster/org.gvsig.raster/trunk/org.gvsig.raster"),
243
    ("org.gvsig.raster.gdal","http://devel.gvsig.org/svn/gvsig-raster/org.gvsig.raster.gdal/trunk/org.gvsig.raster.gdal"),
244
    ("org.gvsig.geoprocess","http://devel.gvsig.org/svn/gvsig-geoprocess/org.gvsig.geoprocess/trunk/org.gvsig.geoprocess"),
245
    ("org.gvsig.3d","http://devel.gvsig.org/svn/gvsig-3d/2.1/trunk/org.gvsig.view3d/"),
246
    ("org.gvsig.app.document.layout2.app","https://devel.gvsig.org/svn/gvsig-app-document-layout/trunk/org.gvsig.app.document.layout2.app"),
247
    ("org.gvsig.attributeeditor","http://devel.gvsig.org/svn/gvsig-attributeeditor/org.gvsig.attributeeditor/trunk/org.gvsig.attributeeditor"),
248
    ("org.gvsig.chart","http://devel.gvsig.org/svn/gvsig-basic-chart/org.gvsig.chart/trunk/org.gvsig.chart"),
249
    ("org.gvsig.complexlegend","http://devel.gvsig.org/svn/gvsig-base-legends/org.gvsig.complexlegend/trunk/org.gvsig.complexlegend"),
250
    ("org.gvsig.derivedgeometries","http://devel.gvsig.org/svn/gvsig-derived-geometries/org.gvsig.derivedgeometries/trunk/org.gvsig.derivedgeometries/"),
251
    ("org.gvsig.dgn","http://devel.gvsig.org/svn/gvsig-dgn/org.gvsig.dgn/trunk/org.gvsig.dgn"),
252
    ("org.gvsig.downloader","http://devel.gvsig.org/svn/gvsig-downloader/org.gvsig.downloader/trunk/org.gvsig.downloader/"),
253
    ("org.gvsig.dwg","http://devel.gvsig.org/svn/gvsig-dwg/trunk/org.gvsig.dwg/"),
254
    ("org.gvsig.dxf","http://devel.gvsig.org/svn/gvsig-dxf/org.gvsig.dxf/trunk/org.gvsig.dxf/"),
255
    ("org.gvsig.dyschromatopsia","http://devel.gvsig.org/svn/gvsig-dyschromatopsia/trunk/org.gvsig.dyschromatopsia/"),
256
    ("org.gvsig.educa.portableview","http://devel.gvsig.org/svn/gvsig-educa/org.gvsig.educa.portableview/trunk/org.gvsig.educa.portableview/"),
257
    ("org.gvsig.expressionfield","http://devel.gvsig.org/svn/gvsig-expression-field/org.gvsig.expressionfield/trunk/org.gvsig.expressionfield/"),
258
    ("org.gvsig.gpe","http://devel.gvsig.org/svn/gvsig-gpe/org.gvsig.gpe/library/trunk/org.gvsig.gpe/"),
259
    ("org.gvsig.hyperlink.app","http://devel.gvsig.org/svn/gvsig-hyperlink/org.gvsig.hyperlink.app/trunk/org.gvsig.hyperlink.app"),
260
    ("org.gvsig.jexcel","http://devel.gvsig.org/svn/gvsig-jexcel/org.gvsig.jexcel/trunk/org.gvsig.jexcel"),
261
    ("org.gvsig.jvmpreferences","http://devel.gvsig.org/svn/gvsig-projects-pool/org.gvsig.jvmpreferences/trunk/org.gvsig.jvmpreferences.native/"),
262
    ("org.gvsig.legend.dotdensity.app","http://devel.gvsig.org/svn/gvsig-base-legends/org.gvsig.legend.dotdensity.app.mainplugin/trunk/org.gvsig.legend.dotdensity.app.mainplugin/"),
263
    ("org.gvsig.legend.graduatedsymbols.app","http://devel.gvsig.org/svn/gvsig-base-legends/org.gvsig.legend.graduatedsymbols.app.mainplugin/trunk/org.gvsig.legend.graduatedsymbols.app.mainplugin/"),
264
    ("org.gvsig.legend.proportionalsymbols.app","http://devel.gvsig.org/svn/gvsig-base-legends/org.gvsig.legend.proportionalsymbols.app.mainplugin/trunk/org.gvsig.legend.proportionalsymbols.app.mainplugin/"),
265
    ("org.gvsig.legend.quantitybycategory.app","http://devel.gvsig.org/svn/gvsig-base-legends/org.gvsig.legend.quantitybycategory.app.mainplugin/trunk/org.gvsig.legend.quantitybycategory.app.mainplugin/"),
266
    ("org.gvsig.legend.vectorfilterexpression.app","http://devel.gvsig.org/svn/gvsig-base-legends/org.gvsig.legend.vectorfilterexpression.app.mainplugin/trunk/org.gvsig.legend.vectorfilterexpression.app.mainplugin/"),
267
    ("org.gvsig.mapsheets.app","http://devel.gvsig.org/svn/mapsheets/trunk/org.gvsig.mapsheets.app"),
268
    ("org.gvsig.postgresql","http://devel.gvsig.org/svn/gvsig-postgresql/trunk/org.gvsig.postgresql"),
269
    ("org.gvsig.projection.jcrs","http://devel.gvsig.org/svn/gvsig-jcrs/org.gvsig.projection.jcrs/trunk/org.gvsig.projection.jcrs"),
270
    ("org.gvsig.raster.ermapper","http://devel.gvsig.org/svn/gvsig-raster/org.gvsig.raster.ermapper/trunk/org.gvsig.raster.ermapper/"),
271
    ("org.gvsig.raster.georeferencing","http://devel.gvsig.org/svn/gvsig-georeferencing/org.gvsig.raster.georeferencing/trunk/org.gvsig.raster.georeferencing/"),
272
    ("org.gvsig.raster.lizardtech","http://devel.gvsig.org/svn/gvsig-raster/org.gvsig.raster.lizardtech/trunk/org.gvsig.raster.lizardtech/"),
273
    ("org.gvsig.raster.multifile","http://devel.gvsig.org/svn/gvsig-raster/org.gvsig.raster.multifile/trunk/org.gvsig.raster.multifile/"),
274
    ("org.gvsig.raster.netcdf","http://devel.gvsig.org/svn/gvsig-raster/org.gvsig.raster.netcdf/trunk/org.gvsig.raster.netcdf/"),
275
    ("org.gvsig.raster.osm","http://devel.gvsig.org/svn/gvsig-osm/org.gvsig.raster.osm/trunk/org.gvsig.raster.osm"),
276
    ("org.gvsig.raster.postgis","http://devel.gvsig.org/svn/gvsig-raster/org.gvsig.raster.postgis/trunk/org.gvsig.raster.postgis/"),
277
    ("org.gvsig.raster.principalcomponents","http://devel.gvsig.org/svn/gvsig-raster/org.gvsig.raster.principalcomponents/trunk/org.gvsig.raster.principalcomponents/"),
278
    ("org.gvsig.raster.reproject","http://devel.gvsig.org/svn/gvsig-raster/org.gvsig.raster.reproject/trunk/org.gvsig.raster.reproject/"),
279
    ("org.gvsig.raster.roimask","http://devel.gvsig.org/svn/gvsig-raster/org.gvsig.raster.roimask/trunk/org.gvsig.raster.roimask/"),
280
    ("org.gvsig.raster.tasseledcap","http://devel.gvsig.org/svn/gvsig-raster/org.gvsig.raster.tasseledcap/trunk/org.gvsig.raster.tasseledcap/"),
281
    ("org.gvsig.raster.tilecache","http://devel.gvsig.org/svn/gvsig-raster/org.gvsig.raster.tilecache/trunk/org.gvsig.raster.tilecache/"),
282
    ("org.gvsig.raster.tools","http://devel.gvsig.org/svn/gvsig-raster/org.gvsig.raster.tools/trunk/org.gvsig.raster.tools/"),
283
    ("org.gvsig.raster.wms","http://devel.gvsig.org/svn/gvsig-raster/org.gvsig.raster.wms/trunk/org.gvsig.raster.wms/"),
284
    ("org.gvsig.raster.wcs","http://devel.gvsig.org/svn/gvsig-raster/org.gvsig.raster.wcs/trunk/org.gvsig.raster.wcs/"),
285
    ("org.gvsig.raster.wmts","http://devel.gvsig.org/svn/gvsig-raster/org.gvsig.raster.wmts/trunk/org.gvsig.raster.wmts"),
286
    ("org.gvsig.seismic","http://devel.gvsig.org/svn/gvsig-seismic/org.gvsig.seismic/trunk/org.gvsig.seismic"),
287
    ("org.gvsig.sld","http://devel.gvsig.org/svn/gvsig-sldtools/org.gvsig.sld/trunk/org.gvsig.sld"),
288
    ("org.gvsig.vectorediting","http://devel.gvsig.org/svn/gvsig-vectorediting/org.gvsig.vectorediting/trunk/org.gvsig.vectorediting/"),
289
    ("org.gvsig.vectorediting.symmetry","http://devel.gvsig.org/svn/gvsig-vectorediting/org.gvsig.vectorediting.symmetry/trunk/org.gvsig.vectorediting.symmetry/"),
290
    ("org.gvsig.vectorediting.offset","http://devel.gvsig.org/svn/gvsig-vectorediting/org.gvsig.vectorediting.offset/trunk/org.gvsig.vectorediting.offset/"),
291
    ("org.gvsig.wfs.app","http://devel.gvsig.org/svn/gvsig-wfs/org.gvsig.wfs.app/trunk/org.gvsig.wfs.app/"),
292
    ("org.gvsig.customize.app","http://devel.gvsig.org/svn/gvsig-desktop-customize/trunk/org.gvsig.customize.app/"),
293
    ("org.gvsig.catalog","http://devel.gvsig.org/svn/gvsig-catalog/org.gvsig.catalog/trunk/org.gvsig.catalog/"),
294
    ("org.gvsig.gazetteer","http://devel.gvsig.org/svn/gvsig-gazetteer/org.gvsig.gazetteer/trunk/org.gvsig.gazetteer/"),
295
    ("org.gvsig.publish","http://devel.gvsig.org/svn/gvsig-publish/org.gvsig.publish/trunk/org.gvsig.publish"),
296
    ("org.gvsig.webmap","http://devel.gvsig.org/svn/gvsig-webmap/org.gvsig.webmap/trunk/org.gvsig.webmap"),
297
    ("org.gvsig.googlemaps","http://devel.gvsig.org/svn/gvsig-webmap/org.gvsig.googlemaps/trunk/org.gvsig.googlemaps"),
298
    ("org.gvsig.bingmaps","http://devel.gvsig.org/svn/gvsig-webmap/org.gvsig.bingmaps/trunk/org.gvsig.bingmaps"),
299
    ("org.gvsig.toolbox", "http://devel.gvsig.org/svn/gvsig-toolbox/org.gvsig.toolbox/trunk/org.gvsig.toolbox/"),
300
    ("org.gvsig.projection.api", "https://devel.gvsig.org/svn/gvsig-jcrs/org.gvsig.projection/trunk/org.gvsig.projection.api/"),
301
    ("org.gvsig.raster.cache", "http://devel.gvsig.org/svn/gvsig-raster/org.gvsig.raster.cache/trunk/org.gvsig.raster.cache/"),
278 302
  )
303
  
279 304
  makedocs = MakeDocs(workspace,projects,outputfolder)
280 305
  makedocs.showWindow("Crear javadocs")
281 306
  #makedocs.run()
282
    
307

  

Also available in: Unified diff