import os.path import typing if typing.TYPE_CHECKING: from ambuild2.frontend.v2_2.context import BuildContext builder: BuildContext # This is where the files will be output to # package is the default # noinspection PyUnboundLocalVariable builder.SetBuildFolder('package') # Add any folders you need to this list folder_list = [ 'addons', 'addons/sourcemod/extensions', 'addons/sourcemod/configs', ] # Create the distribution folder hierarchy folder_map = {} for folder in folder_list: norm_folder = os.path.normpath(folder) folder_map[folder] = builder.AddFolder(norm_folder) # Do all straight-up file copies from the source tree def CopyFiles(src, dest, files): if not dest: dest = src dest_entry = folder_map[dest] for source_file in files: source_path = os.path.join(builder.sourcePath, src, source_file) builder.AddCopy(source_path, dest_entry) # Copy extension for cxx_task in build_info.extensions: builder.AddCopy(cxx_task.binary, folder_map['addons/sourcemod/extensions']) CopyFiles('sourcemod/extensions', 'addons/sourcemod/extensions', ['cleaner.autoload']) # Config file CopyFiles('sourcemod/configs', 'addons/sourcemod/configs', ['cleaner.cfg'])