53 lines
1.9 KiB
Python
53 lines
1.9 KiB
Python
import os
|
|
|
|
from pyutils import configs
|
|
|
|
|
|
def delete_files(dir_path, files_to_delete):
|
|
print(f"n\n\n#######################\nstart to delete in directory:\n{dir_path}")
|
|
|
|
for file_name in files_to_delete:
|
|
file_path = os.path.join(dir_path, file_name)
|
|
if os.path.exists(file_path):
|
|
os.remove(file_path)
|
|
print(f"Deleted {file_name}")
|
|
|
|
|
|
def check_files(dir_path, files_to_check, check_extra=True):
|
|
|
|
print(f"\n\n\n#######################\nstart to scan directory:\n{dir_path}")
|
|
dir_files = os.listdir(dir_path)
|
|
|
|
missing_files = [file for file in files_to_check if file not in dir_files]
|
|
if missing_files:
|
|
print(f"The following files are missing:\n {', '.join(missing_files)}")
|
|
|
|
if check_extra:
|
|
extra_files = [file for file in dir_files if file not in files_to_check]
|
|
if extra_files:
|
|
print(
|
|
f"The following extra files found in the directory:\n {', '.join(extra_files)}"
|
|
)
|
|
|
|
|
|
def main(default_config_path, rootfs_directory):
|
|
|
|
script_path = os.path.abspath(__file__)
|
|
current_directory = os.path.dirname(script_path)
|
|
|
|
|
|
dir_list = ['bin', 'sbin']
|
|
# dir_list = ['bin', 'sbin', 'usr/bin', 'usr/sbin']
|
|
|
|
# usr_bin_check = [,[[,cal,traceroute,find,traceroute6,users,dumpleases,top,awk,cut,basename,tr,unzip,dirname,env,killall,head,tty,groups,sort,hostid,expr,free,tftp,[,wc,id,md5sum,test,
|
|
# usr_sbin_check = arping,brctl,dhcprelay,udhcpd
|
|
for dir in dir_list:
|
|
dir_path = os.path.join(rootfs_directory, dir)
|
|
bin_to_delete = configs.get_item_list(default_config_path,dir,'delete_file_list') # ["terminal_mgmt", "tc_tbf.sh"]
|
|
bin_to_check = configs.get_item_list(default_config_path,dir,'base_file_list')
|
|
check_files(dir_path, bin_to_check)
|
|
delete_files(dir_path, bin_to_delete)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main() |