@@ -2,7 +2,7 @@ import { LinuxTargetHelper } from "./LinuxTargetHelper"
2
2
import { LinuxPackager } from "../linuxPackager"
3
3
import { log } from "electron-builder-util/out/log"
4
4
import { SnapOptions } from "../options/linuxOptions"
5
- import { emptyDir , writeFile , copy } from "fs-extra-p"
5
+ import { emptyDir , outputFile , copy } from "fs-extra-p"
6
6
import * as path from "path"
7
7
import { safeDump } from "js-yaml"
8
8
import { spawn } from "electron-builder-util"
@@ -23,10 +23,11 @@ export default class SnapTarget extends Target {
23
23
const appInfo = packager . appInfo
24
24
const options = this . options
25
25
26
- const snapDir = `${ appOutDir } -snap`
27
- await emptyDir ( snapDir )
26
+ const stageDir = `${ appOutDir } -snap`
27
+ const snapDir = path . join ( stageDir , "snap" )
28
+ await emptyDir ( stageDir )
28
29
29
- const extraSnapSourceDir = path . join ( snapDir , ". extra" )
30
+ const extraSnapSourceDir = path . join ( stageDir , "extra" )
30
31
const isUseUbuntuPlatform = options . ubuntuAppPlatformContent != null
31
32
if ( isUseUbuntuPlatform ) {
32
33
// ubuntu-app-platform requires empty directory
@@ -43,11 +44,11 @@ export default class SnapTarget extends Target {
43
44
44
45
await this . helper . icons
45
46
if ( this . helper . maxIconPath != null ) {
46
- snap . icon = "setup /gui/icon.png"
47
- await copy ( this . helper . maxIconPath , path . join ( snapDir , "setup" , " gui", "icon.png" ) )
47
+ snap . icon = "snap /gui/icon.png"
48
+ await copy ( this . helper . maxIconPath , path . join ( snapDir , "gui" , "icon.png" ) )
48
49
}
49
50
50
- await this . helper . computeDesktopEntry ( this . options , `${ snap . name } ` , path . join ( snapDir , "setup" , " gui", `${ snap . name } .desktop` ) , {
51
+ await this . helper . computeDesktopEntry ( this . options , `${ snap . name } ` , path . join ( snapDir , "gui" , `${ snap . name } .desktop` ) , {
51
52
"Icon" : "${SNAP}/meta/gui/icon.png"
52
53
} )
53
54
@@ -93,7 +94,7 @@ export default class SnapTarget extends Target {
93
94
if ( isUseUbuntuPlatform ) {
94
95
snap . parts . extra = {
95
96
plugin : "dump" ,
96
- source : isUseDocker ? `/out/${ path . basename ( snapDir ) } /${ path . basename ( extraSnapSourceDir ) } ` : extraSnapSourceDir
97
+ source : isUseDocker ? `/out/${ path . basename ( stageDir ) } /${ path . basename ( extraSnapSourceDir ) } ` : extraSnapSourceDir
97
98
}
98
99
}
99
100
@@ -102,7 +103,7 @@ export default class SnapTarget extends Target {
102
103
}
103
104
104
105
const snapcraft = path . join ( snapDir , "snapcraft.yaml" )
105
- await writeFile ( snapcraft , safeDump ( snap , { lineWidth : 160 } ) )
106
+ await outputFile ( snapcraft , safeDump ( snap , { lineWidth : 160 } ) )
106
107
107
108
const snapName = `${ snap . name } _${ snap . version } _${ toLinuxArchString ( arch ) } .snap`
108
109
const resultFile = path . join ( this . outDir , snapName )
@@ -114,14 +115,14 @@ export default class SnapTarget extends Target {
114
115
// dist dir can be outside of project dir
115
116
"-v" , `${ this . outDir } :/out` ,
116
117
"electronuserland/electron-builder:latest" ,
117
- "/bin/bash" , "-c" , `snapcraft --version && cp -R /out/${ path . basename ( snapDir ) } /s/ && cd /s && snapcraft snap --target-arch ${ toLinuxArchString ( arch ) } -o /out/${ snapName } ` ] , {
118
+ "/bin/bash" , "-c" , `snapcraft --version && cp -R /out/${ path . basename ( stageDir ) } /s/ && cd /s && snapcraft snap --target-arch ${ toLinuxArchString ( arch ) } -o /out/${ snapName } ` ] , {
118
119
cwd : packager . info . projectDir ,
119
120
stdio : [ "ignore" , "inherit" , "inherit" ] ,
120
121
} )
121
122
}
122
123
else {
123
124
await spawn ( "snapcraft" , [ "snap" , "--target-arch" , toLinuxArchString ( arch ) , "-o" , resultFile ] , {
124
- cwd : snapDir ,
125
+ cwd : stageDir ,
125
126
stdio : [ "ignore" , "inherit" , "pipe" ] ,
126
127
} )
127
128
}
0 commit comments