feat: update profile path resolution and enhance scripts for improved project adaptability
This commit is contained in:
@@ -8,6 +8,7 @@ instead of hardcoding root-level project paths.
|
||||
from __future__ import annotations
|
||||
|
||||
import json
|
||||
import argparse
|
||||
from pathlib import Path
|
||||
from typing import Any
|
||||
|
||||
@@ -70,3 +71,37 @@ def relative_to_root(path: Path, root: Path | None = None) -> str:
|
||||
return str(path.relative_to(base))
|
||||
except ValueError:
|
||||
return str(path)
|
||||
|
||||
|
||||
def main() -> None:
|
||||
parser = argparse.ArgumentParser(description=__doc__)
|
||||
subparsers = parser.add_subparsers(dest="command", required=True)
|
||||
|
||||
path_parser = subparsers.add_parser("path", help="Print a resolved profile path.")
|
||||
path_parser.add_argument("kind", choices=["knowledge", "inbox", "index"])
|
||||
path_parser.add_argument("--profile", default="fidelity")
|
||||
|
||||
config_parser = subparsers.add_parser("config", help="Print resolved workspace configuration as JSON.")
|
||||
config_parser.add_argument("--profile", default="fidelity")
|
||||
|
||||
args = parser.parse_args()
|
||||
if args.command == "path":
|
||||
if args.kind == "knowledge":
|
||||
print(knowledge_dir(args.profile))
|
||||
elif args.kind == "inbox":
|
||||
print(inbox_dir(args.profile))
|
||||
else:
|
||||
print(index_dir(args.profile))
|
||||
return
|
||||
|
||||
config = load_workspace_config(args.profile)
|
||||
config["resolved"] = {
|
||||
"knowledge_dir": str(knowledge_dir(args.profile)),
|
||||
"inbox_dir": str(inbox_dir(args.profile)),
|
||||
"index_dir": str(index_dir(args.profile)),
|
||||
}
|
||||
print(json.dumps(config, ensure_ascii=False, indent=2, sort_keys=True))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
||||
Reference in New Issue
Block a user