-
Notifications
You must be signed in to change notification settings - Fork 4
RU-T47 Fixing build #208
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
RU-T47 Fixing build #208
Conversation
📝 WalkthroughWalkthroughThis PR switches Windows icon references in the Electron Builder config from PNG to ICO and adds a new Node.js script that generates a 256x256 ICO from an existing PNG using PowerShell and manual ICO binary construction. Changes
Sequence Diagram(s)sequenceDiagram
participant Dev as Developer
participant Node as Node script (generate-ico.js)
participant PS as PowerShell
participant FS as Filesystem
Dev->>Node: run scripts/generate-ico.js
Node->>PS: spawn PowerShell to resize PNG -> temp PNG (256x256)
PS-->>Node: resized PNG file path
Node->>FS: read resized PNG bytes
Node->>Node: build ICO header + directory entry
Node->>FS: write `assets/icon.ico`
Node->>FS: remove temp PNG
Node-->>Dev: exit status / logs
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly related PRs
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 inconclusive)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing touches
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 2
🤖 Fix all issues with AI agents
In `@scripts/generate-ico.js`:
- Around line 31-33: The variable size in generate-ico.js is assigned but never
used (const size = 256); remove this unused declaration to satisfy linting (or
if you intended to use it for resizing/ico creation, apply it where pngBuffer is
processed). Update the code around the console.log('Generating ICO file...') /
pngBuffer = fs.readFileSync(tempPng) block by deleting the unused size constant
(or replace its usage appropriately).
- Around line 1-7: Add the Node.js ESLint environment directive so ESLint
recognizes Node globals used in this file (e.g., __dirname, require, Buffer).
Modify the top of generate-ico.js to include the Node env directive (so linting
won't flag the globals used when creating paths like inputPng/outputIco/tempPng
and when using Buffer later around the Buffer usage in the ~lines 39–63 region).
Ensure the directive targets node environment only and is the first comment in
the file.
🧹 Nitpick comments (2)
scripts/generate-ico.js (2)
66-73: Ensure temp PNG cleanup even on failure.If an error occurs after the temp file is created, it won’t be removed. Move cleanup to
finallyand guard withexistsSync.🧽 Cleanup in finally
- // Clean up - fs.unlinkSync(tempPng); - console.log(`Successfully created ${outputIco}`); - } catch (error) { console.error('Error generating ICO:', error); process.exit(1); +} finally { + if (fs.existsSync(tempPng)) { + fs.unlinkSync(tempPng); + } }
9-25: Add platform guard for clarity on tool dependencies.This script is never invoked in any build or CI process (assets/icon.ico is pre-committed), but it should guard against accidental execution on non-Windows systems with an explicit error message rather than relying on PowerShell absence to fail cryptically.
✅ Suggested guard
+if (process.platform !== 'win32') { + console.error('generate-ico.js requires Windows PowerShell and is intended for local development only.'); + process.exit(1); +} + try { console.log('Resizing icon to 256x256 using PowerShell...');
|
Approve |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This PR is approved.
Summary by CodeRabbit
Bug Fixes
Chores
✏️ Tip: You can customize this high-level summary in your review settings.