-
Notifications
You must be signed in to change notification settings - Fork 32
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: add codesign verification and assessment prior to notarizing (#152
) * feat: add spctl and codesign verificatin prior to stapling * fix output * fix output * chore: resolve comments * Update src/check-signature.ts * chore: fix lint * chore: address comments --------- Co-authored-by: Erick Zhao <[email protected]> Co-authored-by: David Sanders <[email protected]>
- Loading branch information
1 parent
1c9790f
commit b1b2ca1
Showing
2 changed files
with
47 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
import * as path from 'path'; | ||
|
||
import { spawn } from './spawn'; | ||
import { NotarizeStapleOptions } from './types'; | ||
import debug from 'debug'; | ||
const d = debug('electron-notarize'); | ||
|
||
const codesignDisplay = async (opts: NotarizeStapleOptions) => { | ||
const result = await spawn('codesign', ['-dv', '-vvvv', '--deep', path.basename(opts.appPath)], { | ||
cwd: path.dirname(opts.appPath), | ||
}); | ||
return result; | ||
}; | ||
|
||
const codesign = async (opts: NotarizeStapleOptions) => { | ||
d('attempting to check codesign of app:', opts.appPath); | ||
const result = await spawn( | ||
'codesign', | ||
['-vvv', '--deep', '--strict', path.basename(opts.appPath)], | ||
{ | ||
cwd: path.dirname(opts.appPath), | ||
}, | ||
); | ||
|
||
return result; | ||
}; | ||
export async function checkSignatures(opts: NotarizeStapleOptions): Promise<void> { | ||
const [codesignResult, codesignInfo] = await Promise.all([codesign(opts), codesignDisplay(opts)]); | ||
let error = ''; | ||
|
||
if (codesignInfo.code !== 0) { | ||
d('codesignInfo failed'); | ||
error = `Failed to display codesign info on your application with code: ${codesignInfo.code}\n\n${codesignInfo.output}\n`; | ||
} | ||
if (codesignResult.code !== 0) { | ||
d('codesign check failed'); | ||
error += `Failed to codesign your application with code: ${codesignResult.code}\n\n${codesignResult.output}\n\n${codesignInfo.output}`; | ||
} | ||
|
||
if (error) { | ||
throw new Error(error); | ||
} | ||
d('codesign assess succeeded'); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters