forgemap 0.5.0-dev-main.91-6fe192c → 0.5.0-dev.89-5f2e4a1
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 +7 -8
- package/dist/bin/forgemap.mjs +347 -457
- package/dist/bin/forgemap.mjs.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -27,7 +27,7 @@ That's it. Every repo lands at a predictable `<root>/<forge.dir>/<owner>/<repo>`
|
|
|
27
27
|
|
|
28
28
|
- **🗂️ Predictable layout** — every clone goes to `<root>/<forge.dir>/<owner>/<repo>`, configured once.
|
|
29
29
|
- **🚪 Flexible slug syntax** — `owner/repo`, `forge:owner/repo`, full HTTPS URLs, or SSH (`git@…:…`).
|
|
30
|
-
- **🔍
|
|
30
|
+
- **🔍 Fuzzy search** — `forgemap search <term>` finds local repos by owner or repo name (powered by [Fuse.js](https://www.fusejs.io/)); `cd`, `path` and `open` take the same fuzzy terms.
|
|
31
31
|
- **🤖 Forge-aware** — `type: 'github'` shells out to `gh`; `type: 'git'` uses plain `git clone` with no extra dependencies.
|
|
32
32
|
- **🔁 Mass sync + status** — `forgemap sync` fetches every clone in parallel, `forgemap status` shows branch / dirty / ahead / behind per repo — narrow either to given owners or forges with a repeatable `--filter`.
|
|
33
33
|
- **📥 Import existing trees** — `forgemap import <path>` adopts a folder already laid out as `<server>/<owner>/<repo>`, reconciles each repo against its git remote (spotting moved or deleted remotes), and derives a config.
|
|
@@ -56,7 +56,7 @@ forgemap cd laravel # fuzzy match → jump in; bare `forgem
|
|
|
56
56
|
`forgemap cd` resolves the slug, walks/picks across your cloned repos, and actually changes directory because the shell wrapper from `shell-init` intercepts it before the binary runs. Every other subcommand falls through to the real binary unchanged. Hacking on forgemap itself? See [CONTRIBUTING.md → Trying the CLI locally](CONTRIBUTING.md#trying-the-cli-locally) — covers `pnpm setup`, `pnpm link --global .` and the shell-wrapper source.
|
|
57
57
|
|
|
58
58
|
<details>
|
|
59
|
-
<summary><strong>All commands</strong> — clone, cd, path,
|
|
59
|
+
<summary><strong>All commands</strong> — clone, cd, path, search, pick, open, sync/status, import, cleanup, delete, validate, shell-init, config</summary>
|
|
60
60
|
|
|
61
61
|
### Clone & jump
|
|
62
62
|
|
|
@@ -82,12 +82,11 @@ code "$(forgemap path forgemap)" # feed any tool that takes a directory
|
|
|
82
82
|
|
|
83
83
|
Prints where a repo lives — or *would* live, if it isn't cloned yet, which makes it useful for scripting a clone target. An exact `owner/repo` never touches the disk, so a strict slug always wins over a fuzzy match; ambiguous fuzzy terms error with the candidate list rather than guessing.
|
|
84
84
|
|
|
85
|
-
###
|
|
85
|
+
### Search and pick on demand
|
|
86
86
|
|
|
87
87
|
```bash
|
|
88
|
-
forgemap
|
|
89
|
-
forgemap
|
|
90
|
-
forgemap list forgemap | fzf # pipe-friendly path output
|
|
88
|
+
forgemap search forgemap # pretty tree (one line per match)
|
|
89
|
+
forgemap search forgemap | fzf # pipe-friendly path output
|
|
91
90
|
forgemap pick # interactive picker (consola prompt)
|
|
92
91
|
forgemap pick kirch # picker pre-filtered by fuzzy query
|
|
93
92
|
```
|
|
@@ -119,11 +118,11 @@ forgemap status --format json --filter kirchDev --filter TitusKirch
|
|
|
119
118
|
forgemap status --no-cache # rescan the disk instead of using the cached tree
|
|
120
119
|
```
|
|
121
120
|
|
|
122
|
-
`--filter` works on `status`, `sync` and `
|
|
121
|
+
`--filter` works on `status`, `sync` and `search`. It matches an **owner** or a **forge name** exactly (case-insensitive) — unlike `--query`, which is fuzzy.
|
|
123
122
|
|
|
124
123
|
`status`, `sync` and `cleanup` read a cached repo tree so repeated runs stay fast. Pass `--no-cache` to skip it and walk the disk again — the cache refreshes on its own, so you only need this right after cloning or moving repos by hand.
|
|
125
124
|
|
|
126
|
-
All tree output (`status`, `
|
|
125
|
+
All tree output (`status`, `search`, `import`) groups as `forge → owner → repo`. Network operations (`sync`, `import`, `cleanup`) run with a hard timeout and non-interactive SSH, so an unreachable host can never wedge a run.
|
|
127
126
|
|
|
128
127
|
### Adopt an existing layout — `import`
|
|
129
128
|
|