import glob import os import shutil class PCLReferenceAssembliesPackage(Package): def __init__(self): Package.__init__(self, name='PortableReferenceAssemblies', version='2014-04-14', sources=['https://bosstoragemirror.blob.core.windows.net/bot-provisioning/PortableReferenceAssemblies-2014-04-14.zip']) def build(self): pass # A bunch of shell script written inside python literals ;( def install(self): dest = os.path.join( self.staged_prefix, "lib", "mono", "xbuild-frameworks", ".NETPortable") if not os.path.exists(dest): os.makedirs(dest) shutil.rmtree(dest, ignore_errors=True) self.sh("rsync -abv -q %s/* %s" % (self.workspace, dest)) for f in glob.glob("%s/*/Profile/*/SupportedFrameworks" % dest): self.write_xml(f) def write_xml(self, directory): # print "Writing iOS/Android/Mac listings for " + directory data = { os.path.join(directory, "MonoTouch.xml"): """""", os.path.join(directory, "Xamarin.iOS.xml"): """""", os.path.join(directory, "Xamarin.Android.xml"): """""", os.path.join(directory, "Xamarin.Mac.xml"): """""", os.path.join(directory, "Xamarin.TVOS.xml"): """""", os.path.join(directory, "Xamarin.WatchOS.xml"): """""", } for filename, content in data.iteritems(): f = open(filename, "w") f.write(content + "\n") f.close() PCLReferenceAssembliesPackage()