braeburn 2.2.4 → 2.2.6

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 CHANGED
@@ -38,12 +38,14 @@ Steps are grouped by system capability. For new setups, braeburn uses a conserva
38
38
  |---|---|---|---|
39
39
  | `pyenv` | Runtimes | off | `pyenv` or Homebrew |
40
40
  | `nvm` | Runtimes | off | `~/.nvm` |
41
+ | `rustup` | Runtimes | off | `rustup` |
41
42
  | `homebrew` | Apps & Packages | on | `brew` (required) |
42
43
  | `mas` | Apps & Packages | off | `mas` |
43
44
  | `macos` | Apps & Packages | off | — |
44
45
  | `npm` | CLI Tools | on | `npm` |
45
46
  | `braeburn` | CLI Tools | on | `npm` |
46
47
  | `pip` | CLI Tools | on | `pip3` |
48
+ | `uv` | CLI Tools | off | `uv` |
47
49
  | `dotnet` | CLI Tools | on | `dotnet` |
48
50
  | `aspire` | Aspire | off | `aspire` |
49
51
  | `ohmyzsh` | Shell | off | `~/.oh-my-zsh` |
package/dist/cli.js CHANGED
@@ -71,6 +71,7 @@ Step descriptions:
71
71
  System / Runtimes (default: off — larger changes, enabled intentionally):
72
72
  pyenv Upgrade pyenv, install latest Python 3.x (requires: pyenv or brew)
73
73
  nvm Install latest Node.js via nvm (requires: ~/.nvm)
74
+ rustup Update installed Rust toolchains and rustup (requires: rustup)
74
75
 
75
76
  System / Apps & Packages:
76
77
  homebrew Update Homebrew itself and all installed formulae
@@ -81,6 +82,7 @@ Step descriptions:
81
82
  npm Update global npm packages (requires: npm)
82
83
  braeburn Update braeburn CLI itself (requires: npm)
83
84
  pip Update global pip3 packages (requires: pip3) ⚠ may be fragile
85
+ uv Upgrade tools installed with uv (requires: uv)
84
86
  dotnet Update .NET global tools (requires: dotnet)
85
87
 
86
88
  System / Aspire:
@@ -98,7 +100,7 @@ Examples:
98
100
  braeburn -fy Same as above
99
101
  braeburn homebrew npm Run only the homebrew and npm steps
100
102
  braeburn homebrew -y Run only homebrew, auto-accept
