def download_version_details(source_file, version_pattern, target_file, target_key): """ parse latest nightly version from ftp page >>> download_nightly_details(nightly_file) """ import urllib2 response = urllib2.urlopen(source_file).read() versions_match = version_pattern.finditer(response) for version_match in versions_match: version = version_match.group(1) print version try: PROD_DETAILS_DIR = settings_fallback('PROD_DETAILS_DIR') f = open(PROD_DETAILS_DIR + target_file, 'w') try: f.write('{"%s":"%s"}' % (target_key, version)) finally: f.close() log.info('Written newest version in %s%s' % (PROD_DETAILS_DIR, target_file)) except IOError: log.error('Failed to write version file.')
import logging from django.core.management.base import NoArgsCommand from bedrock.mocotw.utils import download_nightly_details, download_aurora_details from product_details import settings_fallback log = logging.getLogger('prod_details') log.addHandler(logging.StreamHandler()) log.setLevel(settings_fallback('LOG_LEVEL')) class Command(NoArgsCommand): help = 'Update Firefox Nightly Version number from FTP.' option_list = NoArgsCommand.option_list def handle_noargs(self, **options): self.options = options # Should we be quiet? download_aurora_details() download_nightly_details() # download_aurora_details() log.debug('Nightly Version update run complete.')
def __init__(self, *args, **kwargs): # some settings self.PROD_DETAILS_DIR = settings_fallback('PROD_DETAILS_DIR') self.PROD_DETAILS_URL = settings_fallback('PROD_DETAILS_URL') super(Command, self).__init__(*args, **kwargs)
from optparse import make_option import os import re import shutil import tempfile import urllib2 from urlparse import urljoin from django.core.management.base import NoArgsCommand, CommandError from product_details import settings_fallback log = logging.getLogger('prod_details') log.addHandler(logging.StreamHandler()) log.setLevel(settings_fallback('LOG_LEVEL')) class Command(NoArgsCommand): help = 'Update Mozilla product details off SVN.' requires_model_validation = False option_list = NoArgsCommand.option_list + ( make_option('-f', '--force', action='store_true', dest='force', default=False, help=( 'Download product details even if they have not been ' 'updated since the last fetch.')), make_option('-q', '--quiet', action='store_true', dest='quiet', default=False, help=( 'If no error occurs, swallow all output.')), )