@@ -260,4 +260,43 @@ const ensurePatched = register("vscode:patch", async (runner) => {
260
260
}
261
261
} ) ;
262
262
263
+ register ( "package" , async ( runner , releaseTag , binLocation ) => {
264
+ if ( ! releaseTag ) {
265
+ throw new Error ( "Please specify the release tag." ) ;
266
+ }
267
+ if ( ! binLocation ) {
268
+ throw new Error ( "Please specify location of the binaries." ) ;
269
+ }
270
+
271
+ const releasePath = path . resolve ( __dirname , `../release/${ releaseTag } ` ) ;
272
+ fse . removeSync ( releasePath ) ;
273
+ fse . mkdirpSync ( releasePath ) ;
274
+
275
+ await Promise . all ( [ {
276
+ bin : "cli-linux" ,
277
+ name : "linux" ,
278
+ } , {
279
+ bin : "cli-osx" ,
280
+ name : "apple-darwin" ,
281
+ } ] . map ( async ( pkg ) => {
282
+ const archiveName = `code-server-${ releaseTag } -x86_64-${ pkg . name } ` ;
283
+ const archiveDir = path . join ( releasePath , archiveName ) ;
284
+ fse . mkdirpSync ( archiveDir ) ;
285
+
286
+ const binaryPath = path . join ( binLocation , pkg . bin ) ;
287
+ const binaryDestination = path . join ( archiveDir , "code-server" ) ;
288
+ fse . copySync ( binaryPath , binaryDestination ) ;
289
+ fs . chmodSync ( binaryDestination , "755" ) ;
290
+ [ "README.md" , "LICENSE" ] . forEach ( ( fileName ) => {
291
+ fse . copySync ( path . resolve ( __dirname , `../${ fileName } ` ) , path . join ( archiveDir , fileName ) ) ;
292
+ } ) ;
293
+
294
+ runner . cwd = releasePath ;
295
+ await Promise . all ( [
296
+ runner . execute ( "tar" , [ "-cvzf" , `${ archiveName } .tar.gz` , `${ archiveName } ` ] ) ,
297
+ runner . execute ( "zip" , [ "-r" , `${ archiveName } .zip` , `${ archiveName } ` ] ) ,
298
+ ] ) ;
299
+ } ) ) ;
300
+ } ) ;
301
+
263
302
run ( ) ;
0 commit comments