@fredlackey/devutils 0.0.1
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/README.md +156 -0
- package/bin/dev.js +16 -0
- package/files/README.md +0 -0
- package/files/claude/.claude/commands/setup-context.md +3 -0
- package/files/monorepos/_archive/README.md +36 -0
- package/files/monorepos/_legacy/README.md +36 -0
- package/files/monorepos/ai-docs/README.md +33 -0
- package/files/monorepos/apps/README.md +24 -0
- package/files/monorepos/docs/README.md +40 -0
- package/files/monorepos/packages/README.md +25 -0
- package/files/monorepos/research/README.md +29 -0
- package/files/monorepos/scripts/README.md +24 -0
- package/package.json +39 -0
- package/src/cli.js +68 -0
- package/src/commands/README.md +41 -0
- package/src/commands/configure.js +199 -0
- package/src/commands/identity.js +1630 -0
- package/src/commands/ignore.js +247 -0
- package/src/commands/install.js +173 -0
- package/src/commands/setup.js +212 -0
- package/src/commands/status.js +223 -0
- package/src/completion.js +284 -0
- package/src/constants.js +45 -0
- package/src/ignore/claude-code.txt +10 -0
- package/src/ignore/docker.txt +18 -0
- package/src/ignore/linux.txt +23 -0
- package/src/ignore/macos.txt +36 -0
- package/src/ignore/node.txt +55 -0
- package/src/ignore/terraform.txt +37 -0
- package/src/ignore/vscode.txt +18 -0
- package/src/ignore/windows.txt +35 -0
- package/src/index.js +0 -0
- package/src/installs/README.md +399 -0
- package/src/installs/adobe-creative-cloud.js +44 -0
- package/src/installs/appcleaner.js +44 -0
- package/src/installs/atomicparsley.js +44 -0
- package/src/installs/aws-cli.js +44 -0
- package/src/installs/balena-etcher.js +44 -0
- package/src/installs/bambu-studio.js +44 -0
- package/src/installs/bash-completion.js +44 -0
- package/src/installs/bash.js +44 -0
- package/src/installs/beyond-compare.js +44 -0
- package/src/installs/build-essential.js +44 -0
- package/src/installs/caffeine.js +44 -0
- package/src/installs/camtasia.js +44 -0
- package/src/installs/chatgpt.js +44 -0
- package/src/installs/chrome-canary.js +44 -0
- package/src/installs/chromium.js +44 -0
- package/src/installs/claude-code.js +44 -0
- package/src/installs/curl.js +44 -0
- package/src/installs/cursor.js +44 -0
- package/src/installs/dbschema.js +44 -0
- package/src/installs/docker.js +44 -0
- package/src/installs/drawio.js +44 -0
- package/src/installs/elmedia-player.js +44 -0
- package/src/installs/ffmpeg.js +44 -0
- package/src/installs/gemini-cli.js +44 -0
- package/src/installs/git.js +44 -0
- package/src/installs/gitego.js +44 -0
- package/src/installs/go.js +44 -0
- package/src/installs/google-chrome.js +44 -0
- package/src/installs/gpg.js +141 -0
- package/src/installs/homebrew.js +44 -0
- package/src/installs/imageoptim.js +44 -0
- package/src/installs/jq.js +44 -0
- package/src/installs/keyboard-maestro.js +44 -0
- package/src/installs/latex.js +44 -0
- package/src/installs/lftp.js +44 -0
- package/src/installs/messenger.js +44 -0
- package/src/installs/microsoft-office.js +44 -0
- package/src/installs/microsoft-teams.js +44 -0
- package/src/installs/node.js +44 -0
- package/src/installs/nordpass.js +44 -0
- package/src/installs/nvm.js +44 -0
- package/src/installs/openssh.js +134 -0
- package/src/installs/pandoc.js +44 -0
- package/src/installs/pinentry.js +44 -0
- package/src/installs/pngyu.js +44 -0
- package/src/installs/postman.js +44 -0
- package/src/installs/safari-tech-preview.js +44 -0
- package/src/installs/sfnt2woff.js +44 -0
- package/src/installs/shellcheck.js +44 -0
- package/src/installs/slack.js +44 -0
- package/src/installs/snagit.js +44 -0
- package/src/installs/spotify.js +44 -0
- package/src/installs/studio-3t.js +44 -0
- package/src/installs/sublime-text.js +44 -0
- package/src/installs/superwhisper.js +44 -0
- package/src/installs/tailscale.js +44 -0
- package/src/installs/termius.js +44 -0
- package/src/installs/terraform.js +44 -0
- package/src/installs/tidal.js +44 -0
- package/src/installs/tmux.js +44 -0
- package/src/installs/tree.js +44 -0
- package/src/installs/vim.js +44 -0
- package/src/installs/vlc.js +44 -0
- package/src/installs/vscode.js +44 -0
- package/src/installs/whatsapp.js +44 -0
- package/src/installs/woff2.js +44 -0
- package/src/installs/xcode.js +44 -0
- package/src/installs/yarn.js +44 -0
- package/src/installs/yq.js +44 -0
- package/src/installs/yt-dlp.js +44 -0
- package/src/installs/zoom.js +44 -0
- package/src/scripts/README.md +95 -0
- package/src/scripts/afk.js +23 -0
- package/src/scripts/backup-all.js +24 -0
- package/src/scripts/backup-source.js +24 -0
- package/src/scripts/brewd.js +23 -0
- package/src/scripts/brewi.js +24 -0
- package/src/scripts/brewr.js +24 -0
- package/src/scripts/brews.js +24 -0
- package/src/scripts/brewu.js +23 -0
- package/src/scripts/c.js +23 -0
- package/src/scripts/ccurl.js +24 -0
- package/src/scripts/certbot-crontab-init.js +24 -0
- package/src/scripts/certbot-init.js +25 -0
- package/src/scripts/ch.js +23 -0
- package/src/scripts/claude-danger.js +23 -0
- package/src/scripts/clean-dev.js +24 -0
- package/src/scripts/clear-dns-cache.js +23 -0
- package/src/scripts/clone.js +25 -0
- package/src/scripts/code-all.js +24 -0
- package/src/scripts/count-files.js +24 -0
- package/src/scripts/count-folders.js +24 -0
- package/src/scripts/count.js +24 -0
- package/src/scripts/d.js +23 -0
- package/src/scripts/datauri.js +24 -0
- package/src/scripts/delete-files.js +24 -0
- package/src/scripts/docker-clean.js +24 -0
- package/src/scripts/dp.js +23 -0
- package/src/scripts/e.js +24 -0
- package/src/scripts/empty-trash.js +23 -0
- package/src/scripts/evm.js +25 -0
- package/src/scripts/fetch-github-repos.js +25 -0
- package/src/scripts/get-channel.js +24 -0
- package/src/scripts/get-course.js +26 -0
- package/src/scripts/get-dependencies.js +25 -0
- package/src/scripts/get-folder.js +26 -0
- package/src/scripts/get-tunes.js +25 -0
- package/src/scripts/get-video.js +24 -0
- package/src/scripts/git-backup.js +25 -0
- package/src/scripts/git-clone.js +25 -0
- package/src/scripts/git-pup.js +23 -0
- package/src/scripts/git-push.js +24 -0
- package/src/scripts/h.js +24 -0
- package/src/scripts/hide-desktop-icons.js +23 -0
- package/src/scripts/hide-hidden-files.js +23 -0
- package/src/scripts/install-dependencies-from.js +25 -0
- package/src/scripts/ips.js +26 -0
- package/src/scripts/iso.js +24 -0
- package/src/scripts/killni.js +23 -0
- package/src/scripts/ll.js +24 -0
- package/src/scripts/local-ip.js +23 -0
- package/src/scripts/m.js +24 -0
- package/src/scripts/map.js +24 -0
- package/src/scripts/mkd.js +24 -0
- package/src/scripts/ncu-update-all.js +24 -0
- package/src/scripts/nginx-init.js +28 -0
- package/src/scripts/npmi.js +23 -0
- package/src/scripts/o.js +24 -0
- package/src/scripts/org-by-date.js +24 -0
- package/src/scripts/p.js +23 -0
- package/src/scripts/packages.js +25 -0
- package/src/scripts/path.js +23 -0
- package/src/scripts/ports.js +23 -0
- package/src/scripts/q.js +23 -0
- package/src/scripts/refresh-files.js +26 -0
- package/src/scripts/remove-smaller-files.js +24 -0
- package/src/scripts/rename-files-with-date.js +25 -0
- package/src/scripts/resize-image.js +25 -0
- package/src/scripts/rm-safe.js +24 -0
- package/src/scripts/s.js +24 -0
- package/src/scripts/set-git-public.js +23 -0
- package/src/scripts/show-desktop-icons.js +23 -0
- package/src/scripts/show-hidden-files.js +23 -0
- package/src/scripts/tpa.js +23 -0
- package/src/scripts/tpo.js +23 -0
- package/src/scripts/u.js +23 -0
- package/src/scripts/vpush.js +23 -0
- package/src/scripts/y.js +23 -0
- package/src/utils/README.md +95 -0
- package/src/utils/common/apps.js +143 -0
- package/src/utils/common/display.js +157 -0
- package/src/utils/common/network.js +185 -0
- package/src/utils/common/os.js +202 -0
- package/src/utils/common/package-manager.js +301 -0
- package/src/utils/common/privileges.js +138 -0
- package/src/utils/common/shell.js +195 -0
- package/src/utils/macos/apps.js +228 -0
- package/src/utils/macos/brew.js +315 -0
- package/src/utils/ubuntu/apt.js +301 -0
- package/src/utils/ubuntu/desktop.js +292 -0
- package/src/utils/ubuntu/snap.js +302 -0
- package/src/utils/ubuntu/systemd.js +286 -0
- package/src/utils/windows/choco.js +327 -0
- package/src/utils/windows/env.js +246 -0
- package/src/utils/windows/registry.js +269 -0
- package/src/utils/windows/shell.js +240 -0
- package/src/utils/windows/winget.js +378 -0
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @fileoverview Install Docker.
|
|
5
|
+
* @module installs/docker
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
const os = require('../utils/common/os');
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Install Docker across supported platforms.
|
|
12
|
+
*
|
|
13
|
+
* @returns {Promise<void>}
|
|
14
|
+
*/
|
|
15
|
+
async function install() {
|
|
16
|
+
const platform = os.detect();
|
|
17
|
+
|
|
18
|
+
switch (platform.type) {
|
|
19
|
+
case 'macos':
|
|
20
|
+
// TODO: Implement macOS installation
|
|
21
|
+
break;
|
|
22
|
+
case 'debian':
|
|
23
|
+
// TODO: Implement Debian/Ubuntu installation
|
|
24
|
+
break;
|
|
25
|
+
case 'rhel':
|
|
26
|
+
// TODO: Implement RHEL/Amazon Linux installation
|
|
27
|
+
break;
|
|
28
|
+
case 'windows-wsl':
|
|
29
|
+
// TODO: Implement WSL installation
|
|
30
|
+
break;
|
|
31
|
+
case 'windows':
|
|
32
|
+
// TODO: Implement Windows installation
|
|
33
|
+
break;
|
|
34
|
+
default:
|
|
35
|
+
console.error(`Unsupported platform: ${platform.type}`);
|
|
36
|
+
process.exit(1);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
module.exports = { install };
|
|
41
|
+
|
|
42
|
+
if (require.main === module) {
|
|
43
|
+
install();
|
|
44
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @fileoverview Install Draw.IO.
|
|
5
|
+
* @module installs/drawio
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
const os = require('../utils/common/os');
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Install Draw.IO across supported platforms.
|
|
12
|
+
*
|
|
13
|
+
* @returns {Promise<void>}
|
|
14
|
+
*/
|
|
15
|
+
async function install() {
|
|
16
|
+
const platform = os.detect();
|
|
17
|
+
|
|
18
|
+
switch (platform.type) {
|
|
19
|
+
case 'macos':
|
|
20
|
+
// TODO: Implement macOS installation
|
|
21
|
+
break;
|
|
22
|
+
case 'debian':
|
|
23
|
+
// TODO: Implement Debian/Ubuntu installation
|
|
24
|
+
break;
|
|
25
|
+
case 'rhel':
|
|
26
|
+
// TODO: Implement RHEL/Amazon Linux installation
|
|
27
|
+
break;
|
|
28
|
+
case 'windows-wsl':
|
|
29
|
+
// TODO: Implement WSL installation
|
|
30
|
+
break;
|
|
31
|
+
case 'windows':
|
|
32
|
+
// TODO: Implement Windows installation
|
|
33
|
+
break;
|
|
34
|
+
default:
|
|
35
|
+
console.error(`Unsupported platform: ${platform.type}`);
|
|
36
|
+
process.exit(1);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
module.exports = { install };
|
|
41
|
+
|
|
42
|
+
if (require.main === module) {
|
|
43
|
+
install();
|
|
44
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @fileoverview Install Elmedia Player.
|
|
5
|
+
* @module installs/elmedia-player
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
const os = require('../utils/common/os');
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Install Elmedia Player across supported platforms.
|
|
12
|
+
*
|
|
13
|
+
* @returns {Promise<void>}
|
|
14
|
+
*/
|
|
15
|
+
async function install() {
|
|
16
|
+
const platform = os.detect();
|
|
17
|
+
|
|
18
|
+
switch (platform.type) {
|
|
19
|
+
case 'macos':
|
|
20
|
+
// TODO: Implement macOS installation
|
|
21
|
+
break;
|
|
22
|
+
case 'debian':
|
|
23
|
+
// TODO: Implement Debian/Ubuntu installation
|
|
24
|
+
break;
|
|
25
|
+
case 'rhel':
|
|
26
|
+
// TODO: Implement RHEL/Amazon Linux installation
|
|
27
|
+
break;
|
|
28
|
+
case 'windows-wsl':
|
|
29
|
+
// TODO: Implement WSL installation
|
|
30
|
+
break;
|
|
31
|
+
case 'windows':
|
|
32
|
+
// TODO: Implement Windows installation
|
|
33
|
+
break;
|
|
34
|
+
default:
|
|
35
|
+
console.error(`Unsupported platform: ${platform.type}`);
|
|
36
|
+
process.exit(1);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
module.exports = { install };
|
|
41
|
+
|
|
42
|
+
if (require.main === module) {
|
|
43
|
+
install();
|
|
44
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @fileoverview Install FFmpeg.
|
|
5
|
+
* @module installs/ffmpeg
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
const os = require('../utils/common/os');
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Install FFmpeg across supported platforms.
|
|
12
|
+
*
|
|
13
|
+
* @returns {Promise<void>}
|
|
14
|
+
*/
|
|
15
|
+
async function install() {
|
|
16
|
+
const platform = os.detect();
|
|
17
|
+
|
|
18
|
+
switch (platform.type) {
|
|
19
|
+
case 'macos':
|
|
20
|
+
// TODO: Implement macOS installation
|
|
21
|
+
break;
|
|
22
|
+
case 'debian':
|
|
23
|
+
// TODO: Implement Debian/Ubuntu installation
|
|
24
|
+
break;
|
|
25
|
+
case 'rhel':
|
|
26
|
+
// TODO: Implement RHEL/Amazon Linux installation
|
|
27
|
+
break;
|
|
28
|
+
case 'windows-wsl':
|
|
29
|
+
// TODO: Implement WSL installation
|
|
30
|
+
break;
|
|
31
|
+
case 'windows':
|
|
32
|
+
// TODO: Implement Windows installation
|
|
33
|
+
break;
|
|
34
|
+
default:
|
|
35
|
+
console.error(`Unsupported platform: ${platform.type}`);
|
|
36
|
+
process.exit(1);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
module.exports = { install };
|
|
41
|
+
|
|
42
|
+
if (require.main === module) {
|
|
43
|
+
install();
|
|
44
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @fileoverview Install Gemini CLI.
|
|
5
|
+
* @module installs/gemini-cli
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
const os = require('../utils/common/os');
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Install Gemini CLI across supported platforms.
|
|
12
|
+
*
|
|
13
|
+
* @returns {Promise<void>}
|
|
14
|
+
*/
|
|
15
|
+
async function install() {
|
|
16
|
+
const platform = os.detect();
|
|
17
|
+
|
|
18
|
+
switch (platform.type) {
|
|
19
|
+
case 'macos':
|
|
20
|
+
// TODO: Implement macOS installation
|
|
21
|
+
break;
|
|
22
|
+
case 'debian':
|
|
23
|
+
// TODO: Implement Debian/Ubuntu installation
|
|
24
|
+
break;
|
|
25
|
+
case 'rhel':
|
|
26
|
+
// TODO: Implement RHEL/Amazon Linux installation
|
|
27
|
+
break;
|
|
28
|
+
case 'windows-wsl':
|
|
29
|
+
// TODO: Implement WSL installation
|
|
30
|
+
break;
|
|
31
|
+
case 'windows':
|
|
32
|
+
// TODO: Implement Windows installation
|
|
33
|
+
break;
|
|
34
|
+
default:
|
|
35
|
+
console.error(`Unsupported platform: ${platform.type}`);
|
|
36
|
+
process.exit(1);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
module.exports = { install };
|
|
41
|
+
|
|
42
|
+
if (require.main === module) {
|
|
43
|
+
install();
|
|
44
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @fileoverview Install Git.
|
|
5
|
+
* @module installs/git
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
const os = require('../utils/common/os');
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Install Git across supported platforms.
|
|
12
|
+
*
|
|
13
|
+
* @returns {Promise<void>}
|
|
14
|
+
*/
|
|
15
|
+
async function install() {
|
|
16
|
+
const platform = os.detect();
|
|
17
|
+
|
|
18
|
+
switch (platform.type) {
|
|
19
|
+
case 'macos':
|
|
20
|
+
// TODO: Implement macOS installation
|
|
21
|
+
break;
|
|
22
|
+
case 'debian':
|
|
23
|
+
// TODO: Implement Debian/Ubuntu installation
|
|
24
|
+
break;
|
|
25
|
+
case 'rhel':
|
|
26
|
+
// TODO: Implement RHEL/Amazon Linux installation
|
|
27
|
+
break;
|
|
28
|
+
case 'windows-wsl':
|
|
29
|
+
// TODO: Implement WSL installation
|
|
30
|
+
break;
|
|
31
|
+
case 'windows':
|
|
32
|
+
// TODO: Implement Windows installation
|
|
33
|
+
break;
|
|
34
|
+
default:
|
|
35
|
+
console.error(`Unsupported platform: ${platform.type}`);
|
|
36
|
+
process.exit(1);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
module.exports = { install };
|
|
41
|
+
|
|
42
|
+
if (require.main === module) {
|
|
43
|
+
install();
|
|
44
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @fileoverview Install gitego.
|
|
5
|
+
* @module installs/gitego
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
const os = require('../utils/common/os');
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Install gitego across supported platforms.
|
|
12
|
+
*
|
|
13
|
+
* @returns {Promise<void>}
|
|
14
|
+
*/
|
|
15
|
+
async function install() {
|
|
16
|
+
const platform = os.detect();
|
|
17
|
+
|
|
18
|
+
switch (platform.type) {
|
|
19
|
+
case 'macos':
|
|
20
|
+
// TODO: Implement macOS installation
|
|
21
|
+
break;
|
|
22
|
+
case 'debian':
|
|
23
|
+
// TODO: Implement Debian/Ubuntu installation
|
|
24
|
+
break;
|
|
25
|
+
case 'rhel':
|
|
26
|
+
// TODO: Implement RHEL/Amazon Linux installation
|
|
27
|
+
break;
|
|
28
|
+
case 'windows-wsl':
|
|
29
|
+
// TODO: Implement WSL installation
|
|
30
|
+
break;
|
|
31
|
+
case 'windows':
|
|
32
|
+
// TODO: Implement Windows installation
|
|
33
|
+
break;
|
|
34
|
+
default:
|
|
35
|
+
console.error(`Unsupported platform: ${platform.type}`);
|
|
36
|
+
process.exit(1);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
module.exports = { install };
|
|
41
|
+
|
|
42
|
+
if (require.main === module) {
|
|
43
|
+
install();
|
|
44
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @fileoverview Install Go.
|
|
5
|
+
* @module installs/go
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
const os = require('../utils/common/os');
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Install Go across supported platforms.
|
|
12
|
+
*
|
|
13
|
+
* @returns {Promise<void>}
|
|
14
|
+
*/
|
|
15
|
+
async function install() {
|
|
16
|
+
const platform = os.detect();
|
|
17
|
+
|
|
18
|
+
switch (platform.type) {
|
|
19
|
+
case 'macos':
|
|
20
|
+
// TODO: Implement macOS installation
|
|
21
|
+
break;
|
|
22
|
+
case 'debian':
|
|
23
|
+
// TODO: Implement Debian/Ubuntu installation
|
|
24
|
+
break;
|
|
25
|
+
case 'rhel':
|
|
26
|
+
// TODO: Implement RHEL/Amazon Linux installation
|
|
27
|
+
break;
|
|
28
|
+
case 'windows-wsl':
|
|
29
|
+
// TODO: Implement WSL installation
|
|
30
|
+
break;
|
|
31
|
+
case 'windows':
|
|
32
|
+
// TODO: Implement Windows installation
|
|
33
|
+
break;
|
|
34
|
+
default:
|
|
35
|
+
console.error(`Unsupported platform: ${platform.type}`);
|
|
36
|
+
process.exit(1);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
module.exports = { install };
|
|
41
|
+
|
|
42
|
+
if (require.main === module) {
|
|
43
|
+
install();
|
|
44
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @fileoverview Install Google Chrome.
|
|
5
|
+
* @module installs/google-chrome
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
const os = require('../utils/common/os');
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Install Google Chrome across supported platforms.
|
|
12
|
+
*
|
|
13
|
+
* @returns {Promise<void>}
|
|
14
|
+
*/
|
|
15
|
+
async function install() {
|
|
16
|
+
const platform = os.detect();
|
|
17
|
+
|
|
18
|
+
switch (platform.type) {
|
|
19
|
+
case 'macos':
|
|
20
|
+
// TODO: Implement macOS installation
|
|
21
|
+
break;
|
|
22
|
+
case 'debian':
|
|
23
|
+
// TODO: Implement Debian/Ubuntu installation
|
|
24
|
+
break;
|
|
25
|
+
case 'rhel':
|
|
26
|
+
// TODO: Implement RHEL/Amazon Linux installation
|
|
27
|
+
break;
|
|
28
|
+
case 'windows-wsl':
|
|
29
|
+
// TODO: Implement WSL installation
|
|
30
|
+
break;
|
|
31
|
+
case 'windows':
|
|
32
|
+
// TODO: Implement Windows installation
|
|
33
|
+
break;
|
|
34
|
+
default:
|
|
35
|
+
console.error(`Unsupported platform: ${platform.type}`);
|
|
36
|
+
process.exit(1);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
module.exports = { install };
|
|
41
|
+
|
|
42
|
+
if (require.main === module) {
|
|
43
|
+
install();
|
|
44
|
+
}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @fileoverview Install GPG.
|
|
5
|
+
* @module installs/gpg
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
const os = require('../utils/common/os');
|
|
9
|
+
const shell = require('../utils/common/shell');
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Check if gpg is installed
|
|
13
|
+
* @returns {boolean}
|
|
14
|
+
*/
|
|
15
|
+
function isInstalled() {
|
|
16
|
+
return shell.commandExists('gpg');
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Install GPG on macOS
|
|
21
|
+
* @returns {Promise<boolean>}
|
|
22
|
+
*/
|
|
23
|
+
async function install_macos() {
|
|
24
|
+
console.log('Installing gnupg via Homebrew...');
|
|
25
|
+
const result = await shell.exec('brew install gnupg');
|
|
26
|
+
if (result.code !== 0) {
|
|
27
|
+
console.error('Failed to install gnupg.');
|
|
28
|
+
return false;
|
|
29
|
+
}
|
|
30
|
+
// Also install pinentry-mac for GUI passphrase prompts
|
|
31
|
+
console.log('Installing pinentry-mac...');
|
|
32
|
+
await shell.exec('brew install pinentry-mac');
|
|
33
|
+
return true;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Install GPG on Ubuntu/Debian
|
|
38
|
+
* @returns {Promise<boolean>}
|
|
39
|
+
*/
|
|
40
|
+
async function install_debian() {
|
|
41
|
+
console.log('Installing gnupg...');
|
|
42
|
+
const result = await shell.exec('sudo apt-get update && sudo apt-get install -y gnupg');
|
|
43
|
+
return result.code === 0;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Install GPG on Raspberry Pi
|
|
48
|
+
* @returns {Promise<boolean>}
|
|
49
|
+
*/
|
|
50
|
+
async function install_raspbian() {
|
|
51
|
+
return install_debian();
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Install GPG on Amazon Linux/RHEL/Fedora
|
|
56
|
+
* @returns {Promise<boolean>}
|
|
57
|
+
*/
|
|
58
|
+
async function install_rhel() {
|
|
59
|
+
const platform = os.detect();
|
|
60
|
+
const pm = platform.packageManager || 'yum';
|
|
61
|
+
console.log('Installing gnupg2...');
|
|
62
|
+
const result = await shell.exec(`sudo ${pm} install -y gnupg2`);
|
|
63
|
+
return result.code === 0;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Install GPG on Windows
|
|
68
|
+
* @returns {Promise<boolean>}
|
|
69
|
+
*/
|
|
70
|
+
async function install_windows() {
|
|
71
|
+
console.log('Installing Gpg4win via winget...');
|
|
72
|
+
const result = await shell.exec('winget install -e --id GnuPG.Gpg4win --accept-source-agreements --accept-package-agreements');
|
|
73
|
+
if (result.code !== 0) {
|
|
74
|
+
console.log('Trying chocolatey...');
|
|
75
|
+
const chocoResult = await shell.exec('choco install gpg4win -y');
|
|
76
|
+
return chocoResult.code === 0;
|
|
77
|
+
}
|
|
78
|
+
return true;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* Install GPG on WSL
|
|
83
|
+
* @returns {Promise<boolean>}
|
|
84
|
+
*/
|
|
85
|
+
async function install_wsl() {
|
|
86
|
+
return install_debian();
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* Install GPG across supported platforms.
|
|
91
|
+
* @returns {Promise<boolean>}
|
|
92
|
+
*/
|
|
93
|
+
async function install() {
|
|
94
|
+
if (isInstalled()) {
|
|
95
|
+
console.log('gpg is already installed.');
|
|
96
|
+
return true;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
const platform = os.detect();
|
|
100
|
+
|
|
101
|
+
const installers = {
|
|
102
|
+
'macos': install_macos,
|
|
103
|
+
'ubuntu': install_debian,
|
|
104
|
+
'debian': install_debian,
|
|
105
|
+
'raspbian': install_raspbian,
|
|
106
|
+
'amazon_linux': install_rhel,
|
|
107
|
+
'fedora': install_rhel,
|
|
108
|
+
'rhel': install_rhel,
|
|
109
|
+
'windows': install_windows,
|
|
110
|
+
'wsl': install_wsl
|
|
111
|
+
};
|
|
112
|
+
|
|
113
|
+
const installer = installers[platform.type];
|
|
114
|
+
if (!installer) {
|
|
115
|
+
console.error(`Unsupported platform: ${platform.type}`);
|
|
116
|
+
return false;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
const success = await installer();
|
|
120
|
+
if (success) {
|
|
121
|
+
console.log('GPG installed successfully.');
|
|
122
|
+
} else {
|
|
123
|
+
console.error('Failed to install GPG.');
|
|
124
|
+
}
|
|
125
|
+
return success;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
module.exports = {
|
|
129
|
+
install,
|
|
130
|
+
isInstalled,
|
|
131
|
+
install_macos,
|
|
132
|
+
install_debian,
|
|
133
|
+
install_raspbian,
|
|
134
|
+
install_rhel,
|
|
135
|
+
install_windows,
|
|
136
|
+
install_wsl
|
|
137
|
+
};
|
|
138
|
+
|
|
139
|
+
if (require.main === module) {
|
|
140
|
+
install();
|
|
141
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @fileoverview Install Homebrew.
|
|
5
|
+
* @module installs/homebrew
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
const os = require('../utils/common/os');
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Install Homebrew across supported platforms.
|
|
12
|
+
*
|
|
13
|
+
* @returns {Promise<void>}
|
|
14
|
+
*/
|
|
15
|
+
async function install() {
|
|
16
|
+
const platform = os.detect();
|
|
17
|
+
|
|
18
|
+
switch (platform.type) {
|
|
19
|
+
case 'macos':
|
|
20
|
+
// TODO: Implement macOS installation
|
|
21
|
+
break;
|
|
22
|
+
case 'debian':
|
|
23
|
+
// TODO: Implement Debian/Ubuntu installation
|
|
24
|
+
break;
|
|
25
|
+
case 'rhel':
|
|
26
|
+
// TODO: Implement RHEL/Amazon Linux installation
|
|
27
|
+
break;
|
|
28
|
+
case 'windows-wsl':
|
|
29
|
+
// TODO: Implement WSL installation
|
|
30
|
+
break;
|
|
31
|
+
case 'windows':
|
|
32
|
+
// TODO: Implement Windows installation
|
|
33
|
+
break;
|
|
34
|
+
default:
|
|
35
|
+
console.error(`Unsupported platform: ${platform.type}`);
|
|
36
|
+
process.exit(1);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
module.exports = { install };
|
|
41
|
+
|
|
42
|
+
if (require.main === module) {
|
|
43
|
+
install();
|
|
44
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @fileoverview Install ImageOptim.
|
|
5
|
+
* @module installs/imageoptim
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
const os = require('../utils/common/os');
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Install ImageOptim across supported platforms.
|
|
12
|
+
*
|
|
13
|
+
* @returns {Promise<void>}
|
|
14
|
+
*/
|
|
15
|
+
async function install() {
|
|
16
|
+
const platform = os.detect();
|
|
17
|
+
|
|
18
|
+
switch (platform.type) {
|
|
19
|
+
case 'macos':
|
|
20
|
+
// TODO: Implement macOS installation
|
|
21
|
+
break;
|
|
22
|
+
case 'debian':
|
|
23
|
+
// TODO: Implement Debian/Ubuntu installation
|
|
24
|
+
break;
|
|
25
|
+
case 'rhel':
|
|
26
|
+
// TODO: Implement RHEL/Amazon Linux installation
|
|
27
|
+
break;
|
|
28
|
+
case 'windows-wsl':
|
|
29
|
+
// TODO: Implement WSL installation
|
|
30
|
+
break;
|
|
31
|
+
case 'windows':
|
|
32
|
+
// TODO: Implement Windows installation
|
|
33
|
+
break;
|
|
34
|
+
default:
|
|
35
|
+
console.error(`Unsupported platform: ${platform.type}`);
|
|
36
|
+
process.exit(1);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
module.exports = { install };
|
|
41
|
+
|
|
42
|
+
if (require.main === module) {
|
|
43
|
+
install();
|
|
44
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @fileoverview Install jq.
|
|
5
|
+
* @module installs/jq
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
const os = require('../utils/common/os');
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Install jq across supported platforms.
|
|
12
|
+
*
|
|
13
|
+
* @returns {Promise<void>}
|
|
14
|
+
*/
|
|
15
|
+
async function install() {
|
|
16
|
+
const platform = os.detect();
|
|
17
|
+
|
|
18
|
+
switch (platform.type) {
|
|
19
|
+
case 'macos':
|
|
20
|
+
// TODO: Implement macOS installation
|
|
21
|
+
break;
|
|
22
|
+
case 'debian':
|
|
23
|
+
// TODO: Implement Debian/Ubuntu installation
|
|
24
|
+
break;
|
|
25
|
+
case 'rhel':
|
|
26
|
+
// TODO: Implement RHEL/Amazon Linux installation
|
|
27
|
+
break;
|
|
28
|
+
case 'windows-wsl':
|
|
29
|
+
// TODO: Implement WSL installation
|
|
30
|
+
break;
|
|
31
|
+
case 'windows':
|
|
32
|
+
// TODO: Implement Windows installation
|
|
33
|
+
break;
|
|
34
|
+
default:
|
|
35
|
+
console.error(`Unsupported platform: ${platform.type}`);
|
|
36
|
+
process.exit(1);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
module.exports = { install };
|
|
41
|
+
|
|
42
|
+
if (require.main === module) {
|
|
43
|
+
install();
|
|
44
|
+
}
|