#!/usr/bin/env python3 #-*- encoding: utf-8 -*- """ Remove output files not created by explicitly specified image targets This uses the 'explicit_provides' file generated by the 'make-hooks' script. If the file is empty, all output will be saved. """ import glob import os import sys if __name__ == "__main__": print('Running {}'.format(__file__)) scriptname = os.path.basename(__file__) explicit = set() with open('./config/hooks.d/explicit_provides', 'r', encoding='utf-8') as fp: for filename in fp: explicit.add(filename.rstrip()) if not explicit: print('{}: explicit_provides is empty. ' 'All binary output will be included'.format(scriptname)) sys.exit(0) all = set(glob.glob('livecd.ubuntu-cpc.*')) implicit = all - explicit print('{}: all artifacts considered: {}'.format(scriptname, all)) print('{}: explict artifacts to keep: {}'.format(scriptname, explicit)) print('{}: implicit artifacts to remove: {}'.format(scriptname, implicit)) for file in implicit: if os.path.islink(file): print('{}: unlinking {}'.format(scriptname, file)) os.unlink(file) elif os.path.isfile(file): print('{}: removing {} ' '{} bytes'.format(scriptname, file, os.stat(file).st_size)) os.remove(file)