Files
hakorune/src/config/env/box_factory_flags.rs
tomoaki 80f3403049 refactor(config): Phase 286A/B/287 - Config system consolidation
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>
2025-12-24 08:43:48 +09:00

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)
}