1+ param (
2+ [Parameter (Mandatory = $true )]
3+ [string ]$SourceRoot ,
4+
5+ [Parameter (Mandatory = $true )]
6+ [string ]$StagingDir ,
7+
8+ [switch ]$ExcludeDev
9+ )
10+
11+ function Copy-StagedFiles {
12+ param (
13+ [Parameter (Mandatory = $true )]
14+ [string ]$Destination ,
15+
16+ [Parameter (Mandatory = $true )]
17+ [string []]$Files
18+ )
19+
20+ $targetDir = if ([string ]::IsNullOrEmpty($Destination )) {
21+ $StagingDir
22+ } else {
23+ Join-Path $StagingDir $Destination
24+ }
25+
26+ New-Item - ItemType Directory - Path $targetDir - Force | Out-Null
27+
28+ foreach ($file in $Files ) {
29+ $sourcePath = Join-Path $SourceRoot $file
30+ if (-not (Test-Path - LiteralPath $sourcePath )) {
31+ throw " Missing staged file: $file "
32+ }
33+
34+ Copy-Item - LiteralPath $sourcePath - Destination $targetDir - Force
35+ }
36+ }
37+
38+ Set-StrictMode - Version Latest
39+ $ErrorActionPreference = ' Stop'
40+
41+ if (Test-Path - LiteralPath $StagingDir ) {
42+ Remove-Item - LiteralPath $StagingDir - Recurse - Force
43+ }
44+
45+ New-Item - ItemType Directory - Path $StagingDir - Force | Out-Null
46+
47+ Copy-StagedFiles ' .' @ (
48+ ' logo/mosquitto.ico' ,
49+ ' build64/src/Release/mosquitto.exe' ,
50+ ' build64/apps/db_dump/Release/mosquitto_db_dump.exe' ,
51+ ' build64/apps/mosquitto_ctrl/Release/mosquitto_ctrl.exe' ,
52+ ' build64/apps/mosquitto_passwd/Release/mosquitto_passwd.exe' ,
53+ ' build64/apps/mosquitto_signal/Release/mosquitto_signal.exe' ,
54+ ' build64/client/Release/mosquitto_pub.exe' ,
55+ ' build64/client/Release/mosquitto_sub.exe' ,
56+ ' build64/client/Release/mosquitto_rr.exe' ,
57+ ' build64/libcommon/Release/mosquitto_common.dll' ,
58+ ' build64/lib/Release/mosquitto.dll' ,
59+ ' build64/lib/cpp/Release/mosquittopp.dll' ,
60+ ' build64/plugins/acl-file/Release/mosquitto_acl_file.dll' ,
61+ ' build64/plugins/dynamic-security/Release/mosquitto_dynamic_security.dll' ,
62+ ' build64/plugins/password-file/Release/mosquitto_password_file.dll' ,
63+ ' build64/plugins/persist-sqlite/Release/mosquitto_persist_sqlite.dll' ,
64+ ' build64/plugins/sparkplug-aware/Release/mosquitto_sparkplug_aware.dll' ,
65+ # 'aclfile.example',
66+ ' ChangeLog.txt' ,
67+ ' NOTICE.md' ,
68+ # 'pskfile.example',
69+ # 'pwfile.example',
70+ # 'README.md',
71+ # 'README-windows.txt',
72+ # 'README-letsencrypt.md',
73+ # 'SECURITY.md',
74+ ' edl-v10' ,
75+ ' epl-v20' ,
76+ ' mosquitto.conf' ,
77+ ' build64/vcpkg_installed/x64-windows-release/bin/cjson.dll' ,
78+ ' build64/vcpkg_installed/x64-windows-release/bin/libcrypto-3-x64.dll' ,
79+ ' build64/vcpkg_installed/x64-windows-release/bin/libmicrohttpd-dll.dll' ,
80+ ' build64/vcpkg_installed/x64-windows-release/bin/libssl-3-x64.dll' ,
81+ ' build64/vcpkg_installed/x64-windows-release/bin/pthreadVC3.dll' ,
82+ ' build64/vcpkg_installed/x64-windows-release/bin/sqlite3.dll'
83+ )
84+
85+ if (-not $ExcludeDev ) {
86+ Copy-StagedFiles ' devel' @ (
87+ ' build64/lib/Release/mosquitto.lib' ,
88+ ' build64/lib/cpp/Release/mosquittopp.lib' ,
89+ ' build64/src/Release/mosquitto_broker.lib' ,
90+ ' include/mosquitto.h' ,
91+ ' include/mosquitto_broker.h' ,
92+ ' include/mosquitto_plugin.h' ,
93+ ' include/mosquittopp.h' ,
94+ ' include/mqtt_protocol.h'
95+ )
96+
97+ Copy-StagedFiles ' devel/mosquitto' @ (
98+ ' include/mosquitto/broker.h' ,
99+ ' include/mosquitto/broker_control.h' ,
100+ ' include/mosquitto/broker_plugin.h' ,
101+ ' include/mosquitto/defs.h' ,
102+ ' include/mosquitto/libcommon.h' ,
103+ ' include/mosquitto/libcommon_base64.h' ,
104+ ' include/mosquitto/libcommon_cjson.h' ,
105+ ' include/mosquitto/libcommon_file.h' ,
106+ ' include/mosquitto/libcommon_memory.h' ,
107+ ' include/mosquitto/libcommon_password.h' ,
108+ ' include/mosquitto/libcommon_properties.h' ,
109+ ' include/mosquitto/libcommon_random.h' ,
110+ ' include/mosquitto/libcommon_string.h' ,
111+ ' include/mosquitto/libcommon_time.h' ,
112+ ' include/mosquitto/libcommon_topic.h' ,
113+ ' include/mosquitto/libcommon_utf8.h' ,
114+ ' include/mosquitto/libmosquitto.h' ,
115+ ' include/mosquitto/libmosquitto_auth.h' ,
116+ ' include/mosquitto/libmosquitto_callbacks.h' ,
117+ ' include/mosquitto/libmosquitto_connect.h' ,
118+ ' include/mosquitto/libmosquitto_create_delete.h' ,
119+ ' include/mosquitto/libmosquitto_helpers.h' ,
120+ ' include/mosquitto/libmosquitto_loop.h' ,
121+ ' include/mosquitto/libmosquitto_message.h' ,
122+ ' include/mosquitto/libmosquitto_options.h' ,
123+ ' include/mosquitto/libmosquitto_publish.h' ,
124+ ' include/mosquitto/libmosquitto_socks.h' ,
125+ ' include/mosquitto/libmosquitto_subscribe.h' ,
126+ ' include/mosquitto/libmosquitto_tls.h' ,
127+ ' include/mosquitto/libmosquitto_unsubscribe.h' ,
128+ ' include/mosquitto/libmosquitto_will.h' ,
129+ ' include/mosquitto/libmosquittopp.h' ,
130+ ' include/mosquitto/mqtt_protocol.h'
131+ )
132+ }
133+
134+ Copy-StagedFiles ' dashboard' @ (
135+ ' dashboard/src/index.html' ,
136+ ' dashboard/src/listeners.html'
137+ )
138+
139+ Copy-StagedFiles ' dashboard/app' @ (
140+ ' dashboard/src/app/consts.js' ,
141+ ' dashboard/src/app/dashboard.js' ,
142+ ' dashboard/src/app/index.js' ,
143+ ' dashboard/src/app/listeners.js' ,
144+ ' dashboard/src/app/sidebar.js'
145+ )
146+
147+ Copy-StagedFiles ' dashboard/css' @ (
148+ ' dashboard/src/css/styles.css'
149+ )
150+
151+ Copy-StagedFiles ' dashboard/lib' @ (
152+ ' dashboard/src/lib/chart.umd.js' ,
153+ ' dashboard/src/lib/chartjs-plugin-zoom.min.js' ,
154+ ' dashboard/src/lib/hammer.min.js'
155+ )
156+
157+ Copy-StagedFiles ' dashboard/media' @ (
158+ ' dashboard/src/media/banner.svg' ,
159+ ' dashboard/src/media/favicon-16x16.png' ,
160+ ' dashboard/src/media/favicon-32x32.png' ,
161+ ' dashboard/src/media/mosquitto-logo.png'
162+ )
163+
164+ Copy-StagedFiles ' dashboard/tailwind' @ (
165+ ' dashboard/src/tailwind.config.js' ,
166+ ' dashboard/src/tailwind/styles.css'
167+ )
168+
169+ Copy-StagedFiles ' dashboard/utils' @ (
170+ ' dashboard/src/utils/assert.js' ,
171+ ' dashboard/src/utils/queue.js' ,
172+ ' dashboard/src/utils/utils.js'
173+ )
0 commit comments