def write_chunk_metafile(defs, chunk): '''Writes a chunk .meta file to the baserock dir of the chunk The split rules are used to divide up the installed files for the chunk into artifacts in the 'products' list ''' app.log(chunk['name'], 'splitting chunk') rules, splits = compile_rules(defs, chunk) install_dir = chunk['install'] fs = OSFS(install_dir) files = fs.walkfiles('.', search='depth') dirs = fs.walkdirs('.', search='depth') for path in files: for artifact, rule in rules: if rule.match(path): splits[artifact].append(path) break all_files = [a for x in splits.values() for a in x] for path in dirs: if not any(map(lambda y: y.startswith(path), all_files)) and path != '': for artifact, rule in rules: if rule.match(path) or rule.match(path + '/'): splits[artifact].append(path) break write_metafile(rules, splits, chunk)
def write_chunk_metafile(defs, chunk): '''Writes a chunk .meta file to the baserock dir of the chunk The split rules are used to divide up the installed files for the chunk into artifacts in the 'products' list ''' log(chunk['name'], 'Splitting', chunk.get('kind')) rules, splits = compile_rules(defs, chunk) install_dir = chunk['install'] fs = OSFS(install_dir) files = fs.walkfiles('.', search='depth') dirs = fs.walkdirs('.', search='depth') for path in files: for artifact, rule in rules: if rule.match(path): splits[artifact].append(path) break all_files = [a for x in splits.values() for a in x] for path in dirs: if not any(map(lambda y: y.startswith(path), all_files)) and path != '': for artifact, rule in rules: if rule.match(path) or rule.match(path + '/'): splits[artifact].append(path) break write_metafile(rules, splits, chunk)
def cmd_scan(self, *params, **options): favicons_fs = OSFS(settings.MEDIA_ROOT).makeopendir('favicons') for path in favicons_fs.walkdirs(wildcard="???"): icon_fs = favicons_fs.opendir(path) if icon_fs.isfile('scan.pik'): icon_sizes = ','.join(str(s) for s in sorted(int(p.split('.')[0][4:]) for p in icon_fs.listdir(wildcard='icon*.png'))) if not icon_sizes: continue favicon, created = FavIcon.import_(icon_fs.open('scan.pik')) if favicon is None: continue old_sizes = favicon.sizes favicon.sizes = icon_sizes favicon.update() favicon.save() if created: print "New object:\t", path else: print path if old_sizes != favicon.sizes: print "Icon sizes changed!\t", path favicon.export(icon_fs.open('scan.pik', 'w'))
parser.add_argument('-dots', help='include dot files', action='store_true') args = parser.parse_args() dir = OSFS(args.directory) dots = args.dots dirs = [] skipFirst = True doc, tag, text = Doc().tagtext() with tag('urlSet', xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"): for name, stats in dir.listdirinfo(files_only=True): if accept(name): with tag('url'): with tag('loc'): text('http://www.example.com/%s' % quote(name)) with tag('lastmod'): text(str(Arrow.utcfromtimestamp(stats['modified_time'].timestamp()))) for aDir in dir.walkdirs(): if skipFirst: skipFirst = False continue if accept(aDir[1:None]): for name, stats in dir.listdirinfo(path=aDir, files_only=True): if accept(name): with tag('url'): with tag('loc'): text('http://www.example.com%s/%s' %(aDir,quote(name))) with tag('lastmod'): text(str(Arrow.utcfromtimestamp(stats['modified_time'].timestamp()))) dir.close() result = indent(