@fredlackey/devutils 0.0.11 → 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.
@@ -134,109 +134,37 @@ async function install_macos() {
134
134
  }
135
135
 
136
136
  /**
137
- * Install Google Chrome Canary on Ubuntu/Debian using APT.
137
+ * Handle the unsupported Ubuntu/Debian platform.
138
138
  *
139
- * This function performs the following steps:
140
- * 1. Checks if Chrome Canary is already installed
141
- * 2. Installs required dependencies (wget, gnupg)
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
- // Check if Chrome Canary is already installed by looking for the command
150
- const isInstalled = shell.commandExists(LINUX_COMMAND_NAME);
151
-
152
- if (isInstalled) {
153
- console.log('Google Chrome Canary is already installed, skipping...');
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
- * Install Google Chrome Canary on Ubuntu running in WSL.
154
+ * Handle the unsupported WSL (Ubuntu) platform.
229
155
  *
230
- * WSL (Windows Subsystem for Linux) with Ubuntu follows the same installation
231
- * process as native Ubuntu, using Google's APT repository. Chrome Canary will
232
- * run as a GUI application if WSLg (Windows 11) or an X server is configured.
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
- // WSL Ubuntu uses the same installation method as native Ubuntu
238
- // The APT repository and package are identical
239
- await install_ubuntu();
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: Checks for google-chrome-canary command
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: Check for the command
323
+ // Ubuntu/Debian/WSL: Chrome Canary is not available for Linux
396
324
  if (['ubuntu', 'debian', 'wsl'].includes(platform.type)) {
397
- return shell.commandExists(LINUX_COMMAND_NAME);
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: Raspberry Pi (ARM architecture) and Amazon Linux/RHEL (no RPM packages)
415
- * are NOT supported.
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
- const supportedPlatforms = ['macos', 'ubuntu', 'debian', 'wsl', 'windows', 'gitbash'];
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
  }
@@ -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. Please install it manually.');
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-04
4
- **Total Test-Pending Technologies:** 86
5
- **Already Documented (Skipped):** 85
6
- **Analyzed This Run:** 1
7
- **Successful:** 86
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