Problem
The installPowerPoint() function only captures the exit code when installation fails, making it difficult to debug issues.
Current code (src/index.js:82-84):
const exitCode = await exec.exec('sudo', ['installer', '-pkg', installerPath, '-target', '/Applications']);
if (exitCode !== 0) {
throw new Error(`Microsoft PowerPoint installation failed with code ${exitCode}.`);
}
When installation fails, users only see:
Error: Microsoft PowerPoint installation failed with code 1.
This provides no information about why the installation failed.
Solution
Capture stdout and stderr to provide better error context:
const { exitCode, stdout, stderr } = await exec.getExecOutput(
'sudo',
['installer', '-pkg', installerPath, '-target', '/'],
{ ignoreReturnCode: true }
);
if (exitCode !== 0) {
const errorOutput = stderr || stdout || '(no output)';
throw new Error(
`Microsoft PowerPoint installation failed with code ${exitCode}.\n${errorOutput.trim()}`
);
}
Benefits
- Users get actionable error messages
- Easier to diagnose installation failures
- Consistent with error handling used in
enableUiAutomation() (src/index.js:110-118)
Priority
Should be fixed before v1.0.0 to improve user experience when troubleshooting issues.
Additional Considerations
Consider adding similar improvements to other exec calls:
readPlistValue() at src/index.js:226
- Any other exec calls that don't capture output
Problem
The
installPowerPoint()function only captures the exit code when installation fails, making it difficult to debug issues.Current code (src/index.js:82-84):
When installation fails, users only see:
This provides no information about why the installation failed.
Solution
Capture stdout and stderr to provide better error context:
Benefits
enableUiAutomation()(src/index.js:110-118)Priority
Should be fixed before v1.0.0 to improve user experience when troubleshooting issues.
Additional Considerations
Consider adding similar improvements to other exec calls:
readPlistValue()at src/index.js:226