Пример #1
0
    def OnPath(self, evt):
        glist = self.generators_list
        glist.Clear()

        self.package_dir = evt.GetString()
        if not self.package_dir:
            return

        if not os.path.exists(self.package_dir):
            self.dir_browse_button.SetValue('')
            return

        self.package_dir = os.path.abspath(self.package_dir)

        try:
            package = get_loader().get_package(self.package_dir)
            meta = package.meta
        except:
            print ''.join(traceback.format_exception(*sys.exc_info()[:3]))
            self.dir_browse_button.SetValue('')

            dlg = wx.MessageDialog(self,
                    'Error occured when trying to load package.\n' + \
                    'Refer to log for more details.',
                    'Package load failed',
                    wx.OK | wx.ICON_ERROR)
            dlg.ShowModal()
            dlg.Destroy()

        self.version.SetValue(meta.version)

        for g in meta.generators:
            glist.Append(g.class_id, g.class_id)
            if self.d_gen == g.class_id:
                glist.SetValue(g.class_id)
Пример #2
0
    def upload_package(self, start_dir=None):
        info = get_upload_details(self.frame, self)
        if not info:
            return
        udg, repo_uri, username, password, package_dir, package_home, ver = info

        pdir = os.path.abspath(package_dir)
        no_snaps_gens = []

        package = get_loader().get_package(pdir)
        meta = package.meta

        if meta.version != ver:
            meta.version = ver
            xml_doc = meta.xmlize()
            xml_fpath = os.path.join(pdir, "package.xml")
            stream = open(xml_fpath, "w")
            stream.write('<?xml version="1.0" encoding="UTF-8"?>\n')
            xml_doc.serialize(stream)

        for g in meta.generators:
            cdir = os.path.sep.join([pdir, "screenshots", g.class_id])
            snaps = glob.glob(os.path.join(cdir, "*"))
            if not snaps:
                no_snaps_gens.append(g.class_id)

        if no_snaps_gens:

            dlg = GMD.GenericMessageDialog(
                udg,
                "These generators do not have screenshots: \n"
                + "\n".join(no_snaps_gens)
                + "\nDo you want to continue uploading",
                "Missing Screenshots",
                wx.YES_NO | wx.ICON_INFORMATION,
            )

            response = dlg.ShowModal()
            if response == wx.ID_NO:
                self.upload_package()
            dlg.Destroy()

        try:
            client = Client(repo_uri)
            client.login(username, password)
            client.upload(package_dir, package_home)
        except Client.Exception, e:
            print "".join(traceback.format_exception(*sys.exc_info()[:3]))

            dlg = wx.MessageDialog(
                udg,
                "Error occured when trying to upload package.\n" + e.message,
                "Package upload failed",
                wx.OK | wx.ICON_ERROR,
            )
            dlg.ShowModal()
            dlg.Destroy()
            self.upload_package()
Пример #3
0
    def _get_package_meta(self, stream, path, version, description):

        package = get_loader().get_package(path)
        meta = package.meta
        meta.version = version
        meta.description = description

        xml_doc = meta.xmlize()
        stream.write('<?xml version="1.0" encoding="UTF-8"?>\n')
        xml_doc.serialize(stream)

        cache_package_metadata(meta, path)