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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bm2",
3
- "version": "1.0.4",
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
- export const APP_NAME = "bm2";
21
- export const VERSION = "1.0.0";
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
@@ -51,7 +51,6 @@ const metricsInterval = setInterval(() => {
51
51
  }, 2000);
52
52
 
53
53
  async function handleMessage(msg: DaemonMessage): Promise<DaemonResponse> {
54
- console.log("msg.type===>", msg)
55
54
  try {
56
55
  switch (msg.type) {
57
56
  case "start": {
package/src/index.ts CHANGED
@@ -863,195 +863,195 @@ async function cmdPrometheus() {
863
863
  // ---------------------------------------------------------------------------
864
864
 
865
865
  function printHelp() {
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
- `);
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
- 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);
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
  }