Skip to content

Commit

Permalink
Merge pull request #610 from dmascord/master
Browse files Browse the repository at this point in the history
Add support for updating the application manifest and requested execution level for Windows targets
  • Loading branch information
malept committed May 1, 2017
2 parents a699abe + f37374a commit dcc24bb
Show file tree
Hide file tree
Showing 5 changed files with 45 additions and 1 deletion.
4 changes: 4 additions & 0 deletions docs/api.md
Original file line number Diff line number Diff line change
Expand Up @@ -375,6 +375,10 @@ Object (also known as a "hash") of application metadata to embed into the execut
- `OriginalFilename`
- `ProductName`
- `InternalName`
- `requested-execution-level`
- `application-manifest`

For more information, see the [node-rcedit module](https://github.com/electron/node-rcedit).

## callback

Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
"get-package-info": "^1.0.0",
"minimist": "^1.1.1",
"plist": "^2.0.0",
"rcedit": "^0.8.0",
"rcedit": "^0.9.0",
"resolve": "^1.1.6",
"run-series": "^1.1.1",
"sanitize-filename": "^1.6.0",
Expand Down
32 changes: 32 additions & 0 deletions test/win32.js
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,36 @@ function setCopyrightAndCompanyNameTest (appCopyright, companyName) {
)
}

function setRequestedExecutionLevelTest (requestedExecutionLevel) {
var opts = {
win32metadata: {
'requested-execution-level': requestedExecutionLevel
}
}

return generateVersionStringTest(
'requested-execution-level',
opts,
requestedExecutionLevel,
'requested-execution-level in win32metadata should match rcOpts value'
)
}

function setApplicationManifestTest (applicationManifest) {
var opts = {
win32metadata: {
'application-manifest': applicationManifest
}
}

return generateVersionStringTest(
'application-manifest',
opts,
applicationManifest,
'application-manifest in win32metadata should match rcOpts value'
)
}

function setCompanyNameTest (companyName, optName) {
let opts = {}
opts[optName] = {
Expand Down Expand Up @@ -159,3 +189,5 @@ util.packagerTest('win32 app copyright sets LegalCopyright test', setCopyrightTe
util.packagerTest('win32 set LegalCopyright and CompanyName test', setCopyrightAndCompanyNameTest('Copyright Bar', 'MyCompany LLC'))
util.packagerTest('win32 set CompanyName test (win32metadata)', setCompanyNameTest('MyCompany LLC', 'win32metadata'))
util.packagerTest('win32 set CompanyName test (version-string)', setCompanyNameTest('MyCompany LLC', 'version-string'))
util.packagerTest('win32 set requested-execution-level test (win32metadata)', setRequestedExecutionLevelTest('asInvoker'))
util.packagerTest('win32 set application-manifest test (win32metadata)', setApplicationManifestTest('/path/to/manifest.xml'))
1 change: 1 addition & 0 deletions usage.txt
Original file line number Diff line number Diff line change
Expand Up @@ -94,3 +94,4 @@ win32metadata a list of sub-properties used to set the application metadata
- OriginalFilename
- ProductName
- InternalName
- requestedExecutionLevel (user, asInvoker or requireAdministrator)
7 changes: 7 additions & 0 deletions win32.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,13 @@ function generateRceditOptionsSansIcon (opts) {
rcOpts['version-string'].LegalCopyright = opts.appCopyright
}

const manifestProperties = ['application-manifest', 'requested-execution-level']
for (const manifestProperty of manifestProperties) {
if (win32metadata[manifestProperty]) {
rcOpts[manifestProperty] = win32metadata[manifestProperty]
}
}

return rcOpts
}

Expand Down

0 comments on commit dcc24bb

Please sign in to comment.