mirror of
https://github.com/nushell/nushell.git
synced 2024-12-01 12:54:16 +01:00
c42b588782
* Revert "History, more test coverage improvements, and refactorings. (#3217)"
This reverts commit 8fc8fc89aa
.
* Add tests
* Refactor .nu-env
* Change logic of Config write to logic of read()
* Fix reload always appends to old vars
* Fix reload always takes last_modified of global config
* Add reload_config in evaluation context
* Reload config after writing to it in cfg set / cfg set_into
* Add --no-history to cli options
* Use --no-history in tests
* Add comment about maybe_print_errors
* Get ctrl_exit var from context.global_config
* Use context.global_config in command "config"
* Add Readme in engine how env vars are now handled
* Update docs from autoenv command
* Move history_path from engine to nu_data
* Move load history out of if
* No let before return
* Add import for indexmap
51 lines
1.5 KiB
Rust
51 lines
1.5 KiB
Rust
use crate::{Command, CommandArgs, EvaluationContext};
|
|
use crate::{ConfigHolder, Host, Scope, ShellManager};
|
|
use nu_errors::ShellError;
|
|
use nu_source::Tag;
|
|
use nu_stream::InputStream;
|
|
use parking_lot::Mutex;
|
|
use std::sync::{atomic::AtomicBool, Arc};
|
|
|
|
pub struct RunnableContext {
|
|
pub input: InputStream,
|
|
pub shell_manager: ShellManager,
|
|
pub host: Arc<Mutex<Box<dyn Host>>>,
|
|
pub ctrl_c: Arc<AtomicBool>,
|
|
pub configs: Arc<Mutex<ConfigHolder>>,
|
|
pub current_errors: Arc<Mutex<Vec<ShellError>>>,
|
|
pub scope: Scope,
|
|
pub name: Tag,
|
|
}
|
|
|
|
impl RunnableContext {
|
|
pub fn from_command_args(args: CommandArgs) -> Self {
|
|
RunnableContext {
|
|
input: args.input,
|
|
scope: args.scope.clone(),
|
|
shell_manager: args.shell_manager,
|
|
host: args.host,
|
|
ctrl_c: args.ctrl_c,
|
|
configs: args.configs,
|
|
current_errors: args.current_errors,
|
|
name: args.call_info.name_tag,
|
|
}
|
|
}
|
|
|
|
pub fn from_evaluation_context(input: InputStream, ctx: &EvaluationContext) -> Self {
|
|
RunnableContext {
|
|
input,
|
|
shell_manager: ctx.shell_manager.clone(),
|
|
host: ctx.host.clone(),
|
|
ctrl_c: ctx.ctrl_c.clone(),
|
|
configs: ctx.configs.clone(),
|
|
current_errors: ctx.current_errors.clone(),
|
|
scope: ctx.scope.clone(),
|
|
name: Tag::unknown(),
|
|
}
|
|
}
|
|
|
|
pub fn get_command(&self, name: &str) -> Option<Command> {
|
|
self.scope.get_command(name)
|
|
}
|
|
}
|