#!/usr/bin/env python3 #-*- encoding: utf-8 -*- """ The final hook is run after all other binary hooks. """ import glob import os def remove_implicit_files(): """ 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. """ explicit = set() with open('./config/hooks/explicit_provides', 'r', encoding='utf-8') as fp: for filename in fp: explicit.add(filename.rstrip()) if not explicit: print('remove_implicit_files: explicit_provides is empty ' 'all binary output will be included') quit() all = set(glob.glob('livecd.ubuntu-cpc.*')) implicit = all - explicit print('remove_implicit_files: all artifacts considered: {}'.format(all)) print('remove_implicit_files: explict artifacts to keep: ' '{}'.format(explicit)) print('remove_implicit_files: implicit artifacts to remove: ' '{}'.format(implicit)) for file in implicit: print('remove_implicit_files: removing {} ' '{} bytes'.format(file, os.stat(file).st_size)) if os.path.islink(file): os.unlink(file) elif os.path.isfile(file): os.remove(file) if __name__ == "__main__": print('Running {}'.format(__file__)) remove_implicit_files()