You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
livecd-rootfs/live-build/ubuntu-cpc/hooks.d/base/final.binary

48 lines
1.4 KiB

#!/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()