bm2 1.0.4 → 1.0.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/package.json +1 -1
- package/src/constants.ts +4 -2
- package/src/daemon.ts +0 -1
- package/src/index.ts +190 -190
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "bm2",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.6",
|
|
4
4
|
"description": "A blazing-fast, full-featured process manager built entirely on Bun native APIs. The modern PM2 replacement — zero Node.js dependencies, pure Bun performance.",
|
|
5
5
|
"main": "src/index.ts",
|
|
6
6
|
"module": "src/index.ts",
|
package/src/constants.ts
CHANGED
|
@@ -16,9 +16,11 @@
|
|
|
16
16
|
|
|
17
17
|
import { homedir } from "os";
|
|
18
18
|
import { join } from "path";
|
|
19
|
+
import packageJson from '../package.json' assert { type: 'json' };
|
|
19
20
|
|
|
20
|
-
|
|
21
|
-
export const
|
|
21
|
+
|
|
22
|
+
export const APP_NAME = packageJson.name;
|
|
23
|
+
export const VERSION = packageJson.version;
|
|
22
24
|
|
|
23
25
|
export const BM2_HOME = join(homedir(), ".bm2");
|
|
24
26
|
export const DAEMON_SOCKET = join(BM2_HOME, "daemon.sock");
|
package/src/daemon.ts
CHANGED
package/src/index.ts
CHANGED
|
@@ -863,195 +863,195 @@ async function cmdPrometheus() {
|
|
|
863
863
|
// ---------------------------------------------------------------------------
|
|
864
864
|
|
|
865
865
|
function printHelp() {
|
|
866
|
-
|
|
867
|
-
${colorize("⚡ BM2", "bold")} ${colorize(`v${VERSION}`, "dim")} — Bun Process Manager
|
|
868
|
-
|
|
869
|
-
${colorize("Usage:", "bold")} bm2 <command> [options]
|
|
870
|
-
|
|
871
|
-
${colorize("Process Management:", "cyan")}
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
${colorize("Logs:", "cyan")}
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
${colorize("Monitoring:", "cyan")}
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
${colorize("Persistence:", "cyan")}
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
${colorize("Deploy:", "cyan")}
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
${colorize("Environment:", "cyan")}
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
${colorize("Modules:", "cyan")}
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
${colorize("Daemon:", "cyan")}
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
${colorize("Start Options:", "dim")}
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
${colorize("Examples:", "dim")}
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
`);
|
|
947
|
-
}
|
|
948
|
-
|
|
949
|
-
// ---------------------------------------------------------------------------
|
|
950
|
-
// Main dispatch
|
|
951
|
-
// ---------------------------------------------------------------------------
|
|
952
|
-
|
|
953
|
-
const args = process.argv.slice(2);
|
|
954
|
-
const command = args[0];
|
|
955
|
-
const commandArgs = args.slice(1);
|
|
956
|
-
|
|
957
|
-
switch (command) {
|
|
958
|
-
case "start":
|
|
959
|
-
await cmdStart(commandArgs);
|
|
960
|
-
break;
|
|
961
|
-
case "stop":
|
|
962
|
-
await cmdStop(commandArgs);
|
|
963
|
-
break;
|
|
964
|
-
case "restart":
|
|
965
|
-
await cmdRestart(commandArgs);
|
|
966
|
-
break;
|
|
967
|
-
case "reload":
|
|
968
|
-
await cmdReload(commandArgs);
|
|
969
|
-
break;
|
|
970
|
-
case "delete":
|
|
971
|
-
case "del":
|
|
972
|
-
case "rm":
|
|
973
|
-
await cmdDelete(commandArgs);
|
|
974
|
-
break;
|
|
975
|
-
case "scale":
|
|
976
|
-
await cmdScale(commandArgs);
|
|
977
|
-
break;
|
|
978
|
-
case "list":
|
|
979
|
-
case "ls":
|
|
980
|
-
case "status":
|
|
981
|
-
await cmdList();
|
|
982
|
-
break;
|
|
983
|
-
case "describe":
|
|
984
|
-
case "show":
|
|
985
|
-
case "info":
|
|
986
|
-
await cmdDescribe(commandArgs);
|
|
987
|
-
break;
|
|
988
|
-
case "logs":
|
|
989
|
-
case "log":
|
|
990
|
-
await cmdLogs(commandArgs);
|
|
991
|
-
break;
|
|
992
|
-
case "flush":
|
|
993
|
-
await cmdFlush(commandArgs);
|
|
994
|
-
break;
|
|
995
|
-
case "monit":
|
|
996
|
-
case "monitor":
|
|
997
|
-
await cmdMonit();
|
|
998
|
-
break;
|
|
999
|
-
case "dashboard":
|
|
1000
|
-
if (commandArgs[0] === "stop") {
|
|
1001
|
-
await cmdDashboardStop();
|
|
1002
|
-
} else {
|
|
1003
|
-
await cmdDashboard(commandArgs);
|
|
866
|
+
console.log(`
|
|
867
|
+
${colorize("⚡ BM2", "bold")} ${colorize(`v${VERSION}`, "dim")} — Bun Process Manager
|
|
868
|
+
|
|
869
|
+
${colorize("Usage:", "bold")} bm2 <command> [options]
|
|
870
|
+
|
|
871
|
+
${colorize("Process Management:", "cyan")}
|
|
872
|
+
start <script|config> [opts] Start a process or ecosystem config
|
|
873
|
+
stop [id|name|all] Stop process(es)
|
|
874
|
+
restart [id|name|all] Restart process(es)
|
|
875
|
+
reload [id|name|all] Graceful zero-downtime reload
|
|
876
|
+
delete [id|name|all] Stop and remove process(es)
|
|
877
|
+
scale <id|name> <count> Scale to N instances
|
|
878
|
+
list | ls | status List all processes
|
|
879
|
+
describe <id|name> Show detailed process info
|
|
880
|
+
reset <id|name|all> Reset restart counters
|
|
881
|
+
|
|
882
|
+
${colorize("Logs:", "cyan")}
|
|
883
|
+
logs [id|name|all] [--lines N] Show recent logs
|
|
884
|
+
flush [id|name] Clear log files
|
|
885
|
+
|
|
886
|
+
${colorize("Monitoring:", "cyan")}
|
|
887
|
+
monit Show live metrics snapshot
|
|
888
|
+
dashboard [--port N] Start web dashboard
|
|
889
|
+
dashboard stop Stop web dashboard
|
|
890
|
+
prometheus Print Prometheus metrics
|
|
891
|
+
|
|
892
|
+
${colorize("Persistence:", "cyan")}
|
|
893
|
+
save Save current process list
|
|
894
|
+
resurrect Restore saved process list
|
|
895
|
+
startup [install|remove] Generate/install startup script
|
|
896
|
+
|
|
897
|
+
${colorize("Deploy:", "cyan")}
|
|
898
|
+
deploy <config> <env> [setup] Deploy using ecosystem config
|
|
899
|
+
|
|
900
|
+
${colorize("Environment:", "cyan")}
|
|
901
|
+
env set <name> <key> <val> Set env variable
|
|
902
|
+
env get <name> List env vars for a process
|
|
903
|
+
env delete <name> [key] Delete env variable(s)
|
|
904
|
+
env list List all env registries
|
|
905
|
+
|
|
906
|
+
${colorize("Modules:", "cyan")}
|
|
907
|
+
module install <name|url> Install a BM2 module
|
|
908
|
+
module uninstall <name> Remove a module
|
|
909
|
+
module list List installed modules
|
|
910
|
+
|
|
911
|
+
${colorize("Daemon:", "cyan")}
|
|
912
|
+
ping Check if daemon is alive
|
|
913
|
+
kill Kill the daemon and all processes
|
|
914
|
+
sendSignal <sig> <id|name> Send OS signal to process
|
|
915
|
+
|
|
916
|
+
${colorize("Start Options:", "dim")}
|
|
917
|
+
--name, -n <name> Process name
|
|
918
|
+
--instances, -i <N> Number of instances (cluster)
|
|
919
|
+
--exec-mode, -x <mode> fork or cluster
|
|
920
|
+
--watch, -w Watch for file changes
|
|
921
|
+
--cwd <path> Working directory
|
|
922
|
+
--interpreter <bin> Custom interpreter
|
|
923
|
+
--node-args <args> Extra runtime arguments
|
|
924
|
+
--max-memory-restart <size> e.g. 200M, 1G
|
|
925
|
+
--max-restarts <N> Max restart attempts
|
|
926
|
+
--cron, --cron-restart <expr> Cron-based restart schedule
|
|
927
|
+
--port, -p <port> Base port for cluster
|
|
928
|
+
--env <KEY=VALUE> Set environment variable
|
|
929
|
+
--no-autorestart Disable auto-restart
|
|
930
|
+
--log, -o <file> Custom stdout log path
|
|
931
|
+
--error, -e <file> Custom stderr log path
|
|
932
|
+
--namespace <ns> Namespace grouping
|
|
933
|
+
--wait-ready Wait for ready signal
|
|
934
|
+
--health-check-url <url> HTTP health check endpoint
|
|
935
|
+
-- <args...> Pass arguments to script
|
|
936
|
+
|
|
937
|
+
${colorize("Examples:", "dim")}
|
|
938
|
+
bm2 start app.ts
|
|
939
|
+
bm2 start server.ts --name api -i 4 --watch
|
|
940
|
+
bm2 start ecosystem.config.ts
|
|
941
|
+
bm2 restart api
|
|
942
|
+
bm2 scale api 8
|
|
943
|
+
bm2 logs api --lines 100
|
|
944
|
+
bm2 monit
|
|
945
|
+
bm2 save && bm2 resurrect
|
|
946
|
+
`);
|
|
1004
947
|
}
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
|
|
948
|
+
|
|
949
|
+
// ---------------------------------------------------------------------------
|
|
950
|
+
// Main dispatch
|
|
951
|
+
// ---------------------------------------------------------------------------
|
|
952
|
+
|
|
953
|
+
const args = process.argv.slice(2);
|
|
954
|
+
const command = args[0];
|
|
955
|
+
const commandArgs = args.slice(1);
|
|
956
|
+
|
|
957
|
+
switch (command) {
|
|
958
|
+
case "start":
|
|
959
|
+
await cmdStart(commandArgs);
|
|
960
|
+
break;
|
|
961
|
+
case "stop":
|
|
962
|
+
await cmdStop(commandArgs);
|
|
963
|
+
break;
|
|
964
|
+
case "restart":
|
|
965
|
+
await cmdRestart(commandArgs);
|
|
966
|
+
break;
|
|
967
|
+
case "reload":
|
|
968
|
+
await cmdReload(commandArgs);
|
|
969
|
+
break;
|
|
970
|
+
case "delete":
|
|
971
|
+
case "del":
|
|
972
|
+
case "rm":
|
|
973
|
+
await cmdDelete(commandArgs);
|
|
974
|
+
break;
|
|
975
|
+
case "scale":
|
|
976
|
+
await cmdScale(commandArgs);
|
|
977
|
+
break;
|
|
978
|
+
case "list":
|
|
979
|
+
case "ls":
|
|
980
|
+
case "status":
|
|
981
|
+
await cmdList();
|
|
982
|
+
break;
|
|
983
|
+
case "describe":
|
|
984
|
+
case "show":
|
|
985
|
+
case "info":
|
|
986
|
+
await cmdDescribe(commandArgs);
|
|
987
|
+
break;
|
|
988
|
+
case "logs":
|
|
989
|
+
case "log":
|
|
990
|
+
await cmdLogs(commandArgs);
|
|
991
|
+
break;
|
|
992
|
+
case "flush":
|
|
993
|
+
await cmdFlush(commandArgs);
|
|
994
|
+
break;
|
|
995
|
+
case "monit":
|
|
996
|
+
case "monitor":
|
|
997
|
+
await cmdMonit();
|
|
998
|
+
break;
|
|
999
|
+
case "dashboard":
|
|
1000
|
+
if (commandArgs[0] === "stop") {
|
|
1001
|
+
await cmdDashboardStop();
|
|
1002
|
+
} else {
|
|
1003
|
+
await cmdDashboard(commandArgs);
|
|
1004
|
+
}
|
|
1005
|
+
break;
|
|
1006
|
+
case "prometheus":
|
|
1007
|
+
await cmdPrometheus();
|
|
1008
|
+
break;
|
|
1009
|
+
case "save":
|
|
1010
|
+
case "dump":
|
|
1011
|
+
await cmdSave();
|
|
1012
|
+
break;
|
|
1013
|
+
case "resurrect":
|
|
1014
|
+
case "restore":
|
|
1015
|
+
await cmdResurrect();
|
|
1016
|
+
break;
|
|
1017
|
+
case "reset":
|
|
1018
|
+
await cmdReset(commandArgs);
|
|
1019
|
+
break;
|
|
1020
|
+
case "sendSignal":
|
|
1021
|
+
case "signal":
|
|
1022
|
+
await cmdSignal(commandArgs);
|
|
1023
|
+
break;
|
|
1024
|
+
case "ping":
|
|
1025
|
+
await cmdPing();
|
|
1026
|
+
break;
|
|
1027
|
+
case "kill":
|
|
1028
|
+
await cmdKill();
|
|
1029
|
+
break;
|
|
1030
|
+
case "deploy":
|
|
1031
|
+
await cmdDeploy(commandArgs);
|
|
1032
|
+
break;
|
|
1033
|
+
case "startup":
|
|
1034
|
+
await cmdStartup(commandArgs);
|
|
1035
|
+
break;
|
|
1036
|
+
case "env":
|
|
1037
|
+
await cmdEnv(commandArgs);
|
|
1038
|
+
break;
|
|
1039
|
+
case "module":
|
|
1040
|
+
await cmdModule(commandArgs);
|
|
1041
|
+
break;
|
|
1042
|
+
case "version":
|
|
1043
|
+
case "-v":
|
|
1044
|
+
case "--version":
|
|
1045
|
+
console.log(`${APP_NAME} v${VERSION}`);
|
|
1046
|
+
break;
|
|
1047
|
+
case "help":
|
|
1048
|
+
case "-h":
|
|
1049
|
+
case "--help":
|
|
1050
|
+
case undefined:
|
|
1051
|
+
printHelp();
|
|
1052
|
+
break;
|
|
1053
|
+
default:
|
|
1054
|
+
console.error(colorize(`Unknown command: ${command}`, "red"));
|
|
1055
|
+
console.error(`Run ${colorize("bm2 --help", "cyan")} for usage information.`);
|
|
1056
|
+
process.exit(1);
|
|
1057
1057
|
}
|