settings.py 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. import sys
  2. import os
  3. import ae_script
  4. import ConfigParser
  5. import sys
  6. import logging
  7. def getValue(confif, section, key, default):
  8. value = default
  9. try:
  10. value = config.get(section, key)
  11. except ConfigParser.NoOptionError:
  12. pass
  13. return value
  14. class FakeSecHead(object):
  15. def __init__(self, fp):
  16. self.fp = fp
  17. self.sechead = '[asection]\n'
  18. def readline(self):
  19. if self.sechead:
  20. try:
  21. return self.sechead
  22. finally:
  23. self.sechead = None
  24. else:
  25. return self.fp.readline()
  26. if __name__ == "__main__":
  27. out = ae_script.Out("settings.out")
  28. import argparse
  29. parser = argparse.ArgumentParser()
  30. parser.add_argument("--project_path")
  31. def str2bool(v):
  32. if v.lower() in ('yes', 'true', 't', 'y', '1'):
  33. return True
  34. elif v.lower() in ('no', 'false', 'f', 'n', '0'):
  35. return False
  36. else:
  37. raise argparse.ArgumentTypeError('Boolean value expected.')
  38. parser.add_argument("--preview", type=str2bool)
  39. args = parser.parse_known_args()[0]
  40. dest = ""
  41. def eprint(arg):
  42. out.write(arg)
  43. export_name = ""
  44. if args.preview:
  45. import tempfile
  46. dest = tempfile.mkdtemp(prefix="aep_") + "/"
  47. else:
  48. aep = args.project_path
  49. #aep = """d:\Dropbox (Alisa)\ALISA_SLOTS\ASSETS2\AE\games\eye_of_horus\ui\ui.aep"""
  50. def get_level_name(left, level):
  51. for i in xrange(level + 1):
  52. left, right = os.path.split(left)
  53. right = os.path.splitext(right)[0]
  54. return right
  55. folder = aep
  56. CONF = ".ae"
  57. while folder:
  58. sp = os.path.split(folder)
  59. if folder == sp[0]:
  60. break
  61. folder = sp[0]
  62. path = os.path.join(folder, CONF)
  63. if os.path.exists(path):
  64. break
  65. import ConfigParser
  66. config = ConfigParser.SafeConfigParser()
  67. try:
  68. config.readfp(FakeSecHead(open(path)))
  69. section = "asection"
  70. dest = getValue(config, section, "dest", None)
  71. dest = dest.replace("${aep}", get_level_name(aep, 0))
  72. dest = dest.replace("${aep-0}", get_level_name(aep, 0))
  73. dest = dest.replace("${aep-1}", get_level_name(aep, 1))
  74. dest = dest.replace("${aep-2}", get_level_name(aep, 2))
  75. dest = dest.replace("${aep-3}", get_level_name(aep, 3))
  76. dest = dest.replace("${aep-4}", get_level_name(aep, 4))
  77. dest = os.path.normpath(os.path.split(path)[0] + "/" + dest)
  78. dest = os.path.abspath(dest)
  79. dest += "\\"
  80. export_name = getValue(config, section, "name", "")
  81. except IOError:
  82. dest = ""
  83. #open("project_settings.log", "a").write("{} -> {}\n".format(aep, dest))
  84. eprint("export_path={}".format(dest, ))
  85. if export_name:
  86. eprint("export_name={}".format(export_name, ))
  87. out.write_settings()
  88. out.close()