@fredlackey/devutils 0.0.10 → 0.0.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/installs/balena-etcher.js +4 -0
- package/src/installs/bambu-studio.js +321 -108
- package/src/installs/chrome-canary.js +27 -98
- package/src/installs/chromium.js +5 -1
- package/src/installs/dependencies.md +14 -5
- package/src/installs/installers.json +1383 -211
- package/src/installs/ohmyzsh.js +529 -0
- package/src/installs/ohmyzsh.md +1094 -0
- package/src/installs/studio-3t.js +7 -5
- package/src/installs/sublime-text.js +7 -2
- package/src/installs/zsh.js +455 -0
- package/src/installs/zsh.md +1008 -0
- package/src/utils/ubuntu/snap.js +45 -3
|
@@ -134,109 +134,37 @@ async function install_macos() {
|
|
|
134
134
|
}
|
|
135
135
|
|
|
136
136
|
/**
|
|
137
|
-
*
|
|
137
|
+
* Handle the unsupported Ubuntu/Debian platform.
|
|
138
138
|
*
|
|
139
|
-
*
|
|
140
|
-
*
|
|
141
|
-
*
|
|
142
|
-
* 3. Adds Google's GPG signing key
|
|
143
|
-
* 4. Adds the Google Chrome APT repository
|
|
144
|
-
* 5. Updates package lists and installs Chrome Canary
|
|
139
|
+
* Google Chrome Canary is NOT officially available for Linux distributions.
|
|
140
|
+
* Google only provides Stable, Beta, and Unstable (Dev) channels via their
|
|
141
|
+
* APT repository. The google-chrome-canary package does not exist for Linux.
|
|
145
142
|
*
|
|
146
143
|
* @returns {Promise<void>}
|
|
147
144
|
*/
|
|
148
145
|
async function install_ubuntu() {
|
|
149
|
-
//
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
return;
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
// Verify that APT is available
|
|
158
|
-
if (!apt.isInstalled()) {
|
|
159
|
-
console.log('APT package manager is not available on this system.');
|
|
160
|
-
return;
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
console.log('Installing Google Chrome Canary via APT...');
|
|
164
|
-
|
|
165
|
-
// Step 1: Install required dependencies for adding the repository
|
|
166
|
-
console.log('Installing required dependencies (wget, gnupg)...');
|
|
167
|
-
const depsResult = await shell.exec('sudo DEBIAN_FRONTEND=noninteractive apt-get update -y && sudo DEBIAN_FRONTEND=noninteractive apt-get install -y wget gnupg');
|
|
168
|
-
|
|
169
|
-
if (depsResult.code !== 0) {
|
|
170
|
-
console.log(`Failed to install dependencies: ${depsResult.stderr || depsResult.stdout}`);
|
|
171
|
-
return;
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
// Step 2: Create the keyrings directory if it does not exist
|
|
175
|
-
// This directory is the modern location for APT repository keys (Ubuntu 22.04+)
|
|
176
|
-
const keyringDirResult = await shell.exec('sudo mkdir -p /etc/apt/keyrings');
|
|
177
|
-
|
|
178
|
-
if (keyringDirResult.code !== 0) {
|
|
179
|
-
console.log(`Failed to create keyrings directory: ${keyringDirResult.stderr}`);
|
|
180
|
-
return;
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
// Step 3: Download and install Google's GPG signing key
|
|
184
|
-
// Using the dearmor method which is the modern, recommended approach
|
|
185
|
-
console.log('Adding Google signing key...');
|
|
186
|
-
const keyResult = await shell.exec(`wget -qO - ${GOOGLE_GPG_KEY_URL} | sudo gpg --dearmor -o ${GOOGLE_KEYRING_PATH}`);
|
|
187
|
-
|
|
188
|
-
// Note: gpg --dearmor may return non-zero if the key already exists, so we check if the file exists
|
|
189
|
-
if (!fs.existsSync(GOOGLE_KEYRING_PATH)) {
|
|
190
|
-
// Try an alternative approach if the first method failed
|
|
191
|
-
const altKeyResult = await shell.exec(`wget -qO - ${GOOGLE_GPG_KEY_URL} | sudo gpg --yes --dearmor -o ${GOOGLE_KEYRING_PATH}`);
|
|
192
|
-
if (altKeyResult.code !== 0 && !fs.existsSync(GOOGLE_KEYRING_PATH)) {
|
|
193
|
-
console.log(`Failed to add Google signing key: ${altKeyResult.stderr || keyResult.stderr}`);
|
|
194
|
-
return;
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
// Step 4: Add the Google Chrome APT repository
|
|
199
|
-
console.log('Adding Google Chrome repository...');
|
|
200
|
-
const repoResult = await shell.exec(`echo "${GOOGLE_APT_REPO}" | sudo tee ${GOOGLE_APT_SOURCES_PATH} > /dev/null`);
|
|
201
|
-
|
|
202
|
-
if (repoResult.code !== 0) {
|
|
203
|
-
console.log(`Failed to add repository: ${repoResult.stderr || repoResult.stdout}`);
|
|
204
|
-
return;
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
// Step 5: Update package lists and install Chrome Canary
|
|
208
|
-
console.log('Installing Google Chrome Canary package...');
|
|
209
|
-
const installResult = await shell.exec(`sudo DEBIAN_FRONTEND=noninteractive apt-get update -y && sudo DEBIAN_FRONTEND=noninteractive apt-get install -y ${UBUNTU_PACKAGE_NAME}`);
|
|
210
|
-
|
|
211
|
-
if (installResult.code !== 0) {
|
|
212
|
-
console.log(`Installation failed: ${installResult.stderr || installResult.stdout}`);
|
|
213
|
-
return;
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
// Verify the installation succeeded
|
|
217
|
-
const verified = shell.commandExists(LINUX_COMMAND_NAME);
|
|
218
|
-
|
|
219
|
-
if (!verified) {
|
|
220
|
-
console.log('Installation may have failed: google-chrome-canary command not found');
|
|
221
|
-
return;
|
|
222
|
-
}
|
|
223
|
-
|
|
224
|
-
console.log('Google Chrome Canary installed successfully.');
|
|
146
|
+
// Chrome Canary is not available for Ubuntu/Debian/Linux
|
|
147
|
+
// Return gracefully without throwing an error
|
|
148
|
+
console.log('Google Chrome Canary is not available for Ubuntu/Debian.');
|
|
149
|
+
console.log('Consider using google-chrome-unstable (Dev channel) as an alternative.');
|
|
150
|
+
return;
|
|
225
151
|
}
|
|
226
152
|
|
|
227
153
|
/**
|
|
228
|
-
*
|
|
154
|
+
* Handle the unsupported WSL (Ubuntu) platform.
|
|
229
155
|
*
|
|
230
|
-
*
|
|
231
|
-
*
|
|
232
|
-
*
|
|
156
|
+
* Google Chrome Canary is NOT officially available for Linux distributions,
|
|
157
|
+
* including Ubuntu running in WSL. Google only provides Stable, Beta, and
|
|
158
|
+
* Unstable (Dev) channels for Linux.
|
|
233
159
|
*
|
|
234
160
|
* @returns {Promise<void>}
|
|
235
161
|
*/
|
|
236
162
|
async function install_ubuntu_wsl() {
|
|
237
|
-
//
|
|
238
|
-
//
|
|
239
|
-
|
|
163
|
+
// Chrome Canary is not available for WSL/Ubuntu
|
|
164
|
+
// Return gracefully without throwing an error
|
|
165
|
+
console.log('Google Chrome Canary is not available for WSL/Ubuntu.');
|
|
166
|
+
console.log('Consider using google-chrome-unstable (Dev channel) as an alternative.');
|
|
167
|
+
return;
|
|
240
168
|
}
|
|
241
169
|
|
|
242
170
|
/**
|
|
@@ -362,7 +290,7 @@ async function install_gitbash() {
|
|
|
362
290
|
* is already installed:
|
|
363
291
|
* - macOS: Checks for Google Chrome Canary.app in /Applications
|
|
364
292
|
* - Windows: Checks for Chocolatey package or executable in AppData
|
|
365
|
-
* - Ubuntu/Debian/WSL:
|
|
293
|
+
* - Linux (Ubuntu/Debian/WSL): Always returns false (not available on Linux)
|
|
366
294
|
*
|
|
367
295
|
* @returns {Promise<boolean>} True if Chrome Canary is installed
|
|
368
296
|
*/
|
|
@@ -392,9 +320,9 @@ async function isInstalled() {
|
|
|
392
320
|
return false;
|
|
393
321
|
}
|
|
394
322
|
|
|
395
|
-
// Ubuntu/Debian/WSL:
|
|
323
|
+
// Ubuntu/Debian/WSL: Chrome Canary is not available for Linux
|
|
396
324
|
if (['ubuntu', 'debian', 'wsl'].includes(platform.type)) {
|
|
397
|
-
return
|
|
325
|
+
return false;
|
|
398
326
|
}
|
|
399
327
|
|
|
400
328
|
// Unsupported platforms
|
|
@@ -406,19 +334,20 @@ async function isInstalled() {
|
|
|
406
334
|
*
|
|
407
335
|
* Google Chrome Canary can be installed on:
|
|
408
336
|
* - macOS (via Homebrew cask)
|
|
409
|
-
* - Ubuntu/Debian (via Google's APT repository)
|
|
410
|
-
* - WSL (via Google's APT repository)
|
|
411
337
|
* - Windows (via Chocolatey)
|
|
412
338
|
* - Git Bash (via Windows Chocolatey)
|
|
413
339
|
*
|
|
414
|
-
* Note:
|
|
415
|
-
*
|
|
340
|
+
* Note: Chrome Canary is NOT officially available for Linux (Ubuntu/Debian/WSL).
|
|
341
|
+
* Google only provides Stable, Beta, and Unstable (Dev) channels for Linux.
|
|
342
|
+
* Raspberry Pi (ARM architecture) and Amazon Linux/RHEL are also NOT supported.
|
|
416
343
|
*
|
|
417
344
|
* @returns {boolean} True if installation is supported on this platform
|
|
418
345
|
*/
|
|
419
346
|
function isEligible() {
|
|
420
347
|
const platform = os.detect();
|
|
421
|
-
|
|
348
|
+
// Chrome Canary is only available on macOS and Windows
|
|
349
|
+
// It is NOT available for any Linux distributions including Ubuntu/Debian/WSL
|
|
350
|
+
const supportedPlatforms = ['macos', 'windows', 'gitbash'];
|
|
422
351
|
if (!supportedPlatforms.includes(platform.type)) {
|
|
423
352
|
return false;
|
|
424
353
|
}
|
package/src/installs/chromium.js
CHANGED
|
@@ -122,7 +122,11 @@ async function install_ubuntu() {
|
|
|
122
122
|
const aptResult = await shell.exec('sudo DEBIAN_FRONTEND=noninteractive apt-get update -y && sudo DEBIAN_FRONTEND=noninteractive apt-get install -y snapd');
|
|
123
123
|
|
|
124
124
|
if (aptResult.code !== 0 || !snap.isInstalled()) {
|
|
125
|
-
console.log('Failed to install snapd.
|
|
125
|
+
console.log('Failed to install snapd.');
|
|
126
|
+
console.log('Note: If running in a Docker container, snapd requires systemd which is');
|
|
127
|
+
console.log('not available in standard Docker containers. Chromium installation via');
|
|
128
|
+
console.log('Snap requires a system with systemd init. For Docker testing, use a');
|
|
129
|
+
console.log('container with systemd support or test on a real Ubuntu system.');
|
|
126
130
|
return;
|
|
127
131
|
}
|
|
128
132
|
}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# Dependency Analysis Summary
|
|
2
2
|
|
|
3
|
-
**Last Updated:** 2026-01-
|
|
4
|
-
**Total Test-Pending Technologies:**
|
|
5
|
-
**Already Documented (Skipped):**
|
|
6
|
-
**Analyzed This Run:**
|
|
7
|
-
**Successful:**
|
|
3
|
+
**Last Updated:** 2026-01-16
|
|
4
|
+
**Total Test-Pending Technologies:** 43
|
|
5
|
+
**Already Documented (Skipped):** 43
|
|
6
|
+
**Analyzed This Run:** 0
|
|
7
|
+
**Successful:** 43
|
|
8
8
|
**Failed:** 0
|
|
9
9
|
|
|
10
10
|
## Results
|
|
@@ -96,6 +96,8 @@
|
|
|
96
96
|
| yq | src/installs/yq.js | src/installs/yq.md | Complete - has dependencies |
|
|
97
97
|
| yt-dlp | src/installs/yt-dlp.js | src/installs/yt-dlp.md | Complete - has dependencies |
|
|
98
98
|
| yum-utils | src/installs/yum-utils.js | src/installs/yum-utils.md | Skipped - already documented |
|
|
99
|
+
| Zsh | src/installs/zsh.js | src/installs/zsh.md | Skipped - already documented |
|
|
100
|
+
| Oh My Zsh | src/installs/ohmyzsh.js | src/installs/ohmyzsh.md | Skipped - already documented |
|
|
99
101
|
| Zoom | src/installs/zoom.js | src/installs/zoom.md | Complete - has dependencies |
|
|
100
102
|
|
|
101
103
|
## Status Key
|
|
@@ -310,6 +312,13 @@ Group package for RHEL/Amazon Linux providing compilation tools.
|
|
|
310
312
|
**Used by:**
|
|
311
313
|
- homebrew
|
|
312
314
|
|
|
315
|
+
### Zsh
|
|
316
|
+
|
|
317
|
+
Z Shell, a powerful Unix shell that extends Bash capabilities.
|
|
318
|
+
|
|
319
|
+
**Used by:**
|
|
320
|
+
- ohmyzsh
|
|
321
|
+
|
|
313
322
|
---
|
|
314
323
|
|
|
315
324
|
## Dependency Handling Behavior
|