def _new_versions(self, cur_ver): versions = [ Version(i) for i in re.findall( r'http://download.redis.io/releases/redis-([\.\d]+).tar.gz', self.http_get(self.homepage)) ] return [i for i in versions if i > cur_ver]
def post_update(self, version, ret=None): ''' 返回最终 html 文档的路径 ''' if version < Version('2.0.0'): return os.getcwd() elif version < Version('3.0.0'): self.shell("sed -i '/platform.twitter.com/d' docs/*.html") return os.path.join(os.getcwd(), 'docs') else: self.shell('jekyll build') self.shell("sed -i '/platform.twitter.com/d' _gh_pages/index.html") self.shell("sed -i '/platform.twitter.com/d' _gh_pages/*/*.html") if version >= Version('3.1.0'): self.shell( 'mkdir _gh_pages/_index && cp _gh_pages/index.html _gh_pages/_index' ) return os.path.join(os.getcwd(), '_gh_pages')
def post_update(self, version, ret=None): ''' 返回最终 html 文档的路径 ''' self.clear_source() self.pushd(self.source_dir) # 1.1 if version == Version('1.1'): open('index.html', 'w+').write( self.http_get( 'http://docs.python.org/ftp/python/doc/1.1/quick-ref.1.1.html' )) self.popd() return self.source_dir # pre 1.5 elif version <= Version('1.5'): url = 'http://docs.python.org/ftp/python/doc/%s/html-%s.tar.gz' % ( version, version) # 1.6 elif version == Version('1.6'): url = 'http://docs.python.org/ftp/python/doc/1.6/html-1.6p1.tgz' # pre 2.4 elif version < Version('2.4'): url = 'http://docs.python.org/ftp/python/doc/%s/html-%s.tgz' % ( version, version) # pre 2.6 elif version < Version('2.6'): url = 'http://docs.python.org/ftp/python/doc/%s/html-%s.tar.bz2' % ( version, version) # after 2.6 else: url = 'http://docs.python.org/ftp/python/doc/%s/python-%s-docs-html.tar.bz2' % ( version, version) ret = self.shell('wget %s -O file' % url) if ret[0] == 0: if self.shell('tar xf file')[0] == 0: self.shell('rm file') ret = os.listdir('.') self.popd() if len(ret) == 1: return os.path.join(self.source_dir, ret[0]) else: return self.source_dir self.popd()
def _new_versions(self, cur_ver): txt = self.http_get( 'https://github.com/elasticsearch/docs/raw/master/conf.yaml') try: obj = yaml.safe_load(txt) ver = Version(obj['repos']['elasticsearch']['current']) if ver > cur_ver: return ver except Exception, e: self.logger.warn('Parse version error: %s' % e)
def _new_versions(self, cur_ver): commits = self.github_api_get( 'https://api.github.com/repos/%(owner)s/%(repo)s/commits?per_page=1' ) if commits and len(commits): ver = Version( commits[0]['commit']['committer']['date'][:10].replace( '-', '')) if ver > cur_ver: return ver
def post_update(self, version, ret=None): ''' 返回最终 html 文档的路径 ''' self.logger.info('Running npm install ...') self.shell('npm cache clean; npm install') self.logger.info('Running grunt build ...') if version < Version('0.3.0'): self.shell('grunt -- build html2js site') else: self.shell('grunt --force') return os.path.join(os.getcwd(), 'dist')
def post_update(self, version, ret=None): self.pushd('docs') if version < Version('1.2.1'): # docs bug: https://groups.google.com/forum/#!topic/django-users/10i5SrQ3ctY self.logger.info('Fixing djangodocs.py ...') open('_ext/djangodocs.py', 'w+').write( self.http_get( 'https://github.com/django/django/raw/stable/1.2.x/docs/_ext/djangodocs.py' )) self.logger.info('Running sphinx-build ...') self.shell('make html') self.popd() return os.path.join(os.getcwd(), 'docs/_build/html/')
def _new_versions(self, cur_ver): ''' 检查新版本,需要更新时返回较新的版本的列表(或单个版本号) 无须更新时返回 False 或 None ''' ret = self.shell( '''svn cat %s/sphinx/conf.py | grep -oP "(?<=release = ')[^']+"''' % self.url) # self.shell 函数返回一个 tuple,第一个元素是进程退出值(0 表示正常结束),另一个元素是标准输出内容 if ret[0] == 0: ver = Version(ret[1].strip()) if ver > cur_ver: return ver
def _new_versions(self, cur_ver): if cur_ver is None or cur_ver == '0': start = 2 else: start = int(cur_ver) + 1 versions = [] while True: if self.http_get('http://docs.amcharts.com/%s/' % start, suppress_error=True): versions.append(Version(start)) start += 1 else: break return versions
def _new_versions(self, cur_ver): versions = [ Version(i) for i in re.findall(r'Version ([\d\.]+)', self.yql_get(YQL_URL)) ] return [i for i in versions if i > cur_ver]
def entry(self, version): if version < Version('2.0.0'): return 'docs/index.html' elif version < Version('3.1.0'): return 'index.html' return '_index/index.html'
def _new_versions(self, cur_ver): ret = self.yql_get(YQL_URL) versions = [Version(i['content']) for i in ret['a']] return sorted(i for i in versions if i > cur_ver)