Phase 286A: Macro environment variable consolidation
- src/config/env/macro_flags.rs: NYASH_MACRO_* flags centralized
- Removed duplicate ny_compiler_* functions (keep in selfhost_flags.rs)
- Fixed deprecation warning logic (return None when env var not set)
- Updated callers: src/macro/{ctx,engine,macro_box,macro_box_ny,mod}.rs
Phase 286B: Box Factory environment variable consolidation
- src/config/env/box_factory_flags.rs: NYASH_BOX_FACTORY_* flags centralized
- Updated callers: src/box_factory/mod.rs, src/runtime/plugin_loader*.rs
Phase 287: Config Catalog implementation
- src/config/env/catalog.rs: New catalog for all config modules
Fixes:
- Type mismatches: Added .unwrap_or(false) for Option<bool> returns (7 locations)
- Deprecation warnings: Fixed macro_toplevel_allow() & macro_box_child_runner() logic
- Module organization: Added module declarations in src/config/env.rs
Note: Files force-added with git add -f due to .gitignore env/ pattern
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
63 lines
1.8 KiB
Rust
63 lines
1.8 KiB
Rust
//! Box Factory environment variable configuration
|
|
//!
|
|
//! Phase 286B: Consolidates NYASH_BOX_FACTORY_* and NYASH_PLUGIN_* flags
|
|
//! Prevents direct std::env::{var,set_var,remove_var} access (AGENTS.md 5.3)
|
|
|
|
/// NYASH_BOX_FACTORY_POLICY: builtin_first, compat_plugin_first, strict_plugin_first
|
|
pub fn box_factory_policy() -> Option<String> {
|
|
std::env::var("NYASH_BOX_FACTORY_POLICY").ok()
|
|
}
|
|
|
|
/// Set NYASH_BOX_FACTORY_POLICY (used for tests/scenarios)
|
|
pub fn set_box_factory_policy(policy: &str) {
|
|
std::env::set_var("NYASH_BOX_FACTORY_POLICY", policy);
|
|
}
|
|
|
|
/// Reset NYASH_BOX_FACTORY_POLICY
|
|
pub fn reset_box_factory_policy() {
|
|
std::env::remove_var("NYASH_BOX_FACTORY_POLICY");
|
|
}
|
|
|
|
/// NYASH_USE_PLUGIN_BUILTINS enable
|
|
pub fn use_plugin_builtins() -> bool {
|
|
std::env::var("NYASH_USE_PLUGIN_BUILTINS")
|
|
.ok()
|
|
.map(|v| {
|
|
let v = v.to_ascii_lowercase();
|
|
v == "1" || v == "true" || v == "on"
|
|
})
|
|
.unwrap_or(false)
|
|
}
|
|
|
|
/// NYASH_PLUGIN_OVERRIDE_TYPES list (comma-separated)
|
|
pub fn plugin_override_types() -> Option<Vec<String>> {
|
|
std::env::var("NYASH_PLUGIN_OVERRIDE_TYPES").ok().map(|s| {
|
|
s.split(',')
|
|
.map(|p| p.trim().to_string())
|
|
.filter(|p| !p.is_empty())
|
|
.collect()
|
|
})
|
|
}
|
|
|
|
/// NYASH_DISABLE_PLUGINS enable
|
|
pub fn disable_plugins() -> bool {
|
|
std::env::var("NYASH_DISABLE_PLUGINS")
|
|
.ok()
|
|
.map(|v| {
|
|
let v = v.to_ascii_lowercase();
|
|
v == "1" || v == "true" || v == "on"
|
|
})
|
|
.unwrap_or(false)
|
|
}
|
|
|
|
/// NYASH_DEBUG_PLUGIN enable
|
|
pub fn debug_plugin() -> bool {
|
|
std::env::var("NYASH_DEBUG_PLUGIN")
|
|
.ok()
|
|
.map(|v| {
|
|
let v = v.to_ascii_lowercase();
|
|
v == "1" || v == "true" || v == "on"
|
|
})
|
|
.unwrap_or(false)
|
|
}
|