def build(): sed = Sed() PH.replacer(sed) bootman = PH.getmanifest('jsboot') sed.add( '{JSBOOT}', bootman['jsbootstrap'].encode('latin-1').replace( 'only.jsboot.js', 'only.jsboot-min.js')) sed.add('{MINIBOOT}', 'miniboot-min.js') sed.add('{PUKE-SERVICE-HOST}', Yak.service['host']) sed.add('{PUKE-SERVICE-PORT}', Yak.service['port']) # sed.add('{PUKE_ANALYTICS}', Yak.ACCESS['GA']) # sed.add('{PUKE_FBKEY}', Yak.ACCESS['FACEBOOK']['KEY']) # sed.add('{PUKE_KEY}', Yak.ACCESS['LXXL']['KEY']) # sed.add('{PUKE_SECRET}', Yak.ACCESS['LXXL']['SECRET']) BOOTSTRAP_BUILD = FileSystem.join(Yak.build_root) VERSIONED_ROOT = FileSystem.join(Yak.build_root, Yak.package['version']) # ================================ # Bootstrap # ================================ miniboot = FileList("src/miniboot/common/", filter="*.js") combine(miniboot, BOOTSTRAP_BUILD + '/miniboot.js', replace=sed) combine(miniboot, BOOTSTRAP_BUILD + '/miniboot-min.js', replace=sed) copyfile("src/miniboot/miniboot.ico", Yak.build_root + "/miniboot.ico") copyfile("src/miniboot/miniboot.png", Yak.build_root + "/miniboot.png") combine('src/miniboot/index.html', BOOTSTRAP_BUILD + '/index.html', replace=sed) # ================================ # Modeling as an Ember application # ================================ # ================================ # Helpers libraries # ================================ helpers = FileList('src', filter='*libs*') deepcopy(helpers, Yak.build_root) # ================================ # Standalone activity viewer # ================================ # spitman = PH.getmanifest('spitfire', '0.1', istrunk) # bootman = PH.getmanifest('jsboot', '0.1', istrunk) # actlist = [ # spitman['spitfire-lab'], # 'src/onegateisopening/boot.js', # ] # combine(spitfireList, Yak.BUILD_ROOT + "/there.is.only.jsboot.js", replace=sed) # ================================ # Versioned part of the app # ================================ lxxl = [ 'src/lxxl/data.js', 'src/lxxl/mutable.js', 'src/lxxl/service/activities.js', 'src/lxxl/service/blob.js', 'src/lxxl/service/user.js', 'src/lxxl/model/model.js', 'src/lxxl/factories.js' ] combine(lxxl, VERSIONED_ROOT + "/lxxl-standalone-library.js", replace=sed) #js application js = FileList("src/app/common/helpers", filter="*.js") js.merge(FileList("src/app/common/", filter="*i18n.js")) js.merge(FileList("src/app/common/root", filter="*.js")) js.merge(FileList("src/app/common/states", filter="*.js")) js.merge(FileList("src/app/common/models", filter="*.js")) js.merge(FileList("src/app/common/controllers", filter="*.js")) js.merge(FileList("src/app/common/views", filter="*.js")) # js.merge(FileList("src/app/desktop/", filter = "*app.js")) # js.merge(FileList("src/app/desktop/states", filter = "*.js")) # js.merge(FileList("src/app/desktop/models", filter = "*.js")) # js.merge(FileList("src/app/desktop/controllers", filter = "*.js")) # js.merge(FileList("src/app/desktop/views", filter = "*.js")) js.merge("src/activity/apiwrapper.js") js.merge("src/activity/scoring.js") js.merge("src/activity/activity.js") combine(js, VERSIONED_ROOT + "/lxxl.js", replace=sed) deepcopy('src/activity/scorm/', VERSIONED_ROOT) # js.merge(FileList("src/app/desktop/", filter = "*routing.js")) # js.merge(FileList("src/app/desktop/", filter = "*hotkeys.js")) # js.merge(FileList("src/app/desktop/model/", filter = "*.js")) # js.merge(FileList("src/app/desktop/views/", filter = "*.js")) # js.merge(FileList("src/app/desktop/states/", filter = "*.js")) # css application css = FileList("src/assets/common/css", filter="*.css,*.scss") # css.merge("src/activity/activity.scss") # css.merge(FileList("src/assets/desktop/css", filter = "*.css,*.scss")) combine(css, VERSIONED_ROOT + "/lxxl.css", replace=sed) # fonts copy # fonts = FileList("src/assets/common/fonts/") # fonts.merge(FileList("src/assets/desktop/fonts/")) # deepcopy(fonts, VERSIONED_ROOT + '/fonts/') # images copy images = FileList('src/assets/common/images', filter="*.jpg,*.png,*.gif,*.ico") # images.merge(FileList('src/assets/desktop/images', filter = "*.jpg,*.png,*.gif,*.ico")) deepcopy(images, VERSIONED_ROOT + "/images/") # templates merge templates = FileList('src/app/common/templates', filter="*.tpl") # templates.merge(FileList("src/app/desktop/templates/", filter = "*.tpl")) combine(templates, VERSIONED_ROOT + "/lxxl.tpl") # ================================ # Versioned runner # ================================ list = FileList('src', filter='*activity*') deepcopy(list, VERSIONED_ROOT, replace=sed) combine(lxxl, VERSIONED_ROOT + "/activity/lxxl-standalone-library.js", replace=sed) # combine("src/activity/activity.tpl", VERSIONED_ROOT + "/activity.tpl", replace=sed) # css.merge(FileList("src/assets/desktop/css", filter = "*.css,*.scss")) combine("src/activity/activity.scss", VERSIONED_ROOT + "/activity/activity.css", replace=sed) combine("src/activity/miniboot.js", VERSIONED_ROOT + "/activity/miniboot-min.js", replace=sed) # XXX new stuff deepcopy("src/miniapp", Yak.build_root + "/miniapp", replace=sed)
def build(): sed = Sed() PH.replacer(sed) bootman = PH.getmanifest('jsboot') sed.add('{JSBOOT}', bootman['jsbootstrap'].encode('latin-1').replace('only.jsboot.js', 'only.jsboot-min.js')) sed.add('{MINIBOOT}', 'miniboot-min.js') sed.add('{PUKE-SERVICE-HOST}', Yak.service['host']) sed.add('{PUKE-SERVICE-PORT}', Yak.service['port']) # sed.add('{PUKE_ANALYTICS}', Yak.ACCESS['GA']) # sed.add('{PUKE_FBKEY}', Yak.ACCESS['FACEBOOK']['KEY']) # sed.add('{PUKE_KEY}', Yak.ACCESS['LXXL']['KEY']) # sed.add('{PUKE_SECRET}', Yak.ACCESS['LXXL']['SECRET']) BOOTSTRAP_BUILD = FileSystem.join(Yak.build_root) VERSIONED_ROOT = FileSystem.join(Yak.build_root, Yak.package['version']) # ================================ # Bootstrap # ================================ miniboot = FileList("src/miniboot/common/" , filter="*.js") combine(miniboot, BOOTSTRAP_BUILD + '/miniboot.js', replace=sed) combine(miniboot, BOOTSTRAP_BUILD + '/miniboot-min.js', replace=sed) copyfile("src/miniboot/miniboot.ico", Yak.build_root + "/miniboot.ico") copyfile("src/miniboot/miniboot.png", Yak.build_root + "/miniboot.png") combine('src/miniboot/index.html', BOOTSTRAP_BUILD + '/index.html', replace=sed) # ================================ # Modeling as an Ember application # ================================ # ================================ # Helpers libraries # ================================ helpers = FileList('src', filter = '*libs*') deepcopy(helpers, Yak.build_root); # ================================ # Standalone activity viewer # ================================ # spitman = PH.getmanifest('spitfire', '0.1', istrunk) # bootman = PH.getmanifest('jsboot', '0.1', istrunk) # actlist = [ # spitman['spitfire-lab'], # 'src/onegateisopening/boot.js', # ] # combine(spitfireList, Yak.BUILD_ROOT + "/there.is.only.jsboot.js", replace=sed) # ================================ # Versioned part of the app # ================================ lxxl = [ 'src/lxxl/data.js', 'src/lxxl/mutable.js', 'src/lxxl/service/activities.js', 'src/lxxl/service/blob.js', 'src/lxxl/service/user.js', 'src/lxxl/model/model.js', 'src/lxxl/factories.js' ] combine(lxxl, VERSIONED_ROOT + "/lxxl-standalone-library.js", replace=sed) #js application js = FileList("src/app/common/helpers", filter = "*.js") js.merge(FileList("src/app/common/", filter = "*i18n.js")) js.merge(FileList("src/app/common/root", filter = "*.js")) js.merge(FileList("src/app/common/states", filter = "*.js")) js.merge(FileList("src/app/common/models", filter = "*.js")) js.merge(FileList("src/app/common/controllers", filter = "*.js")) js.merge(FileList("src/app/common/views", filter = "*.js")) # js.merge(FileList("src/app/desktop/", filter = "*app.js")) # js.merge(FileList("src/app/desktop/states", filter = "*.js")) # js.merge(FileList("src/app/desktop/models", filter = "*.js")) # js.merge(FileList("src/app/desktop/controllers", filter = "*.js")) # js.merge(FileList("src/app/desktop/views", filter = "*.js")) js.merge("src/activity/apiwrapper.js") js.merge("src/activity/scoring.js") js.merge("src/activity/activity.js") combine(js, VERSIONED_ROOT + "/lxxl.js", replace=sed) deepcopy('src/activity/scorm/', VERSIONED_ROOT); # js.merge(FileList("src/app/desktop/", filter = "*routing.js")) # js.merge(FileList("src/app/desktop/", filter = "*hotkeys.js")) # js.merge(FileList("src/app/desktop/model/", filter = "*.js")) # js.merge(FileList("src/app/desktop/views/", filter = "*.js")) # js.merge(FileList("src/app/desktop/states/", filter = "*.js")) # css application css = FileList("src/assets/common/css", filter = "*.css,*.scss") # css.merge("src/activity/activity.scss") # css.merge(FileList("src/assets/desktop/css", filter = "*.css,*.scss")) combine(css, VERSIONED_ROOT + "/lxxl.css", replace=sed) # fonts copy # fonts = FileList("src/assets/common/fonts/") # fonts.merge(FileList("src/assets/desktop/fonts/")) # deepcopy(fonts, VERSIONED_ROOT + '/fonts/') # images copy images = FileList('src/assets/common/images', filter = "*.jpg,*.png,*.gif,*.ico") # images.merge(FileList('src/assets/desktop/images', filter = "*.jpg,*.png,*.gif,*.ico")) deepcopy(images, VERSIONED_ROOT + "/images/") # templates merge templates = FileList('src/app/common/templates', filter = "*.tpl") # templates.merge(FileList("src/app/desktop/templates/", filter = "*.tpl")) combine(templates, VERSIONED_ROOT + "/lxxl.tpl") # ================================ # Versioned runner # ================================ list = FileList('src', filter = '*activity*') deepcopy(list, VERSIONED_ROOT, replace=sed) combine(lxxl, VERSIONED_ROOT + "/activity/lxxl-standalone-library.js", replace=sed) # combine("src/activity/activity.tpl", VERSIONED_ROOT + "/activity.tpl", replace=sed) # css.merge(FileList("src/assets/desktop/css", filter = "*.css,*.scss")) combine("src/activity/activity.scss", VERSIONED_ROOT + "/activity/activity.css", replace=sed) combine("src/activity/miniboot.js", VERSIONED_ROOT + "/activity/miniboot-min.js", replace=sed) # XXX new stuff deepcopy("src/miniapp", Yak.build_root + "/miniapp", replace=sed)
def build(): # ============================ # Basic stuff # ============================ sed = Sed() PH.replacer(sed) # # Get the remoty shims first # remoty = Yak.links["jsboot"]["url"].split('/') # remoty.pop() # remoty = '/'.join(remoty) # yam = json.loads(http.get(Yak.links["jsboot"]["url"], verify=False).text)[Yak.links["jsboot"]["version"]] # ================================ # Modeling as an Ember application # ================================ # ================================ # Bootstrap # ================================ VERSIONED_ROOT = FileSystem.join(Yak.build_root, Yak.package['version']); # First, merge in bootstraps js = FileList("src/bootstrap/common/" , filter="*.js") # js.merge(FileList("src/bootstrap/desktop/", filter = "*.js")) # css = FileList("src/bootstrap/common/" , filter="*.css,*.scss") # css.merge(FileList("src/bootstrap/desktop/", filter = "*.css,*.scss")) # Now generate min and non min version sed.add('{PUKE-BOOT-ROOT}', Yak.package['version']) copyfile("src/bootstrap/miniboot.ico", Yak.build_root + "/miniboot.ico") copyfile("src/bootstrap/miniboot.png", Yak.build_root + "/miniboot.png") bootman = PH.getmanifest('jsboot', usemin = True) sed.add('{JSBOOT}', bootman['jsbootstrap'].encode('latin-1')) sed.add('{MINIBOOT}', 'miniboot-min.js') combine(js, Yak.build_root + "/miniboot-min.js", replace=sed) # combine(css, Yak.build_root + "/miniboot-min.css", replace=sed) combine('src/bootstrap/index.html', Yak.build_root + '/index.html', replace=sed) # copyfile('src/bootstrap/taupale.json', Yak.build_root) # copyfile('src/bootstrap/taupale.tpl', Yak.build_root) # XXX # combine('src/test.jqz', Yak.build_root + '/test.jqz', replace=sed) # ================================ # Versioned part of the app # ================================ #js application js = FileList("src/app/common/helpers", filter = "*.js") list = [ "src/lib/closure.js", "src/lib/github/error.js", "src/lib/github/core.js", "src/lib/github/auth.js", "src/lib/github/users.js", "src/lib/github/organizations.js", "src/lib/github/teams.js", "src/lib/github/repositories.js", "src/lib/github/search.js", "src/lib/jscore/eventdispatcher.js", "src/lib/jscore/mutable.js", "src/lib/jscore/utils.js", "src/lib/gitbay/base.js", "src/lib/gitbay/user.js", "src/lib/gitbay/organization.js", "src/lib/gitbay/team.js", "src/lib/gitbay/repository.js", "src/lib/gitbay/search.js", "src/lib/gitbay/factory.js" ] js.merge(list) js.merge(FileList("src/app/common/", filter = "*i18n.js")) js.merge(FileList("src/app/common/root", filter = "*.js")) js.merge(FileList("src/app/common/states", filter = "*.js")) js.merge(FileList("src/app/common/models", filter = "*.js")) js.merge(FileList("src/app/common/controllers", filter = "*.js")) js.merge(FileList("src/app/common/views", filter = "*.js")) md = FileList('src/lib/markdown', filter="*.js") js.merge(md) # js.merge(FileList('src/lib/prettify', filter="*.js")) js.merge(FileList('src/lib/skimify', filter="*.js")) combine(js, VERSIONED_ROOT + "/gitbay.js", replace=sed) # css application css = FileList("src/assets/common/css", filter = "*.css,*.scss") # css.merge(FileList("src/assets/desktop/css", filter = "*.css,*.scss")) combine(css, VERSIONED_ROOT + "/gitbay.css", replace=sed) # images copy images = FileList('src/assets/common/images', filter = "*.jpg,*.png,*.gif,*.ico") # images.merge(FileList('src/assets/desktop/images', filter = "*.jpg,*.png,*.gif,*.ico")) deepcopy(images, VERSIONED_ROOT + "/images/") # images copy fonts = FileList('src/assets/common/fonts', filter = "*.eot,*.svg,*.ttf,*.woff") # images.merge(FileList('src/assets/desktop/images', filter = "*.jpg,*.png,*.gif,*.ico")) deepcopy(fonts, VERSIONED_ROOT + "/fonts/") # templates merge templates = FileList('src/app/common/templates', filter = "*.tpl") # templates.merge(FileList("src/app/desktop/templates/", filter = "*.tpl")) combine(templates, VERSIONED_ROOT + "/gitbay.tpl")
def build(): sed = Sed() PH.replacer(sed) spitman = PH.getmanifest('spitfire') spitbase = spitman['spitfire'].split('/') spitbase.pop() spitbase = '/'.join(spitbase) sed.add('{SPIT-BASE}', spitbase.encode('latin-1')) # Our own internal boot path to resolve modules against... - XXX unlikely to work properly due to deploy root variations? # sed.add('{SPIT-BOOT}', Yak.links['self']['url'] + "/"+ Yak.package['name'] + "/" + Yak.package['version']) # Tricky! sed.add("'{SPIT-STATICS}'", json.dumps(PH.getstaticmanifest('*'))) # ================================ # Tests # ================================ list = FileList("tests", filter="*.js,*.html") deepcopy(list, Yak.build_root + '/tests', replace=sed) # ================================ # Spitfire loader, in many variants # ================================ # Mini-loader combine([spitman['gulliver'], 'src/onegateisopening/b.js'], Yak.build_root + "/t.i.o.j.js", replace=sed) # Bootstrappers - we use lab by default spitfireList = [ spitman['spitfire-lab'], 'src/onegateisopening/boot.js', 'src/gister/packman.js' ] combine(spitfireList, Yak.build_root + "/there.is.only.jsboot.js", replace=sed) # spitfireList = [ # spitman['spitfire'], # 'src/onegateisopening/boot.js', # ] # combine(spitfireList, Yak.build_root + "/there.is.only.jsboot.vanilla.js", replace=sed) # spitfireList = [ # spitman['spitfire-require'], # 'src/onegateisopening/boot.js', # ] # # combine(spitfireList, Yak.build_root + "/there.is.only.jsboot.require.js", replace=sed) # combine(spitfireList, Yak.build_root + "/there.is.only.jsboot.require.js", replace=sed) # spitfireList = [ # spitman['spitfire-head'], # 'src/onegateisopening/boot.js', # ] # combine(spitfireList, Yak.build_root + "/there.is.only.jsboot.head.js", replace=sed) # # These two don't support strict mode - the hell with them! # spitfireList = [ # spitman['spitfire-yahoo'], # 'src/onegateisopening/boot.js', # ] # combine(spitfireList, Yak.build_root + "/there.is.only.jsboot.yahoo.js", replace=sed) # spitfireList = [ # spitman['spitfire-yepnope'], # 'src/onegateisopening/boot.js', # ] # combine(spitfireList, Yak.build_root + "/there.is.only.jsboot.yepnope.js", replace=sed) # XXX Have unified XHR bundled to be safe (?) # spitman['xhr'], # ================================ # Monolithic ember stack test # ================================ # f = [ # PH.getstaticmanifest('jquery'), # PH.getstaticmanifest('handlebars'), # PH.getstaticmanifest('ember'), # PH.getstaticmanifest('i18n') # ] # combine(f, Yak.build_root + "/stack.ember.js", replace=sed) # ================================ # Css normalizer # ================================ cssnorm = PH.getstaticmanifest('normalize', Yak.istrunk) combine([cssnorm], Yak.build_root + "/there.is.only.jsboot.css", replace=sed) # ================================ # Build-up the gate framy # ================================ # XXX this must die and be replaced by a proper postmessage shim postmessageshim = PH.getstaticmanifest('postmessage', Yak.istrunk) postmessageshim = 'src/mingus/postmessage.js'; gateList = [ spitman['loader-lab'], spitman['spitfire'], postmessageshim, 'src/onegateisopening/gate.js' ] combine(gateList, Yak.build_root + '/toobsj.ylno.si.ereht.js', replace=sed) # FileSystem.copyfile(Yak.build_root + '/gates/gate-frame.js', Yak.build_root + '/gates/gate-frame-min.js') shortversion = Yak.package['version'].split('-').pop(0).split('.') shortversion = shortversion[0] + "." + shortversion[1] # Build-up the frame to deploy connect to # XXX whether this works is undefined... because of shortversion and selectable versioned deploy sed.add('{PUKE-GATE-OPENER}', Yak.links['self']['url'] + "/"+ Yak.package['name'] + "/" + shortversion + "/toobsj.ylno.si.ereht.js") combine('src/onegateisopening/gate.html', Yak.build_root + '/gate.html', replace=sed) # ================================ # Standalone mingus # ================================ mingusList = [ "src/strict.js", # Have postmessage shit postmessageshim, # Better safe than sorry - always include that # "src/lib/com/wiu/mingus/shim-plus/console.js", # "src/lib/com/wiu/mingus/shim-plus/cookies.js", # "src/lib/com/wiu/mingus/shim-plus/string.js", # "src/lib/com/wiu/mingus/shim-plus/iegetset.js", # "src/lib/com/wiu/mingus/shim/postmessage.js", # Mingus NS "src/mingus/namespace.js", # Base dep "src/mingus/grammar/ABNF.js", # "src/lib/com/wiu/mingus/converters/entity.js", # "src/lib/com/wiu/mingus/converters/bencoder.js", # "src/lib/com/wiu/mingus/converters/wikimedia.js", # And parsers / grammars "src/mingus/grammar/IMF.js", "src/mingus/grammar/IRI.js", "src/mingus/grammar/HTTP.js", # Then md5 dep "src/mingus/crypto/md5.js", # Not necessary per-se, but darn useful "src/mingus/converters/entity.js", # Then bases "src/mingus/xhr/ungate.js", "src/mingus/xhr/appkey.js", "src/mingus/xhr/digest.js", # Then the final XHR "src/mingus/xhr/appkeydigestxhr.js" ] # Shimmy yeah combine(mingusList, Yak.build_root + "/mingus.js", replace=sed) # ================================ # jsBoot modules # ================================ list = FileList('src/jsboot/debug', filter = '*.js', exclude = '*xxx*'); combine(list, Yak.build_root + "/debug.js", replace=sed) # list = FileList('src/jsboot/gister', filter = '*.js', exclude = '*xxx*') list = FileList('src/jsboot/core', filter = '*.js', exclude = '*xxx*'); # list.merge(FileList('src/jsboot/gister', filter = '*.js', exclude = '*xxx*')); list.merge(['src/jsboot/types/eventdispatcher.js']) # Not exactly "core" per-se list.merge(['src/jsboot/types/mutable.js']) list.merge(['src/jsboot/controllers/idle.js']) list.merge(['src/jsboot/controllers/singleapp.js']) list.merge(['src/jsboot/utils/storage.js']) list.merge(['src/jsboot/utils/tweener.js']) combine(list, Yak.build_root + "/core.js", replace=sed) list = [ 'src/jsboot/service/errors.js', 'src/jsboot/service/client.js', 'src/jsboot/service/core.js', 'src/jsboot/service/flaves/account.js', 'src/jsboot/controllers/application.js' ] combine(list, Yak.build_root + "/service.js", replace=sed) list = FileList('src/jsboot/ui', filter = '*.js', exclude = '*xxx*'); combine(list, Yak.build_root + "/ui.js", replace=sed) spitroot = Yak.package['name'] + "/" + shortversion description = {} description["mingus"] = "%s/mingus.js" % spitroot description["jsbootstrap"] = "%s/there.is.only.jsboot.js" % spitroot description["gate"] = "%s/gate.html" % spitroot description["cssbootstrap"] = "%s/there.is.only.jsboot.css" % spitroot # Link the yaml stuff # yamu = FileSystem.join(Yak.deploy_root, "jsboot.yaml") # description = yaml.load('\n'.join(description)) # if FileSystem.exists(yamu): # mama = yaml.load(FileSystem.readfile(yamu)) # mama[Yak.package['version']] = description # else: # mama = {Yak.package['version']: description} # # Straight to service root instead - kind of hackish... # FileSystem.writefile(yamu, yaml.dump(mama)) PH.describe(shortversion, "jsboot", description)