summaryrefslogtreecommitdiff
path: root/src/cli.rs
diff options
context:
space:
mode:
authorOgulcan Celik <ogulcancelik@gmail.com>2026-04-26 02:07:33 +0300
committerOgulcan Celik <ogulcancelik@gmail.com>2026-04-26 02:07:33 +0300
commit3d1ef155bf9846f39725bf22c54666da2bc42330 (patch)
treef4b4c3eca6c6f821dbfe86bcee0fd6a5d9ab9da9 /src/cli.rs
parentef4182efd9f15e6c13d91d45e525b094cdcee2fe (diff)
feat: add live config reload
Diffstat (limited to 'src/cli.rs')
-rw-r--r--src/cli.rs14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/cli.rs b/src/cli.rs
index feb24c70..8421863a 100644
--- a/src/cli.rs
+++ b/src/cli.rs
@@ -49,6 +49,7 @@ fn run_server_command(args: &[String]) -> std::io::Result<Option<i32>> {
match subcommand {
"stop" => server_stop(&args[1..]).map(Some),
+ "reload-config" => server_reload_config(&args[1..]).map(Some),
"help" | "--help" | "-h" => {
print_server_help();
Ok(Some(0))
@@ -163,6 +164,18 @@ fn server_stop(args: &[String]) -> std::io::Result<i32> {
send_ok_request(Method::ServerStop(EmptyParams::default()))
}
+fn server_reload_config(args: &[String]) -> std::io::Result<i32> {
+ if !args.is_empty() {
+ eprintln!("usage: herdr server reload-config");
+ return Ok(2);
+ }
+
+ print_response(&send_request(&Request {
+ id: "cli:server:reload-config".into(),
+ method: Method::ServerReloadConfig(EmptyParams::default()),
+ })?)
+}
+
fn workspace_list(args: &[String]) -> std::io::Result<i32> {
if !args.is_empty() {
eprintln!("usage: herdr workspace list");
@@ -1041,6 +1054,7 @@ fn print_server_help() {
eprintln!("herdr server commands:");
eprintln!(" herdr server run as headless server");
eprintln!(" herdr server stop stop the running server via the api socket");
+ eprintln!(" herdr server reload-config reload config.toml in the running server");
}
fn print_workspace_help() {