101
- braeburn nvm pyenv Run only the runtime steps
103
+ braeburn nvm pyenv rustup Run only the runtime steps
102
104
  `)
103
105
  .action(async (stepArguments, updateOptions) => {
104
106
  const autoYes = updateOptions.yes === true || updateOptions.force === true;
package/dist/config.js CHANGED
@@ -3,7 +3,7 @@ import { dirname, join } from "node:path";
3
3
  import { homedir } from "node:os";
4
4
  import { parse, stringify } from "smol-toml";
5
5
  export const PROTECTED_STEP_IDS = new Set(["homebrew"]);
6
- export const LEGACY_DEFAULT_OFF_STEP_IDS = new Set(["nvm", "pyenv", "aspire"]);
6
+ export const LEGACY_DEFAULT_OFF_STEP_IDS = new Set(["nvm", "pyenv", "rustup", "uv", "aspire"]);
7
7
  export const CONSERVATIVE_DEFAULT_ON_STEP_IDS = new Set(["homebrew", "npm", "braeburn", "pip", "dotnet"]);
8
8
  const EMPTY_CONFIG = { steps: {} };
9
9
  const LOGO_SETTING_ID = "logo";
@@ -1,12 +1,14 @@
1
- import { pyenvStep, nvmStep, homebrewStep, masStep, ohmyzshStep, npmStep, pipStep, dotnetStep, aspireStep, macosStep, cleanupStep, braeburnStep, } from "./index.js";
1
+ import { pyenvStep, nvmStep, rustupStep, homebrewStep, masStep, ohmyzshStep, npmStep, pipStep, uvStep, dotnetStep, aspireStep, macosStep, cleanupStep, braeburnStep, } from "./index.js";
2
2
  const STEP_BY_ID = {
3
3
  pyenv: pyenvStep,
4
4
  nvm: nvmStep,
5
+ rustup: rustupStep,
5
6
  homebrew: homebrewStep,
6
7
  mas: masStep,
7
8
  macos: macosStep,
8
9
  npm: npmStep,
9
10
  pip: pipStep,
11
+ uv: uvStep,
10
12
  dotnet: dotnetStep,
11
13
  aspire: aspireStep,
12
14
  ohmyzsh: ohmyzshStep,
@@ -16,12 +18,14 @@ const STEP_BY_ID = {
16
18
  const STEP_EXECUTION_ORDER = [
17
19
  "pyenv",
18
20
  "nvm",
21
+ "rustup",
19
22
  "homebrew",
20
23
  "mas",
21
24
  "macos",
22
25
  "npm",
23
26
  "braeburn",
24
27
  "pip",
28
+ "uv",
25
29
  "dotnet",
26
30
  "aspire",
27
31
  "ohmyzsh",
@@ -9,8 +9,10 @@ export { default as masStep } from "./mas.js";
9
9
  export { default as ohmyzshStep } from "./ohmyzsh.js";
10
10
  export { default as npmStep } from "./npm.js";
11
11
  export { default as pipStep } from "./pip.js";
12
+ export { default as uvStep } from "./uv.js";
12
13
  export { default as pyenvStep } from "./pyenv.js";
13
14
  export { default as nvmStep } from "./nvm.js";
15
+ export { default as rustupStep } from "./rustup.js";
14
16
  export { default as dotnetStep } from "./dotnet.js";
15
17
  export { default as aspireStep } from "./aspire.js";
16
18
  export { default as macosStep } from "./macos.js";
@@ -6,8 +6,10 @@ export { default as masStep } from "./mas.js";
6
6
  export { default as ohmyzshStep } from "./ohmyzsh.js";
7
7
  export { default as npmStep } from "./npm.js";
8
8
  export { default as pipStep } from "./pip.js";
9
+ export { default as uvStep } from "./uv.js";
9
10
  export { default as pyenvStep } from "./pyenv.js";
10
11
  export { default as nvmStep } from "./nvm.js";
12
+ export { default as rustupStep } from "./rustup.js";
11
13
  export { default as dotnetStep } from "./dotnet.js";
12
14
  export { default as aspireStep } from "./aspire.js";
13
15
  export { default as macosStep } from "./macos.js";
@@ -0,0 +1,3 @@
1
+ import type { Step } from "./types.js";
2
+ declare const rustupStep: Step;
3
+ export default rustupStep;
@@ -0,0 +1,14 @@
1
+ import { checkCommandExists } from "./runtime.js";
2
+ const rustupStep = {
3
+ id: "rustup",
4
+ name: "Rust (rustup)",
5
+ categoryId: "runtimes",
6
+ description: "Update installed Rust toolchains and rustup",
7
+ async checkIsAvailable() {
8
+ return checkCommandExists("rustup");
9
+ },
10
+ async run(context) {
11
+ await context.runStep("rustup update");
12
+ },
13
+ };
14
+ export default rustupStep;
@@ -0,0 +1,3 @@
1
+ import type { Step } from "./types.js";
2
+ declare const uvStep: Step;
3
+ export default uvStep;
@@ -0,0 +1,14 @@
1
+ import { checkCommandExists } from "./runtime.js";
2
+ const uvStep = {
3
+ id: "uv",
4
+ name: "uv tools",
5
+ categoryId: "cli-tools",
6
+ description: "Upgrade all tools installed with uv",
7
+ async checkIsAvailable() {
8
+ return checkCommandExists("uv");
9
+ },
10
+ async run(context) {
11
+ await context.runStep("uv tool upgrade --all");
12
+ },
13
+ };
14
+ export default uvStep;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "braeburn",
3
- "version": "2.2.4",
3
+ "version": "2.2.6",
4
4
  "description": "macOS system updater CLI",
5
5
  "type": "module",
6
6
  "bin": {
@@ -28,7 +28,7 @@
28
28
  "smol-toml": "^1.8.0"
29
29
  },
30
30
  "devDependencies": {
31
- "@types/node": "^24.13.3",
31
+ "@types/node": "^26.4.1",
32
32
  "tsx": "^4.23.13",
33
33
  "typescript": "^7.0.2",
34
34
  "vitest": "^4.1.11"