accelerator/buildbot/PackageScript
caxanga334 87704dc53b
Some checks failed
Release / main-ci (push) Has been cancelled
Release / release (push) Has been cancelled
[Feature]: Add on crash uploaded SourceMod forward (#42)
* Squashed commit of the following:

commit c7efce2d6722b08e2ea719ce1a39f80747502f77
Author: caxanga334 <10157643+caxanga334@users.noreply.github.com>
Date:   Sat Nov 22 22:35:24 2025 -0300

    Fix Error

commit e8acf9f505aa26b007c5837d4075f649099f43c3
Author: caxanga334 <10157643+caxanga334@users.noreply.github.com>
Date:   Sat Nov 22 22:23:57 2025 -0300

    Fix Possible Memory Leak

commit 51e718922726c074c0e7a45f9d13c6a51e4b97eb
Author: caxanga334 <10157643+caxanga334@users.noreply.github.com>
Date:   Sat Nov 22 22:13:55 2025 -0300

    Add Upload Forward

* Update accelerator.inc

* Fix: Missing forwards.cpp in AMBuilder

* Refactor API

Forward notifies plugins when the extension is done uploading.
Plugins can fetch data from uploaded crashes via natives.
Added example plugin.

* Implement Requested Changes

* Fix Error

* Update Example Plugin

Removed timer example.
Added example of how to handle plugin late loads.
2025-12-02 16:32:12 -05:00

69 lines
2.0 KiB
Python

# vim: set ts=8 sts=2 sw=2 tw=99 et ft=python:
import os
# This is where the files will be output to
# package is the default
builder.SetBuildFolder('package')
# Add any folders you need to this list
folder_list = [
'addons/sourcemod/extensions',
'addons/sourcemod/gamedata',
'addons/sourcemod/configs',
'addons/sourcemod/scripting',
'addons/sourcemod/scripting/include',
]
# Are we build a x86_64 extension ?
for task in Accelerator.extension:
if task.target.arch == 'x86_64':
folder_list += ['addons/sourcemod/extensions/x64']
break
# 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)
def CopyFile(src, dest):
dest_entry = folder_map[dest]
source_path = os.path.join(builder.sourcePath, src)
builder.AddCopy(source_path, dest_entry)
def CopyDirContent(src, dest):
dest_entry = folder_map[dest]
for item in os.scandir(os.path.join(builder.sourcePath, src)):
if item.is_file():
builder.AddCopy(item.path, dest_entry)
# Include files
CopyFiles('scripting/include', 'addons/sourcemod/scripting/include',
[
'accelerator.inc',
]
)
# Example files
CopyFiles('scripting', 'addons/sourcemod/scripting',
[
'accelerator_example.sp',
]
)
# Copy binaries.
for task in Accelerator.extension:
if task.target.arch == 'x86_64':
builder.AddCopy(task.binary, folder_map['addons/sourcemod/extensions/x64'])
else:
builder.AddCopy(task.binary, folder_map['addons/sourcemod/extensions'])
CopyDirContent('gamedata', 'addons/sourcemod/gamedata')
CopyFile('extension/accelerator.autoload', 'addons/sourcemod/extensions')