startall 0.0.3 → 0.0.8
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/.github/workflows/publish.yml +42 -6
- package/README.md +122 -122
- package/index.js +514 -340
- package/package.json +29 -27
|
@@ -1,23 +1,59 @@
|
|
|
1
|
-
name:
|
|
1
|
+
name: Release and Publish
|
|
2
2
|
|
|
3
3
|
on:
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- main
|
|
6
7
|
|
|
7
8
|
jobs:
|
|
8
|
-
publish:
|
|
9
|
+
release-and-publish:
|
|
9
10
|
runs-on: ubuntu-latest
|
|
10
11
|
permissions:
|
|
11
|
-
contents:
|
|
12
|
+
contents: write
|
|
12
13
|
id-token: write
|
|
13
14
|
steps:
|
|
14
15
|
- uses: actions/checkout@v4
|
|
16
|
+
with:
|
|
17
|
+
fetch-depth: 0
|
|
18
|
+
token: ${{ secrets.GITHUB_TOKEN }}
|
|
15
19
|
|
|
16
20
|
- uses: actions/setup-node@v4
|
|
17
21
|
with:
|
|
18
22
|
node-version: '20'
|
|
19
23
|
registry-url: 'https://registry.npmjs.org'
|
|
20
24
|
|
|
25
|
+
- name: Upgrade npm to latest
|
|
26
|
+
run: npm install -g npm@latest
|
|
27
|
+
|
|
21
28
|
- run: npm ci
|
|
22
29
|
|
|
23
|
-
-
|
|
30
|
+
- name: Configure Git
|
|
31
|
+
run: |
|
|
32
|
+
git config user.name "github-actions[bot]"
|
|
33
|
+
git config user.email "github-actions[bot]@users.noreply.github.com"
|
|
34
|
+
|
|
35
|
+
- name: Bump version
|
|
36
|
+
run: |
|
|
37
|
+
npm version patch -m "chore: bump version to %s [skip ci]"
|
|
38
|
+
|
|
39
|
+
- name: Push changes
|
|
40
|
+
run: git push --follow-tags
|
|
41
|
+
|
|
42
|
+
- name: Get version
|
|
43
|
+
id: version
|
|
44
|
+
run: echo "version=$(node -p "require('./package.json').version")" >> $GITHUB_OUTPUT
|
|
45
|
+
|
|
46
|
+
- name: Create GitHub Release
|
|
47
|
+
run: |
|
|
48
|
+
gh release create "v${{ steps.version.outputs.version }}" \
|
|
49
|
+
--title "v${{ steps.version.outputs.version }}" \
|
|
50
|
+
--notes "Automated release for version ${{ steps.version.outputs.version }}" \
|
|
51
|
+
--latest
|
|
52
|
+
env:
|
|
53
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
54
|
+
|
|
55
|
+
- name: Check npm version
|
|
56
|
+
run: npm --version
|
|
57
|
+
|
|
58
|
+
- name: Publish to npm
|
|
59
|
+
run: npm publish --access public
|
package/README.md
CHANGED
|
@@ -1,67 +1,67 @@
|
|
|
1
|
-
# 🚀 Start
|
|
2
|
-
|
|
3
|
-
> An interactive terminal UI for managing multiple npm scripts in parallel
|
|
4
|
-
|
|
5
|
-
## The Problem
|
|
6
|
-
|
|
7
|
-
Running multiple npm scripts during development is tedious:
|
|
8
|
-
|
|
9
|
-
- **Repetitive**: Manually typing `npm run frontend`, `npm run backend`, etc. every time
|
|
10
|
-
- **Cluttered terminal**: Multiple terminal tabs/windows get messy fast
|
|
11
|
-
- **No visibility**: Hard to tell if one process crashed while others are running
|
|
12
|
-
- **No control**: Can't easily restart a single service without restarting everything
|
|
13
|
-
- **No filtering**: Output from 4+ processes becomes unreadable noise
|
|
14
|
-
|
|
15
|
-
Traditional solutions fall short:
|
|
16
|
-
- `npm-run-all`/`concurrently`: No interactivity, just dumps output
|
|
17
|
-
- PM2: Overkill for dev workflows, designed for production
|
|
18
|
-
- Overmind: Amazing UX but requires tmux (not Windows-friendly)
|
|
19
|
-
- Manual shell scripts: No real-time status or control
|
|
20
|
-
|
|
21
|
-
## The Solution
|
|
22
|
-
|
|
23
|
-
**Start** is a lightweight, interactive TUI that gives you complete control over your development processes:
|
|
24
|
-
|
|
25
|
-
```
|
|
26
|
-
┌─ Starting in 7s... [Enter to start now] ─────────────┐
|
|
27
|
-
│ [x] frontend (npm run start:frontend) │
|
|
28
|
-
│ [x] backend (npm run start:backend) │
|
|
29
|
-
│ [ ] worker (npm run start:worker) │
|
|
30
|
-
│ [x] db (npm run start:db) │
|
|
31
|
-
│ │
|
|
32
|
-
│ ↑/↓ Navigate | Space: Toggle | Enter: Start │
|
|
33
|
-
└───────────────────────────────────────────────────────┘
|
|
34
|
-
|
|
35
|
-
After starting:
|
|
36
|
-
┌─ Processes ──────────────┬─ Output (filter: error) ───┐
|
|
37
|
-
│ [f] frontend ● Running │ [backend] Error: ECONNREF │
|
|
38
|
-
│ [b] backend ✖ Crashed │ [backend] Retrying... │
|
|
39
|
-
│ [w] worker ⏸ Stopped │ [frontend] Started on 3000 │
|
|
40
|
-
│ [d] db ● Running │ │
|
|
41
|
-
│ │ │
|
|
42
|
-
│ Space: Start/Stop │ │
|
|
43
|
-
│ r: Restart │ │
|
|
44
|
-
│ /: Filter output │ │
|
|
45
|
-
└──────────────────────────┴────────────────────────────┘
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
## Features
|
|
49
|
-
|
|
50
|
-
### ✅ Current
|
|
51
|
-
- **Auto-discovery**: Reads all scripts from `package.json` automatically
|
|
52
|
-
- **Smart defaults**: Remembers your last selection
|
|
53
|
-
- **10-second countdown**: Time to review/change selections before starting
|
|
54
|
-
- **Parallel execution**: Run multiple npm scripts simultaneously
|
|
55
|
-
- **Colored output**: Each process gets its own color prefix
|
|
56
|
-
|
|
57
|
-
### 🚧 Planned
|
|
58
|
-
- **Live status monitoring**: See which processes are running/crashed/stopped at a glance
|
|
59
|
-
- **Interactive controls**: Start, stop, and restart individual processes with keyboard shortcuts
|
|
60
|
-
- **Output filtering**: Search/filter logs across all processes in real-time
|
|
61
|
-
- **Cross-platform**: Works identically on Windows, Linux, and macOS
|
|
62
|
-
- **Tab view**: Switch between different process outputs
|
|
63
|
-
- **Resource monitoring**: CPU/memory usage per process
|
|
64
|
-
|
|
1
|
+
# 🚀 Start
|
|
2
|
+
|
|
3
|
+
> An interactive terminal UI for managing multiple npm scripts in parallel
|
|
4
|
+
|
|
5
|
+
## The Problem
|
|
6
|
+
|
|
7
|
+
Running multiple npm scripts during development is tedious:
|
|
8
|
+
|
|
9
|
+
- **Repetitive**: Manually typing `npm run frontend`, `npm run backend`, etc. every time
|
|
10
|
+
- **Cluttered terminal**: Multiple terminal tabs/windows get messy fast
|
|
11
|
+
- **No visibility**: Hard to tell if one process crashed while others are running
|
|
12
|
+
- **No control**: Can't easily restart a single service without restarting everything
|
|
13
|
+
- **No filtering**: Output from 4+ processes becomes unreadable noise
|
|
14
|
+
|
|
15
|
+
Traditional solutions fall short:
|
|
16
|
+
- `npm-run-all`/`concurrently`: No interactivity, just dumps output
|
|
17
|
+
- PM2: Overkill for dev workflows, designed for production
|
|
18
|
+
- Overmind: Amazing UX but requires tmux (not Windows-friendly)
|
|
19
|
+
- Manual shell scripts: No real-time status or control
|
|
20
|
+
|
|
21
|
+
## The Solution
|
|
22
|
+
|
|
23
|
+
**Start** is a lightweight, interactive TUI that gives you complete control over your development processes:
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
┌─ Starting in 7s... [Enter to start now] ─────────────┐
|
|
27
|
+
│ [x] frontend (npm run start:frontend) │
|
|
28
|
+
│ [x] backend (npm run start:backend) │
|
|
29
|
+
│ [ ] worker (npm run start:worker) │
|
|
30
|
+
│ [x] db (npm run start:db) │
|
|
31
|
+
│ │
|
|
32
|
+
│ ↑/↓ Navigate | Space: Toggle | Enter: Start │
|
|
33
|
+
└───────────────────────────────────────────────────────┘
|
|
34
|
+
|
|
35
|
+
After starting:
|
|
36
|
+
┌─ Processes ──────────────┬─ Output (filter: error) ───┐
|
|
37
|
+
│ [f] frontend ● Running │ [backend] Error: ECONNREF │
|
|
38
|
+
│ [b] backend ✖ Crashed │ [backend] Retrying... │
|
|
39
|
+
│ [w] worker ⏸ Stopped │ [frontend] Started on 3000 │
|
|
40
|
+
│ [d] db ● Running │ │
|
|
41
|
+
│ │ │
|
|
42
|
+
│ Space: Start/Stop │ │
|
|
43
|
+
│ r: Restart │ │
|
|
44
|
+
│ /: Filter output │ │
|
|
45
|
+
└──────────────────────────┴────────────────────────────┘
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## Features
|
|
49
|
+
|
|
50
|
+
### ✅ Current
|
|
51
|
+
- **Auto-discovery**: Reads all scripts from `package.json` automatically
|
|
52
|
+
- **Smart defaults**: Remembers your last selection
|
|
53
|
+
- **10-second countdown**: Time to review/change selections before starting
|
|
54
|
+
- **Parallel execution**: Run multiple npm scripts simultaneously
|
|
55
|
+
- **Colored output**: Each process gets its own color prefix
|
|
56
|
+
|
|
57
|
+
### 🚧 Planned
|
|
58
|
+
- **Live status monitoring**: See which processes are running/crashed/stopped at a glance
|
|
59
|
+
- **Interactive controls**: Start, stop, and restart individual processes with keyboard shortcuts
|
|
60
|
+
- **Output filtering**: Search/filter logs across all processes in real-time
|
|
61
|
+
- **Cross-platform**: Works identically on Windows, Linux, and macOS
|
|
62
|
+
- **Tab view**: Switch between different process outputs
|
|
63
|
+
- **Resource monitoring**: CPU/memory usage per process
|
|
64
|
+
|
|
65
65
|
## Installation
|
|
66
66
|
|
|
67
67
|
```bash
|
|
@@ -76,44 +76,44 @@ In any project with a `package.json`:
|
|
|
76
76
|
startall # uses startall.json if present
|
|
77
77
|
startall myconfig.json # uses custom config file
|
|
78
78
|
```
|
|
79
|
-
|
|
80
|
-
That's it! The TUI will:
|
|
81
|
-
|
|
82
|
-
1. Show all available npm scripts
|
|
83
|
-
2. Pre-select your last choices
|
|
84
|
-
3. Give you 10 seconds to adjust
|
|
85
|
-
4. Start all selected scripts in parallel
|
|
86
|
-
|
|
87
|
-
### Keyboard Shortcuts
|
|
88
|
-
|
|
89
|
-
**Selection Screen:**
|
|
90
|
-
- `↑`/`↓` - Navigate scripts
|
|
91
|
-
- `Space` - Toggle selection
|
|
92
|
-
- `Enter` - Start immediately (skip countdown)
|
|
93
|
-
- `Ctrl+C` - Exit
|
|
94
|
-
|
|
95
|
-
**Running Screen (planned):**
|
|
96
|
-
- `Space` - Start/stop selected process
|
|
97
|
-
- `r` - Restart selected process
|
|
98
|
-
- `/` - Filter output
|
|
99
|
-
- `Tab` - Switch between processes
|
|
100
|
-
- `Ctrl+C` - Stop all and exit
|
|
101
|
-
|
|
102
|
-
## Why Build This?
|
|
103
|
-
|
|
104
|
-
Existing tools either:
|
|
105
|
-
- Lack interactivity (concurrently, npm-run-all)
|
|
106
|
-
- Are production-focused (PM2, forever)
|
|
107
|
-
- Don't support Windows (Overmind, tmux-based tools)
|
|
108
|
-
- Are too heavyweight for simple dev workflows
|
|
109
|
-
|
|
110
|
-
**Start** is purpose-built for the development workflow: lightweight, cross-platform, and interactive.
|
|
111
|
-
|
|
112
|
-
## Technical Details
|
|
113
|
-
|
|
114
|
-
- Built with [OpenTUI](https://github.com/openmux/opentui) for a modern terminal UI
|
|
115
|
-
- Uses standard Node.js `child_process` (no PTY required = Windows support)
|
|
116
|
-
- Parses `package.json` scripts automatically
|
|
79
|
+
|
|
80
|
+
That's it! The TUI will:
|
|
81
|
+
|
|
82
|
+
1. Show all available npm scripts
|
|
83
|
+
2. Pre-select your last choices
|
|
84
|
+
3. Give you 10 seconds to adjust
|
|
85
|
+
4. Start all selected scripts in parallel
|
|
86
|
+
|
|
87
|
+
### Keyboard Shortcuts
|
|
88
|
+
|
|
89
|
+
**Selection Screen:**
|
|
90
|
+
- `↑`/`↓` - Navigate scripts
|
|
91
|
+
- `Space` - Toggle selection
|
|
92
|
+
- `Enter` - Start immediately (skip countdown)
|
|
93
|
+
- `Ctrl+C` - Exit
|
|
94
|
+
|
|
95
|
+
**Running Screen (planned):**
|
|
96
|
+
- `Space` - Start/stop selected process
|
|
97
|
+
- `r` - Restart selected process
|
|
98
|
+
- `/` - Filter output
|
|
99
|
+
- `Tab` - Switch between processes
|
|
100
|
+
- `Ctrl+C` - Stop all and exit
|
|
101
|
+
|
|
102
|
+
## Why Build This?
|
|
103
|
+
|
|
104
|
+
Existing tools either:
|
|
105
|
+
- Lack interactivity (concurrently, npm-run-all)
|
|
106
|
+
- Are production-focused (PM2, forever)
|
|
107
|
+
- Don't support Windows (Overmind, tmux-based tools)
|
|
108
|
+
- Are too heavyweight for simple dev workflows
|
|
109
|
+
|
|
110
|
+
**Start** is purpose-built for the development workflow: lightweight, cross-platform, and interactive.
|
|
111
|
+
|
|
112
|
+
## Technical Details
|
|
113
|
+
|
|
114
|
+
- Built with [OpenTUI](https://github.com/openmux/opentui) for a modern terminal UI
|
|
115
|
+
- Uses standard Node.js `child_process` (no PTY required = Windows support)
|
|
116
|
+
- Parses `package.json` scripts automatically
|
|
117
117
|
- Saves configuration in `startall.json`:
|
|
118
118
|
```json
|
|
119
119
|
{
|
|
@@ -124,23 +124,23 @@ Existing tools either:
|
|
|
124
124
|
```
|
|
125
125
|
- `include` (optional): if defined, only scripts matching these patterns are shown
|
|
126
126
|
- `ignore`: scripts matching these patterns are hidden
|
|
127
|
-
- Both support wildcards (`*`)
|
|
128
|
-
|
|
129
|
-
## Roadmap
|
|
130
|
-
|
|
131
|
-
- [ ] Interactive process control (start/stop/restart)
|
|
132
|
-
- [ ] Real-time status indicators
|
|
133
|
-
- [ ] Output filtering and search
|
|
134
|
-
- [ ] Tab view for individual process logs
|
|
135
|
-
- [ ] Resource monitoring
|
|
136
|
-
- [ ] Custom color schemes
|
|
137
|
-
- [ ] Configuration file support
|
|
138
|
-
- [ ] Watch mode (restart on file changes)
|
|
139
|
-
|
|
140
|
-
## Contributing
|
|
141
|
-
|
|
142
|
-
PRs welcome! This is a tool built by developers, for developers.
|
|
143
|
-
|
|
144
|
-
## License
|
|
145
|
-
|
|
146
|
-
MIT
|
|
127
|
+
- Both support wildcards (`*`)
|
|
128
|
+
|
|
129
|
+
## Roadmap
|
|
130
|
+
|
|
131
|
+
- [ ] Interactive process control (start/stop/restart)
|
|
132
|
+
- [ ] Real-time status indicators
|
|
133
|
+
- [ ] Output filtering and search
|
|
134
|
+
- [ ] Tab view for individual process logs
|
|
135
|
+
- [ ] Resource monitoring
|
|
136
|
+
- [ ] Custom color schemes
|
|
137
|
+
- [ ] Configuration file support
|
|
138
|
+
- [ ] Watch mode (restart on file changes)
|
|
139
|
+
|
|
140
|
+
## Contributing
|
|
141
|
+
|
|
142
|
+
PRs welcome! This is a tool built by developers, for developers.
|
|
143
|
+
|
|
144
|
+
## License
|
|
145
|
+
|
|
146
|
+
MIT
|