hyf

Context-aware query service for Radroots
git clone https://radroots.dev/git/hyf.git
Log | Files | Refs | README | LICENSE

paths.mojo (2014B)


      1 from hyf_runtime.namespace import (
      2     hyf_runtime_namespace,
      3     join_runtime_path,
      4     validate_runtime_namespace,
      5 )
      6 from hyf_runtime.roots import (
      7     RuntimeRootSet,
      8     runtime_roots_for_unix_profile,
      9 )
     10 
     11 
     12 @fieldwise_init
     13 struct RuntimePaths(Copyable, Movable):
     14     var namespace: String
     15     var config_dir: String
     16     var config_path: String
     17     var data_dir: String
     18     var cache_dir: String
     19     var logs_dir: String
     20     var diagnostics_dir: String
     21     var run_dir: String
     22     var secrets_dir: String
     23     var identity_path: String
     24 
     25 
     26 def runtime_paths_for_namespace(
     27     roots: RuntimeRootSet, namespace: String
     28 ) raises -> RuntimePaths:
     29     validate_runtime_namespace(namespace)
     30 
     31     var config_dir = join_runtime_path(roots.config_root, namespace)
     32     var data_dir = join_runtime_path(roots.data_root, namespace)
     33     var cache_dir = join_runtime_path(roots.cache_root, namespace)
     34     var logs_dir = join_runtime_path(roots.logs_root, namespace)
     35     var run_dir = join_runtime_path(roots.run_root, namespace)
     36     var secrets_dir = join_runtime_path(roots.secrets_root, namespace)
     37 
     38     return RuntimePaths(
     39         namespace=String(namespace),
     40         config_dir=String(config_dir),
     41         config_path=join_runtime_path(config_dir, "config.toml"),
     42         data_dir=String(data_dir),
     43         cache_dir=String(cache_dir),
     44         logs_dir=String(logs_dir),
     45         diagnostics_dir=join_runtime_path(logs_dir, "diagnostics"),
     46         run_dir=String(run_dir),
     47         secrets_dir=String(secrets_dir),
     48         identity_path=join_runtime_path(secrets_dir, "identity.secret.json"),
     49     )
     50 
     51 
     52 def hyf_runtime_paths_for_roots(roots: RuntimeRootSet) raises -> RuntimePaths:
     53     return runtime_paths_for_namespace(roots, hyf_runtime_namespace())
     54 
     55 
     56 def hyf_runtime_paths_for_unix_profile(
     57     profile: String,
     58     user_home: String,
     59     repo_local_base_root: String,
     60 ) raises -> RuntimePaths:
     61     return hyf_runtime_paths_for_roots(
     62         runtime_roots_for_unix_profile(profile, user_home, repo_local_base_root)
     63     )