def _validate(self, info): if len(info.description) > 132: logger.warning('description should be no more than 132 characters') if info.context_menu_item is not None and not info.permissions[ 'context_menu']: die('context_menu_item used, but permissions.context_menu set to false' )
def pack(self, output_path, extension_path, project_src_path, certificates_path): name = self.get_full_package_name(self._info) outpath = os.path.join(output_path, name) zip_file.pack_directory(extension_path, outpath) if self._info.update_url.startswith('http://'): logger.warning( 'Firefox requires HTTPS update_path_url with valid certificate' )
def create(self, project_directory, project_name): if project_directory == sys.path[0]: die('You must set project directory') if project_name is None: print 'Input project name: ', project_name = sys.stdin.readline()[:-1] logger.info('Creating project...') template_path = os.path.join(self.templates_directory, 'browser_button') self._create_dir(project_directory) src_dir = os.path.join(project_directory, 'src') self._create_dir(os.path.join(src_dir, 'common')) self._create_dir(os.path.join(project_directory, 'certificates')) copy_dir_contents(template_path, src_dir) copy_dir_contents( os.path.join(sys.path[0], 'src', 'js', 'common', 'icons'), os.path.join(src_dir, 'common', 'icons')) info = ExtensionInfo() info_path = os.path.join(src_dir, 'common', self._extension_info_name) info.load(info_path) info.name = project_name info.save(info_path) self._create_extension_info(os.path.join(src_dir, 'firefox'), {'id': self.generate_uuid()}) if self.opennssl_available(): try: self._generate_private_key( os.path.join(project_directory, 'certificates/chrome.pem')) self._create_extension_info( os.path.join(src_dir, 'chrome'), { 'id': self.get_chrome_extension_id( os.path.join(project_directory, 'certificates/chrome.pem')) }) except: logger.warning( 'OpenSSL found but failed to generate chrome extension id. Please set your Chrome extension id manually' ) else: logger.warning( 'OpenSSL not found, please set your Chrome extension id manually' ) self._create_extension_info(os.path.join(src_dir, 'chrome'), {'id': self.generate_uuid()}) bho_clsid = self.generate_uuid() toolbar_clsid = self.generate_uuid() engine_clsid = self.generate_uuid() self._create_extension_info( os.path.join(src_dir, 'ie'), { 'id': bho_clsid, 'com_objects': { 'bho': { 'clsid': bho_clsid, 'iid': self.get_iid_from_id( '{06E7211D-0650-43CF-8498-4C81E83AEAAA}', bho_clsid), 'libid': self.generate_uuid() }, 'toolbar': { 'clsid': toolbar_clsid, 'iid': self.get_iid_from_id( '{A0207057-3461-4F7F-B689-D016B7A03964}', toolbar_clsid) }, 'engine': { 'clsid': engine_clsid, 'iid': self.get_iid_from_id( '{06ADA96E-5E8C-4550-BEBF-141EFD188227}', engine_clsid), 'libid': self.generate_uuid() } } }) self._create_extension_info( os.path.join(src_dir, 'safari'), { 'id': 'com.kangoextensions.' + get_prefix_from_name(project_name).lower(), 'developer_id': 'YOUR_SAFARI_DEVELOPER_ID' }) logger.info('Project created in directory %s' % os.path.abspath(project_directory))
def create(self, project_directory, project_name): if project_directory == sys.path[0]: die('You must set project directory') if project_name is None: print 'Input project name: ', project_name = sys.stdin.readline()[:-1] logger.info('Creating project...') template_path = os.path.join(self.templates_directory, 'browser_button') self._create_dir(project_directory) src_dir = os.path.join(project_directory, 'src') self._create_dir(os.path.join(src_dir, 'common')) self._create_dir(os.path.join(project_directory, 'certificates')) copy_dir_contents(template_path, src_dir) copy_dir_contents(os.path.join(sys.path[0], 'src', 'js', 'common', 'icons'), os.path.join(src_dir, 'common', 'icons')) info = kango.ExtensionInfo() info_path = os.path.join(src_dir, 'common', self._extension_info_name) info.load(info_path) info.name = project_name info.save(info_path) self._create_extension_info(os.path.join(src_dir, 'firefox'), {'id': self.generate_uuid()}) if self.opennssl_available(): try: self._generate_private_key(os.path.join(project_directory, 'certificates/chrome.pem')) self._create_extension_info(os.path.join(src_dir, 'chrome'), {'id': self.get_chrome_extension_id(os.path.join(project_directory, 'certificates/chrome.pem'))}) except: logger.warning('OpenSSL found but failed to generate chrome extension id. Please set your Chrome extension id manually') else: logger.warning('OpenSSL not found, please set your Chrome extension id manually') self._create_extension_info(os.path.join(src_dir, 'chrome'), {'id': self.generate_uuid()}) bho_clsid = self.generate_uuid() toolbar_clsid = self.generate_uuid() engine_clsid = self.generate_uuid() self._create_extension_info(os.path.join(src_dir, 'ie'), { 'id': bho_clsid, 'com_objects': { 'bho': { 'clsid': bho_clsid, 'iid': self.get_iid_from_id('{06E7211D-0650-43CF-8498-4C81E83AEAAA}', bho_clsid), 'libid': self.generate_uuid() }, 'toolbar': { 'clsid': toolbar_clsid, 'iid': self.get_iid_from_id('{A0207057-3461-4F7F-B689-D016B7A03964}', toolbar_clsid) }, 'engine': { 'clsid': engine_clsid, 'iid': self.get_iid_from_id('{06ADA96E-5E8C-4550-BEBF-141EFD188227}', engine_clsid), 'libid': self.generate_uuid() } } }) self._create_extension_info(os.path.join(src_dir, 'safari'), { 'id': 'com.kangoextensions.' + get_prefix_from_name(project_name).lower(), 'developer_id': 'YOUR_SAFARI_DEVELOPER_ID' }) self._create_extension_info(os.path.join(src_dir, 'opera'), { 'id': 'http://kangoextensions.com/extensions/' + get_prefix_from_name(project_name).lower() + '/' }) logger.info('Project created in directory %s' % os.path.abspath(project_directory))
def pack(self, output_path, extension_path, project_src_path, certificates_path): if os.path.isdir(os.path.join(extension_path, 'resources')): logger.warning('Safari extension must not contains "resources" directory')
def _validate(self, info): if len(info.description) > 132: logger.warning('description should be no more than 132 characters') if info.context_menu_item is not None and not info.permissions['context_menu']: die('context_menu_item used, but permissions.context_menu set to false')
def pack(self, output_path, extension_path, project_src_path, certificates_path): name = self.get_full_package_name(self._info) outpath = os.path.join(output_path, name) zip_file.pack_directory(extension_path, outpath) if self._info.update_url.startswith('http://'): logger.warning('Firefox requires HTTPS update_path_url with valid certificate')
def pack(self, output_path, extension_path, project_src_path, certificates_path): if os.path.isdir(os.path.join(extension_path, 'resources')): logger.warning( 'Safari extension must not contains "resources" directory')