aboutsummaryrefslogtreecommitdiffstats
path: root/packages/meshbay-node/src/meshbay_node/cli
diff options
context:
space:
mode:
Diffstat (limited to 'packages/meshbay-node/src/meshbay_node/cli')
-rw-r--r--packages/meshbay-node/src/meshbay_node/cli/groups.py29
-rw-r--r--packages/meshbay-node/src/meshbay_node/cli/parser.py4
2 files changed, 29 insertions, 4 deletions
diff --git a/packages/meshbay-node/src/meshbay_node/cli/groups.py b/packages/meshbay-node/src/meshbay_node/cli/groups.py
index fca4800..b402930 100644
--- a/packages/meshbay-node/src/meshbay_node/cli/groups.py
+++ b/packages/meshbay-node/src/meshbay_node/cli/groups.py
@@ -33,6 +33,8 @@ def group(args) -> None:
flags.append("removable")
if r.get("ejected"):
flags.append("ejected")
+ if r.get("paused"):
+ flags.append("paused")
flag_str = f" ({', '.join(flags)})" if flags else ""
live = "" if r.get("available", True) else " [UNAVAILABLE]"
print(f" root {r['name']}{flag_str}{live}")
@@ -128,6 +130,8 @@ def root(args) -> None:
flags.append("removable")
if r.get("ejected"):
flags.append("EJECTED")
+ if r.get("paused"):
+ flags.append("PAUSED")
avail = "available" if r.get("available", True) else "UNAVAILABLE"
flags.append(avail)
print(f" {r['name']:<20} {', '.join(flags)}")
@@ -215,8 +219,29 @@ def root(args) -> None:
print(f"plugged root {name} — files are visible again")
return
- print("usage: meshbay-node root list|add|remove|set|eject|plug [name] "
- "[--group NAME]")
+ if sub == "pause":
+ name = args.target
+ if not name:
+ print("usage: meshbay-node root pause <name> [--group NAME]")
+ sys.exit(1)
+ _daemon_api(cfg, f"/api/groups/{group_id}/roots/{name}/pause",
+ method="PUT")
+ print(f"paused root {name} — indexed files stay listed, nothing new "
+ f"is indexed until resumed")
+ return
+
+ if sub == "resume":
+ name = args.target
+ if not name:
+ print("usage: meshbay-node root resume <name> [--group NAME]")
+ sys.exit(1)
+ _daemon_api(cfg, f"/api/groups/{group_id}/roots/{name}/resume",
+ method="PUT")
+ print(f"resumed root {name} — indexing continues in the background")
+ return
+
+ print("usage: meshbay-node root list|add|remove|set|eject|plug|pause|resume "
+ "[name] [--group NAME]")
sys.exit(1)
diff --git a/packages/meshbay-node/src/meshbay_node/cli/parser.py b/packages/meshbay-node/src/meshbay_node/cli/parser.py
index cfc4704..2a593b6 100644
--- a/packages/meshbay-node/src/meshbay_node/cli/parser.py
+++ b/packages/meshbay-node/src/meshbay_node/cli/parser.py
@@ -20,7 +20,7 @@ def build_parser() -> argparse.ArgumentParser:
"| operator pair: pair a "
"browser with this node | member list|invite|cancel|revoke|unpin "
"| group list|add|remove "
- "| root list|add|remove|set|eject|plug "
+ "| root list|add|remove|set|eject|plug|pause|resume "
"| gek init|rotate | file list|rm "
"| video rematch: re-resolve TMDB matches for a group's "
"videos "
@@ -44,7 +44,7 @@ def build_parser() -> argparse.ArgumentParser:
parser.add_argument("subcommand", nargs="?",
help="'pair' for operator; list|invite|revoke|unpin for "
"member; list|add|remove for group; "
- "list|add|remove|set|eject|plug for root; "
+ "list|add|remove|set|eject|plug|pause|resume for root; "
"init|rotate for gek; "
"list|rm for file; rematch for video; show|clear for "
"denylist; list|add|remove|reset for stun; "