Skip to content
This repository has been archived by the owner on Feb 16, 2024. It is now read-only.

Commit

Permalink
Added provisioner finish on windows
Browse files Browse the repository at this point in the history
  • Loading branch information
asticode committed Apr 21, 2018
1 parent 5bf7826 commit d7496f1
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 1 deletion.
5 changes: 4 additions & 1 deletion paths.go
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,10 @@ func (p *Paths) initAppExecutable(os, appName string) {
case "linux":
p.appExecutable = filepath.Join(p.electronDirectory, "electron")
case "windows":
p.appExecutable = filepath.Join(p.electronDirectory, "electron.exe")
if appName == "" {
appName = "electron"
}
p.appExecutable = filepath.Join(p.electronDirectory, appName+".exe")
}
}

Expand Down
32 changes: 32 additions & 0 deletions provisioner.go
Original file line number Diff line number Diff line change
Expand Up @@ -155,6 +155,10 @@ func (p *defaultProvisioner) provisionElectron(ctx context.Context, paths Paths,
if err = p.provisionElectronFinishDarwin(appName, paths); err != nil {
return errors.Wrap(err, "finishing provisioning electron for darwin systems failed")
}
case "windows":
if err = p.provisionElectronFinishWindows(appName, paths); err != nil {
return errors.Wrap(err, "finishing provisioning electron for windows systems failed")
}
default:
astilog.Debug("System doesn't require finshing provisioning electron, moving on...")
}
Expand Down Expand Up @@ -308,6 +312,34 @@ func (p *defaultProvisioner) provisionElectronFinishDarwinRename(appName string,
return
}

// provisionElectronFinishWindows finishes provisioning electron for Windows systems
func (p *defaultProvisioner) provisionElectronFinishWindows(appName string, paths Paths) (err error) {
// Log
astilog.Debug("Finishing provisioning electron for windows system")

// Custom app name
if appName != "" {
// Rename
if err = p.provisionElectronFinishWindowsRename(appName, paths); err != nil {
return errors.Wrap(err, "renaming for windows system finish failed")
}
}
return
}

// provisionElectronFinishWindowsRename renames the proper windows files
func (p *defaultProvisioner) provisionElectronFinishWindowsRename(appName string, paths Paths) (err error) {
for _, r := range []rename{
{src: filepath.Join(paths.electronDirectory, "electron.exe"), dst: filepath.Join(paths.electronDirectory, appName+".exe")},
} {
astilog.Debugf("Renaming %s into %s", r.src, r.dst)
if err = os.Rename(r.src, r.dst); err != nil {
return errors.Wrapf(err, "renaming %s into %s failed", r.src, r.dst)
}
}
return
}

// Disembedder is a functions that allows to disembed data from a path
type Disembedder func(src string) ([]byte, error)

Expand Down

0 comments on commit d7496f1

Please sign in to comment.