@alexgorbatchev/dotfiles 0.0.6 → 0.0.10
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 +45 -47
- package/cli.js +157 -157
- package/cli.js.map +274 -274
- package/dashboard-vf1askzj.js +159 -0
- package/{dashboard-0ebz5sqb.js.map → dashboard-vf1askzj.js.map} +33 -33
- package/dashboard.js +11 -11
- package/package.json +1 -1
- package/schemas.d.ts +106 -100
- package/skill/SKILL.md +7 -5
- package/skill/references/api-reference.md +49 -49
- package/skill/references/configuration.md +184 -174
- package/skill/references/installation-methods/brew.md +18 -18
- package/skill/references/installation-methods/cargo.md +19 -19
- package/skill/references/installation-methods/curl-binary.md +29 -27
- package/skill/references/installation-methods/curl-script.md +28 -28
- package/skill/references/installation-methods/curl-tar.md +27 -19
- package/skill/references/installation-methods/dmg.md +24 -24
- package/skill/references/installation-methods/gitea-release.md +24 -24
- package/skill/references/installation-methods/github-release.md +20 -20
- package/skill/references/installation-methods/manual.md +18 -18
- package/skill/references/installation-methods/npm.md +19 -19
- package/skill/references/installation-methods/overview.md +74 -75
- package/skill/references/installation-methods/zsh-plugin.md +31 -32
- package/skill/references/make-tool.md +168 -167
- package/skill/references/shell-and-hooks.md +78 -77
- package/dashboard-0ebz5sqb.js +0 -159
|
@@ -5,9 +5,9 @@ Download and install tools from GitHub releases with automatic platform asset se
|
|
|
5
5
|
## Basic Usage
|
|
6
6
|
|
|
7
7
|
```typescript
|
|
8
|
-
import { defineTool } from
|
|
8
|
+
import { defineTool } from "@alexgorbatchev/dotfiles";
|
|
9
9
|
|
|
10
|
-
export default defineTool((install) => install(
|
|
10
|
+
export default defineTool((install) => install("github-release", { repo: "junegunn/fzf" }).bin("fzf"));
|
|
11
11
|
```
|
|
12
12
|
|
|
13
13
|
## Parameters
|
|
@@ -28,31 +28,31 @@ export default defineTool((install) => install('github-release', { repo: 'junegu
|
|
|
28
28
|
### With Asset Pattern
|
|
29
29
|
|
|
30
30
|
```typescript
|
|
31
|
-
install(
|
|
32
|
-
repo:
|
|
33
|
-
assetPattern:
|
|
34
|
-
}).bin(
|
|
31
|
+
install("github-release", {
|
|
32
|
+
repo: "sharkdp/bat",
|
|
33
|
+
assetPattern: "*linux_amd64.tar.gz",
|
|
34
|
+
}).bin("bat");
|
|
35
35
|
```
|
|
36
36
|
|
|
37
37
|
### Custom Asset Selector
|
|
38
38
|
|
|
39
39
|
```typescript
|
|
40
|
-
install(
|
|
41
|
-
repo:
|
|
40
|
+
install("github-release", {
|
|
41
|
+
repo: "example/tool",
|
|
42
42
|
assetSelector: ({ assets, systemInfo }) => {
|
|
43
|
-
const platform = systemInfo.platform ===
|
|
43
|
+
const platform = systemInfo.platform === "darwin" ? "macos" : systemInfo.platform;
|
|
44
44
|
return assets.find((a) => a.name.includes(platform));
|
|
45
45
|
},
|
|
46
|
-
}).bin(
|
|
46
|
+
}).bin("tool");
|
|
47
47
|
```
|
|
48
48
|
|
|
49
49
|
### Specific Version
|
|
50
50
|
|
|
51
51
|
```typescript
|
|
52
|
-
install(
|
|
53
|
-
repo:
|
|
54
|
-
version:
|
|
55
|
-
}).bin(
|
|
52
|
+
install("github-release", {
|
|
53
|
+
repo: "owner/tool",
|
|
54
|
+
version: "v2.1.0",
|
|
55
|
+
}).bin("tool");
|
|
56
56
|
```
|
|
57
57
|
|
|
58
58
|
### Using gh CLI
|
|
@@ -60,10 +60,10 @@ install('github-release', {
|
|
|
60
60
|
Use the `gh` CLI for API requests instead of fetch. Useful when working behind proxies or leveraging existing `gh` authentication:
|
|
61
61
|
|
|
62
62
|
```typescript
|
|
63
|
-
install(
|
|
64
|
-
repo:
|
|
63
|
+
install("github-release", {
|
|
64
|
+
repo: "owner/tool",
|
|
65
65
|
ghCli: true,
|
|
66
|
-
}).bin(
|
|
66
|
+
}).bin("tool");
|
|
67
67
|
```
|
|
68
68
|
|
|
69
69
|
### Including Prereleases
|
|
@@ -71,10 +71,10 @@ install('github-release', {
|
|
|
71
71
|
By default, GitHub's "latest" excludes prereleases. Use `prerelease: true` for repos that only publish prerelease versions:
|
|
72
72
|
|
|
73
73
|
```typescript
|
|
74
|
-
install(
|
|
75
|
-
repo:
|
|
74
|
+
install("github-release", {
|
|
75
|
+
repo: "owner/nightly-only-tool",
|
|
76
76
|
prerelease: true,
|
|
77
|
-
}).bin(
|
|
77
|
+
}).bin("tool");
|
|
78
78
|
```
|
|
79
79
|
|
|
80
80
|
## Asset Pattern Matching
|
|
@@ -5,29 +5,29 @@ Installs files from your tool configuration directory (custom scripts, pre-built
|
|
|
5
5
|
## Basic Usage
|
|
6
6
|
|
|
7
7
|
```typescript
|
|
8
|
-
import { defineTool } from
|
|
8
|
+
import { defineTool } from "@alexgorbatchev/dotfiles";
|
|
9
9
|
|
|
10
10
|
// Install a custom script
|
|
11
11
|
export default defineTool((install, ctx) =>
|
|
12
|
-
install(
|
|
13
|
-
binaryPath:
|
|
14
|
-
}).bin(
|
|
12
|
+
install("manual", {
|
|
13
|
+
binaryPath: "./scripts/my-tool.sh",
|
|
14
|
+
}).bin("my-tool"),
|
|
15
15
|
);
|
|
16
16
|
|
|
17
17
|
// Without params (shell-only or dependency wrapper)
|
|
18
18
|
export default defineTool((install) =>
|
|
19
|
-
install(
|
|
20
|
-
.bin(
|
|
21
|
-
.dependsOn(
|
|
19
|
+
install("manual")
|
|
20
|
+
.bin("tokscale")
|
|
21
|
+
.dependsOn("bun")
|
|
22
22
|
.zsh((shell) =>
|
|
23
23
|
shell.functions({
|
|
24
24
|
tokscale: `bun x tokscale@latest`,
|
|
25
|
-
})
|
|
26
|
-
)
|
|
25
|
+
}),
|
|
26
|
+
),
|
|
27
27
|
);
|
|
28
28
|
|
|
29
29
|
// Configuration-only tool (no binary)
|
|
30
|
-
export default defineTool((install, ctx) => install().zsh((shell) => shell.aliases({ ll:
|
|
30
|
+
export default defineTool((install, ctx) => install().zsh((shell) => shell.aliases({ ll: "ls -la" })));
|
|
31
31
|
```
|
|
32
32
|
|
|
33
33
|
## Parameters
|
|
@@ -43,27 +43,27 @@ export default defineTool((install, ctx) => install().zsh((shell) => shell.alias
|
|
|
43
43
|
|
|
44
44
|
```typescript
|
|
45
45
|
export default defineTool((install, ctx) =>
|
|
46
|
-
install(
|
|
47
|
-
binaryPath:
|
|
48
|
-
}).bin(
|
|
46
|
+
install("manual", {
|
|
47
|
+
binaryPath: "./binaries/linux/x64/custom-tool",
|
|
48
|
+
}).bin("custom-tool"),
|
|
49
49
|
);
|
|
50
50
|
```
|
|
51
51
|
|
|
52
52
|
### Configuration-Only Tool
|
|
53
53
|
|
|
54
54
|
```typescript
|
|
55
|
-
export default defineTool((install, ctx) => install().zsh((shell) => shell.aliases({ ll:
|
|
55
|
+
export default defineTool((install, ctx) => install().zsh((shell) => shell.aliases({ ll: "ls -la", la: "ls -A" })));
|
|
56
56
|
```
|
|
57
57
|
|
|
58
58
|
### With Shell Configuration
|
|
59
59
|
|
|
60
60
|
```typescript
|
|
61
61
|
export default defineTool((install, ctx) =>
|
|
62
|
-
install(
|
|
63
|
-
binaryPath:
|
|
62
|
+
install("manual", {
|
|
63
|
+
binaryPath: "./bin/my-tool.sh",
|
|
64
64
|
})
|
|
65
|
-
.bin(
|
|
66
|
-
.zsh((shell) => shell.aliases({ mt:
|
|
65
|
+
.bin("my-tool")
|
|
66
|
+
.zsh((shell) => shell.aliases({ mt: "my-tool" }).completions("./completions/_my-tool")),
|
|
67
67
|
);
|
|
68
68
|
```
|
|
69
69
|
|
|
@@ -5,9 +5,9 @@ Install tools published as npm packages. Supports both `npm` and `bun` as packag
|
|
|
5
5
|
## Basic Usage
|
|
6
6
|
|
|
7
7
|
```typescript
|
|
8
|
-
import { defineTool } from
|
|
8
|
+
import { defineTool } from "@alexgorbatchev/dotfiles";
|
|
9
9
|
|
|
10
|
-
export default defineTool((install) => install(
|
|
10
|
+
export default defineTool((install) => install("npm", { package: "prettier" }).bin("prettier"));
|
|
11
11
|
```
|
|
12
12
|
|
|
13
13
|
## Parameters
|
|
@@ -18,7 +18,7 @@ export default defineTool((install) => install('npm', { package: 'prettier' }).b
|
|
|
18
18
|
| `version` | `string` | No | Version or version range (e.g., `3.0.0`, defaults to latest) |
|
|
19
19
|
| `packageManager` | `'npm' \| 'bun'` | No | Package manager to use for installation (defaults to `'npm'`) |
|
|
20
20
|
| `versionArgs` | `string[]` | No | Arguments for version check (e.g., `['--version']`) |
|
|
21
|
-
| `versionRegex` | `string`
|
|
21
|
+
| `versionRegex` | `string \| RegExp` | No | Regex to extract version from output |
|
|
22
22
|
| `env` | `Record<string, string> \| (ctx) => Record<...>` | No | Environment variables (static or dynamic function) |
|
|
23
23
|
|
|
24
24
|
## Examples
|
|
@@ -27,10 +27,10 @@ export default defineTool((install) => install('npm', { package: 'prettier' }).b
|
|
|
27
27
|
|
|
28
28
|
```typescript
|
|
29
29
|
export default defineTool((install) =>
|
|
30
|
-
install(
|
|
31
|
-
package:
|
|
32
|
-
version:
|
|
33
|
-
}).bin(
|
|
30
|
+
install("npm", {
|
|
31
|
+
package: "prettier",
|
|
32
|
+
version: "3.0.0",
|
|
33
|
+
}).bin("prettier"),
|
|
34
34
|
);
|
|
35
35
|
```
|
|
36
36
|
|
|
@@ -38,10 +38,10 @@ export default defineTool((install) =>
|
|
|
38
38
|
|
|
39
39
|
```typescript
|
|
40
40
|
export default defineTool((install) =>
|
|
41
|
-
install(
|
|
42
|
-
package:
|
|
43
|
-
packageManager:
|
|
44
|
-
}).bin(
|
|
41
|
+
install("npm", {
|
|
42
|
+
package: "prettier",
|
|
43
|
+
packageManager: "bun",
|
|
44
|
+
}).bin("prettier"),
|
|
45
45
|
);
|
|
46
46
|
```
|
|
47
47
|
|
|
@@ -49,9 +49,9 @@ export default defineTool((install) =>
|
|
|
49
49
|
|
|
50
50
|
```typescript
|
|
51
51
|
export default defineTool((install) =>
|
|
52
|
-
install(
|
|
53
|
-
package:
|
|
54
|
-
}).bin(
|
|
52
|
+
install("npm", {
|
|
53
|
+
package: "@angular/cli",
|
|
54
|
+
}).bin("ng"),
|
|
55
55
|
);
|
|
56
56
|
```
|
|
57
57
|
|
|
@@ -59,11 +59,11 @@ export default defineTool((install) =>
|
|
|
59
59
|
|
|
60
60
|
```typescript
|
|
61
61
|
export default defineTool((install) =>
|
|
62
|
-
install(
|
|
63
|
-
package:
|
|
64
|
-
versionArgs: [
|
|
65
|
-
versionRegex:
|
|
66
|
-
}).bin(
|
|
62
|
+
install("npm", {
|
|
63
|
+
package: "typescript",
|
|
64
|
+
versionArgs: ["--version"],
|
|
65
|
+
versionRegex: /(\d+\.\d+\.\d+)/,
|
|
66
|
+
}).bin("tsc"),
|
|
67
67
|
);
|
|
68
68
|
```
|
|
69
69
|
|
|
@@ -9,12 +9,12 @@ The system supports multiple installation methods to accommodate different tool
|
|
|
9
9
|
Install tools from GitHub releases with automatic asset selection and extraction.
|
|
10
10
|
|
|
11
11
|
```typescript
|
|
12
|
-
import { defineTool } from
|
|
12
|
+
import { defineTool } from "@alexgorbatchev/dotfiles";
|
|
13
13
|
|
|
14
14
|
export default defineTool((install, ctx) =>
|
|
15
|
-
install(
|
|
16
|
-
repo:
|
|
17
|
-
}).bin(
|
|
15
|
+
install("github-release", {
|
|
16
|
+
repo: "owner/repository",
|
|
17
|
+
}).bin("tool"),
|
|
18
18
|
);
|
|
19
19
|
```
|
|
20
20
|
|
|
@@ -23,13 +23,13 @@ export default defineTool((install, ctx) =>
|
|
|
23
23
|
Install tools from Gitea, Forgejo, or Codeberg releases with automatic asset selection.
|
|
24
24
|
|
|
25
25
|
```typescript
|
|
26
|
-
import { defineTool } from
|
|
26
|
+
import { defineTool } from "@alexgorbatchev/dotfiles";
|
|
27
27
|
|
|
28
28
|
export default defineTool((install, ctx) =>
|
|
29
|
-
install(
|
|
30
|
-
instanceUrl:
|
|
31
|
-
repo:
|
|
32
|
-
}).bin(
|
|
29
|
+
install("gitea-release", {
|
|
30
|
+
instanceUrl: "https://codeberg.org",
|
|
31
|
+
repo: "owner/repository",
|
|
32
|
+
}).bin("tool"),
|
|
33
33
|
);
|
|
34
34
|
```
|
|
35
35
|
|
|
@@ -38,12 +38,12 @@ export default defineTool((install, ctx) =>
|
|
|
38
38
|
Install tools using Homebrew package manager (macOS and Linux).
|
|
39
39
|
|
|
40
40
|
```typescript
|
|
41
|
-
import { defineTool } from
|
|
41
|
+
import { defineTool } from "@alexgorbatchev/dotfiles";
|
|
42
42
|
|
|
43
43
|
export default defineTool((install, ctx) =>
|
|
44
|
-
install(
|
|
45
|
-
formula:
|
|
46
|
-
}).bin(
|
|
44
|
+
install("brew", {
|
|
45
|
+
formula: "ripgrep",
|
|
46
|
+
}).bin("rg"),
|
|
47
47
|
);
|
|
48
48
|
```
|
|
49
49
|
|
|
@@ -52,12 +52,12 @@ export default defineTool((install, ctx) =>
|
|
|
52
52
|
Install Rust tools from crates.io with cargo-quickinstall for faster downloads.
|
|
53
53
|
|
|
54
54
|
```typescript
|
|
55
|
-
import { defineTool } from
|
|
55
|
+
import { defineTool } from "@alexgorbatchev/dotfiles";
|
|
56
56
|
|
|
57
57
|
export default defineTool((install, ctx) =>
|
|
58
|
-
install(
|
|
59
|
-
crateName:
|
|
60
|
-
}).bin(
|
|
58
|
+
install("cargo", {
|
|
59
|
+
crateName: "ripgrep",
|
|
60
|
+
}).bin("rg"),
|
|
61
61
|
);
|
|
62
62
|
```
|
|
63
63
|
|
|
@@ -66,12 +66,12 @@ export default defineTool((install, ctx) =>
|
|
|
66
66
|
Install tools published as npm packages.
|
|
67
67
|
|
|
68
68
|
```typescript
|
|
69
|
-
import { defineTool } from
|
|
69
|
+
import { defineTool } from "@alexgorbatchev/dotfiles";
|
|
70
70
|
|
|
71
71
|
export default defineTool((install, ctx) =>
|
|
72
|
-
install(
|
|
73
|
-
package:
|
|
74
|
-
}).bin(
|
|
72
|
+
install("npm", {
|
|
73
|
+
package: "prettier",
|
|
74
|
+
}).bin("prettier"),
|
|
75
75
|
);
|
|
76
76
|
```
|
|
77
77
|
|
|
@@ -80,13 +80,13 @@ export default defineTool((install, ctx) =>
|
|
|
80
80
|
Download and execute installation scripts.
|
|
81
81
|
|
|
82
82
|
```typescript
|
|
83
|
-
import { defineTool } from
|
|
83
|
+
import { defineTool } from "@alexgorbatchev/dotfiles";
|
|
84
84
|
|
|
85
85
|
export default defineTool((install, ctx) =>
|
|
86
|
-
install(
|
|
87
|
-
url:
|
|
88
|
-
shell:
|
|
89
|
-
}).bin(
|
|
86
|
+
install("curl-script", {
|
|
87
|
+
url: "https://bun.sh/install",
|
|
88
|
+
shell: "bash",
|
|
89
|
+
}).bin("bun"),
|
|
90
90
|
);
|
|
91
91
|
```
|
|
92
92
|
|
|
@@ -95,12 +95,12 @@ export default defineTool((install, ctx) =>
|
|
|
95
95
|
Download and extract tarballs directly from URLs.
|
|
96
96
|
|
|
97
97
|
```typescript
|
|
98
|
-
import { defineTool } from
|
|
98
|
+
import { defineTool } from "@alexgorbatchev/dotfiles";
|
|
99
99
|
|
|
100
100
|
export default defineTool((install, ctx) =>
|
|
101
|
-
install(
|
|
102
|
-
url:
|
|
103
|
-
}).bin(
|
|
101
|
+
install("curl-tar", {
|
|
102
|
+
url: "https://releases.example.com/tool-v1.0.0.tar.gz",
|
|
103
|
+
}).bin("tool"),
|
|
104
104
|
);
|
|
105
105
|
```
|
|
106
106
|
|
|
@@ -109,12 +109,12 @@ export default defineTool((install, ctx) =>
|
|
|
109
109
|
Download standalone binary files directly from URLs (no archive extraction).
|
|
110
110
|
|
|
111
111
|
```typescript
|
|
112
|
-
import { defineTool } from
|
|
112
|
+
import { defineTool } from "@alexgorbatchev/dotfiles";
|
|
113
113
|
|
|
114
114
|
export default defineTool((install, ctx) =>
|
|
115
|
-
install(
|
|
116
|
-
url:
|
|
117
|
-
}).bin(
|
|
115
|
+
install("curl-binary", {
|
|
116
|
+
url: "https://example.com/tool-v1.0.0-linux-amd64",
|
|
117
|
+
}).bin("tool"),
|
|
118
118
|
);
|
|
119
119
|
```
|
|
120
120
|
|
|
@@ -123,26 +123,26 @@ export default defineTool((install, ctx) =>
|
|
|
123
123
|
Install macOS applications from DMG disk images into `/Applications` (silently skipped on other platforms).
|
|
124
124
|
|
|
125
125
|
```typescript
|
|
126
|
-
import { defineTool } from
|
|
126
|
+
import { defineTool } from "@alexgorbatchev/dotfiles";
|
|
127
127
|
|
|
128
128
|
export default defineTool((install, ctx) =>
|
|
129
|
-
install(
|
|
129
|
+
install("dmg", {
|
|
130
130
|
source: {
|
|
131
|
-
type:
|
|
132
|
-
url:
|
|
131
|
+
type: "url",
|
|
132
|
+
url: "https://example.com/MyApp-1.0.0.dmg",
|
|
133
133
|
},
|
|
134
|
-
})
|
|
134
|
+
}),
|
|
135
135
|
);
|
|
136
136
|
```
|
|
137
137
|
|
|
138
138
|
DMG also supports GitHub release sources:
|
|
139
139
|
|
|
140
140
|
```typescript
|
|
141
|
-
install(
|
|
141
|
+
install("dmg", {
|
|
142
142
|
source: {
|
|
143
|
-
type:
|
|
144
|
-
repo:
|
|
145
|
-
assetPattern:
|
|
143
|
+
type: "github-release",
|
|
144
|
+
repo: "manaflow-ai/cmux",
|
|
145
|
+
assetPattern: "*macos*.dmg",
|
|
146
146
|
},
|
|
147
147
|
});
|
|
148
148
|
```
|
|
@@ -152,29 +152,29 @@ install('dmg', {
|
|
|
152
152
|
Install files from your dotfiles directory (custom scripts, pre-built binaries) or configuration-only tools. Can be called without params: `install('manual')`.
|
|
153
153
|
|
|
154
154
|
```typescript
|
|
155
|
-
import { defineTool } from
|
|
155
|
+
import { defineTool } from "@alexgorbatchev/dotfiles";
|
|
156
156
|
|
|
157
157
|
// With binary installation
|
|
158
158
|
export default defineTool((install, ctx) =>
|
|
159
|
-
install(
|
|
160
|
-
binaryPath:
|
|
161
|
-
}).bin(
|
|
159
|
+
install("manual", {
|
|
160
|
+
binaryPath: "./bin/my-script.sh",
|
|
161
|
+
}).bin("my-script"),
|
|
162
162
|
);
|
|
163
163
|
|
|
164
164
|
// Without params (shell-only or dependency wrapper)
|
|
165
165
|
export default defineTool((install) =>
|
|
166
|
-
install(
|
|
167
|
-
.bin(
|
|
168
|
-
.dependsOn(
|
|
166
|
+
install("manual")
|
|
167
|
+
.bin("tokscale")
|
|
168
|
+
.dependsOn("bun")
|
|
169
169
|
.zsh((shell) =>
|
|
170
170
|
shell.functions({
|
|
171
171
|
tokscale: `bun x tokscale@latest`,
|
|
172
|
-
})
|
|
173
|
-
)
|
|
172
|
+
}),
|
|
173
|
+
),
|
|
174
174
|
);
|
|
175
175
|
|
|
176
176
|
// Configuration-only
|
|
177
|
-
export default defineTool((install, ctx) => install().zsh((shell) => shell.aliases({ ll:
|
|
177
|
+
export default defineTool((install, ctx) => install().zsh((shell) => shell.aliases({ ll: "ls -la" })));
|
|
178
178
|
```
|
|
179
179
|
|
|
180
180
|
### Zsh Plugin
|
|
@@ -182,13 +182,12 @@ export default defineTool((install, ctx) => install().zsh((shell) => shell.alias
|
|
|
182
182
|
Clone Git repositories for zsh plugins.
|
|
183
183
|
|
|
184
184
|
```typescript
|
|
185
|
-
import { defineTool } from
|
|
185
|
+
import { defineTool } from "@alexgorbatchev/dotfiles";
|
|
186
186
|
|
|
187
187
|
export default defineTool((install, ctx) =>
|
|
188
|
-
install(
|
|
189
|
-
repo:
|
|
190
|
-
})
|
|
191
|
-
.zsh((shell) => shell.always(`source "${ctx.currentDir}/zsh-vi-mode.plugin.zsh"`))
|
|
188
|
+
install("zsh-plugin", {
|
|
189
|
+
repo: "jeffreytse/zsh-vi-mode",
|
|
190
|
+
}).zsh((shell) => shell.always(`source "${ctx.currentDir}/zsh-vi-mode.plugin.zsh"`)),
|
|
192
191
|
);
|
|
193
192
|
```
|
|
194
193
|
|
|
@@ -222,12 +221,12 @@ The `manual` method is the unified approach for binary installation from your do
|
|
|
222
221
|
**Example:** Including a custom deployment script with your dotfiles.
|
|
223
222
|
|
|
224
223
|
```typescript
|
|
225
|
-
import { defineTool } from
|
|
224
|
+
import { defineTool } from "@alexgorbatchev/dotfiles";
|
|
226
225
|
|
|
227
226
|
export default defineTool((install, ctx) =>
|
|
228
|
-
install(
|
|
229
|
-
binaryPath:
|
|
230
|
-
}).bin(
|
|
227
|
+
install("manual", {
|
|
228
|
+
binaryPath: "./scripts/deploy.sh",
|
|
229
|
+
}).bin("deploy"),
|
|
231
230
|
);
|
|
232
231
|
```
|
|
233
232
|
|
|
@@ -241,18 +240,18 @@ export default defineTool((install, ctx) =>
|
|
|
241
240
|
**Example:** Setting up shell aliases and environment variables.
|
|
242
241
|
|
|
243
242
|
```typescript
|
|
244
|
-
import { defineTool } from
|
|
243
|
+
import { defineTool } from "@alexgorbatchev/dotfiles";
|
|
245
244
|
|
|
246
245
|
export default defineTool((install, ctx) =>
|
|
247
246
|
install().zsh((shell) =>
|
|
248
247
|
shell
|
|
249
248
|
.aliases({
|
|
250
|
-
ll:
|
|
249
|
+
ll: "ls -la",
|
|
251
250
|
})
|
|
252
251
|
.env({
|
|
253
|
-
EDITOR:
|
|
254
|
-
})
|
|
255
|
-
)
|
|
252
|
+
EDITOR: "vim",
|
|
253
|
+
}),
|
|
254
|
+
),
|
|
256
255
|
);
|
|
257
256
|
```
|
|
258
257
|
|
|
@@ -272,17 +271,17 @@ All installation methods support an `env` parameter for setting environment vari
|
|
|
272
271
|
|
|
273
272
|
```typescript
|
|
274
273
|
// Static environment variables
|
|
275
|
-
install(
|
|
276
|
-
repo:
|
|
277
|
-
env: { CUSTOM_FLAG:
|
|
278
|
-
}).bin(
|
|
274
|
+
install("github-release", {
|
|
275
|
+
repo: "owner/tool",
|
|
276
|
+
env: { CUSTOM_FLAG: "true" },
|
|
277
|
+
}).bin("tool");
|
|
279
278
|
|
|
280
279
|
// Dynamic environment variables
|
|
281
|
-
install(
|
|
282
|
-
url:
|
|
283
|
-
shell:
|
|
280
|
+
install("curl-script", {
|
|
281
|
+
url: "https://example.com/install.sh",
|
|
282
|
+
shell: "bash",
|
|
284
283
|
env: (ctx) => ({ INSTALL_DIR: ctx.stagingDir }),
|
|
285
|
-
}).bin(
|
|
284
|
+
}).bin("tool");
|
|
286
285
|
```
|
|
287
286
|
|
|
288
287
|
Dynamic `env` functions receive a context with:
|
|
@@ -11,12 +11,12 @@ The `zsh-plugin` installation method clones Git repositories for zsh plugins and
|
|
|
11
11
|
The simplest way to install a plugin from GitHub:
|
|
12
12
|
|
|
13
13
|
```typescript
|
|
14
|
-
import { defineTool } from
|
|
14
|
+
import { defineTool } from "@alexgorbatchev/dotfiles";
|
|
15
15
|
|
|
16
16
|
export default defineTool((install) =>
|
|
17
|
-
install(
|
|
18
|
-
repo:
|
|
19
|
-
})
|
|
17
|
+
install("zsh-plugin", {
|
|
18
|
+
repo: "jeffreytse/zsh-vi-mode",
|
|
19
|
+
}),
|
|
20
20
|
);
|
|
21
21
|
```
|
|
22
22
|
|
|
@@ -27,12 +27,12 @@ The plugin is automatically sourced - no additional configuration needed!
|
|
|
27
27
|
For plugins hosted elsewhere (GitLab, Bitbucket, private repos):
|
|
28
28
|
|
|
29
29
|
```typescript
|
|
30
|
-
import { defineTool } from
|
|
30
|
+
import { defineTool } from "@alexgorbatchev/dotfiles";
|
|
31
31
|
|
|
32
32
|
export default defineTool((install) =>
|
|
33
|
-
install(
|
|
34
|
-
url:
|
|
35
|
-
})
|
|
33
|
+
install("zsh-plugin", {
|
|
34
|
+
url: "https://gitlab.com/user/custom-plugin.git",
|
|
35
|
+
}),
|
|
36
36
|
);
|
|
37
37
|
```
|
|
38
38
|
|
|
@@ -59,13 +59,13 @@ By default (`auto: true`), zsh plugins are automatically installed during the `d
|
|
|
59
59
|
To disable auto-installation and require explicit `dotfiles install`:
|
|
60
60
|
|
|
61
61
|
```typescript
|
|
62
|
-
import { defineTool } from
|
|
62
|
+
import { defineTool } from "@alexgorbatchev/dotfiles";
|
|
63
63
|
|
|
64
64
|
export default defineTool((install) =>
|
|
65
|
-
install(
|
|
66
|
-
repo:
|
|
65
|
+
install("zsh-plugin", {
|
|
66
|
+
repo: "jeffreytse/zsh-vi-mode",
|
|
67
67
|
auto: false, // Requires explicit `dotfiles install`
|
|
68
|
-
})
|
|
68
|
+
}),
|
|
69
69
|
);
|
|
70
70
|
```
|
|
71
71
|
|
|
@@ -74,13 +74,13 @@ export default defineTool((install) =>
|
|
|
74
74
|
Use `pluginName` when you want the plugin directory name to differ from the repository name:
|
|
75
75
|
|
|
76
76
|
```typescript
|
|
77
|
-
import { defineTool } from
|
|
77
|
+
import { defineTool } from "@alexgorbatchev/dotfiles";
|
|
78
78
|
|
|
79
79
|
export default defineTool((install) =>
|
|
80
|
-
install(
|
|
81
|
-
repo:
|
|
82
|
-
pluginName:
|
|
83
|
-
})
|
|
80
|
+
install("zsh-plugin", {
|
|
81
|
+
repo: "jeffreytse/zsh-vi-mode",
|
|
82
|
+
pluginName: "vi-mode", // Cloned to plugins/vi-mode instead of plugins/zsh-vi-mode
|
|
83
|
+
}),
|
|
84
84
|
);
|
|
85
85
|
```
|
|
86
86
|
|
|
@@ -89,13 +89,13 @@ export default defineTool((install) =>
|
|
|
89
89
|
If the plugin's source file doesn't follow standard naming conventions, specify it explicitly:
|
|
90
90
|
|
|
91
91
|
```typescript
|
|
92
|
-
import { defineTool } from
|
|
92
|
+
import { defineTool } from "@alexgorbatchev/dotfiles";
|
|
93
93
|
|
|
94
94
|
export default defineTool((install) =>
|
|
95
|
-
install(
|
|
96
|
-
repo:
|
|
97
|
-
source:
|
|
98
|
-
})
|
|
95
|
+
install("zsh-plugin", {
|
|
96
|
+
repo: "some-org/some-plugin",
|
|
97
|
+
source: "custom-init.zsh", // Use this file instead of auto-detection
|
|
98
|
+
}),
|
|
99
99
|
);
|
|
100
100
|
```
|
|
101
101
|
|
|
@@ -122,18 +122,17 @@ The installer checks for these files in order:
|
|
|
122
122
|
Use `.zsh()` to add environment variables or other shell configuration:
|
|
123
123
|
|
|
124
124
|
```typescript
|
|
125
|
-
import { defineTool } from
|
|
125
|
+
import { defineTool } from "@alexgorbatchev/dotfiles";
|
|
126
126
|
|
|
127
127
|
export default defineTool((install) =>
|
|
128
|
-
install(
|
|
129
|
-
repo:
|
|
130
|
-
})
|
|
131
|
-
.
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
)
|
|
128
|
+
install("zsh-plugin", {
|
|
129
|
+
repo: "jeffreytse/zsh-vi-mode",
|
|
130
|
+
}).zsh((shell) =>
|
|
131
|
+
shell.env({
|
|
132
|
+
ZVM_VI_INSERT_ESCAPE_BINDKEY: "jj",
|
|
133
|
+
ZVM_CURSOR_STYLE_ENABLED: "false",
|
|
134
|
+
}),
|
|
135
|
+
),
|
|
137
136
|
);
|
|
138
137
|
```
|
|
139
138
|
|