PageRenderTime 37ms CodeModel.GetById 10ms RepoModel.GetById 0ms app.codeStats 0ms

/components/server/src/ome/services/sharing/make_data.py

https://github.com/ximenesuk/openmicroscopy
Python | 98 lines | 79 code | 8 blank | 11 comment | 6 complexity | c526b0a538a86c79f7db078a3e4cb7b3 MD5 | raw file
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. """
  4. :author: Josh Moore <josh@glencoesoftware.com>
  5. Generator script for producing the ome.services.sharing.data classes
  6. Copyright (c) 2008, Glencoe Software, Inc.
  7. See LICENSE for details.
  8. """
  9. import sys, os, subprocess, time, glob
  10. def readlink(file=sys.argv[0]):
  11. import stat
  12. file = sys.argv[0]
  13. while stat.S_ISLNK(os.lstat(file)[stat.ST_MODE]):
  14. target = os.readlink(file)
  15. if target[0] != "/":
  16. file = os.path.join(os.path.dirname(file), target)
  17. else:
  18. file = target
  19. file = os.path.abspath(file)
  20. return file
  21. exe = readlink()
  22. shr = os.path.join(exe, os.pardir)
  23. shr = os.path.normpath(shr)
  24. dat = os.path.join(shr, "data")
  25. src = os.path.join(shr, os.pardir, os.pardir, os.pardir)
  26. src = os.path.normpath(src)
  27. top = os.path.join(src, os.pardir, os.pardir, os.pardir)
  28. rep = os.path.join(top, "lib", "repository")
  29. rep = os.path.normpath(rep)
  30. def call(cmd, cwd="."):
  31. rc = subprocess.call(cmd, shell=True, cwd=cwd)
  32. if rc != 0:
  33. print "Halting..."
  34. sys.exit(rc)
  35. def clean(dir=dat):
  36. if os.path.exists(dat):
  37. print "Removing %s. Cancel now if necessary. Waiting 5 seconds." % dat
  38. time.sleep(5)
  39. ls = os.listdir(dat)
  40. for file in ls:
  41. print "Removing %s" % file
  42. os.remove(os.path.join(dat,file))
  43. os.rmdir(dat)
  44. def slice(dir=dat):
  45. os.mkdir(dat)
  46. README = open(os.path.join(dat,"README.txt"),"w")
  47. README.write("""
  48. THE FILES IN THIS DIRECTORY ARE GENERATE
  49. AND WILL BE AUTOMATICALLY DELETED
  50. """)
  51. README.flush()
  52. README.close()
  53. call("""slice2freezej --dict ome.services.sharing.data.ShareMap,long,ome::services::sharing::data::ShareData \
  54. --dict-index ome.services.sharing.data.ShareMap,id \
  55. --dict-index ome.services.sharing.data.ShareMap,owner \
  56. --output-dir %s \
  57. Share.ice""" % src)
  58. call("""slice2freezej --dict ome.services.sharing.data.ShareItems,long,ome::services::sharing::data::ShareItem \
  59. --dict-index ome.services.sharing.data.ShareItems,type \
  60. --dict-index ome.services.sharing.data.ShareItems,share \
  61. --output-dir %s \
  62. Share.ice""" % src)
  63. call("""slice2java --output-dir %s Share.ice""" % src)
  64. def compile(dir=dat):
  65. proc = subprocess.Popen("slice2java --version", \
  66. stdout=subprocess.PIPE,
  67. stderr=subprocess.PIPE,
  68. shell=True)
  69. version = proc.communicate()[1].strip()
  70. pat = "%s/ice*%s.jar" % (rep, version)
  71. cp = ":".join(glob.glob(pat))
  72. javac_cmd = "javac -target 1.6 -cp "
  73. javac_cmd += ("%s %s/*.java""" % (cp, dat))
  74. print javac_cmd
  75. call(javac_cmd, cwd=src)
  76. jar_cmd = "jar cvf "
  77. jar_cmd += ("%s/lib/repository/omero-shares-%s.jar " % (top, version))
  78. jar_cmd += ("ome/services/sharing/data/*.java ")
  79. jar_cmd += ("ome/services/sharing/data/*.class")
  80. call(jar_cmd, cwd=src)
  81. if __name__ == "__main__":
  82. clean()
  83. slice()
  84. compile()
  85. print "Be sure to run for Ice 3.3 and Ice 3.4 and Ice 3.5"