forked from alliedmodders/cssdm
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathPackageScript
More file actions
108 lines (93 loc) · 2.91 KB
/
Copy pathPackageScript
File metadata and controls
108 lines (93 loc) · 2.91 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
# vim: set ts=2 sw=2 tw=99 noet ft=python:
import os
builder.SetBuildFolder('package')
folder_list = [
'cfg/cssdm',
'cfg/cssdm/extra',
'cfg/cssdm/maps',
'cfg/cssdm/spawns',
'cfg/cssdm/spawns/cstrike',
'cfg/cssdm/spawns/csgo',
'addons/sourcemod/extensions',
'addons/sourcemod/extensions/x64',
'addons/sourcemod/plugins',
'addons/sourcemod/plugins/cssdm',
'addons/sourcemod/scripting',
'addons/sourcemod/scripting/include',
'addons/sourcemod/gamedata',
'addons/sourcemod/translations'
]
if 'x86_64' in Extension.target_archs:
folder_list.extend([
'addons/sourcemod/extensions/x64',
])
# 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 CopyDirectory(src, dest):
if not dest:
dest = src
dest_entry = folder_map[dest]
source_path = os.path.join(builder.sourcePath, src)
for entry in os.listdir(source_path):
entry_path = os.path.join(source_path, entry)
if not os.path.isfile(entry_path):
continue
builder.AddCopy(entry_path, dest_entry)
# Include files
CopyFiles('scripting/include', 'addons/sourcemod/scripting/include', [
'cssdm.inc'
])
# Script sources
CopyFiles('scripting', 'addons/sourcemod/scripting', [
'dm_basics.sp',
'dm_bot_quotas.sp',
'dm_equipment.sp',
'dm_preset_spawns.sp',
'dm_spawn_protection.sp'
])
# GameData files
CopyFiles('gamedata', 'addons/sourcemod/gamedata', [
'cssdm.games.txt'
])
# Config files
CopyFiles('cfg', 'cfg/cssdm', [
'cssdm.cfg',
'cssdm.equip.txt',
'cssdm.weapons.txt'
])
CopyFiles('.', 'cfg/cssdm/extra', [
'changelog.txt',
'credits.txt',
'license.txt'
])
CopyDirectory('translations', 'addons/sourcemod/translations')
CopyDirectory('cfg/spawns/cstrike', 'cfg/cssdm/spawns/cstrike')
CopyDirectory('cfg/spawns/csgo', 'cfg/cssdm/spawns/csgo')
base_translations_dir = os.path.join(builder.sourcePath, 'translations')
for entry in os.listdir(base_translations_dir):
entry_path = os.path.join(base_translations_dir, entry)
if not os.path.isdir(entry_path):
continue
dest_entry = os.path.join('addons', 'sourcemod', 'translations', entry)
folder_map[dest_entry] = builder.AddFolder(dest_entry)
CopyDirectory(os.path.join('translations', entry), dest_entry)
# Copy binaries.
for cxx_task in Extension.extensions:
if cxx_task.target.arch == 'x86_64':
builder.AddCopy(cxx_task.binary, folder_map['addons/sourcemod/extensions/x64'])
else:
builder.AddCopy(cxx_task.binary, folder_map['addons/sourcemod/extensions'])
# Copy plugins
for smx_file, smx_entry in Extension.plugins.items():
builder.AddCopy(smx_entry, folder_map['addons/sourcemod/plugins/cssdm'])