fix docs, and init stdlib when configuring
This commit is contained in:
parent
1b1ac3cd2b
commit
827458b06f
4 changed files with 16 additions and 7 deletions
|
|
@ -15,7 +15,7 @@ The following are important variables that will determine the runtime behavior o
|
|||
|
||||
| Variable | Default Value | Explanation |
|
||||
|-|-|-|
|
||||
| CFG_RELISH_POSIX | 1 | When on, enables POSIX style job control. [more information.](shell.md) |
|
||||
| CFG_RELISH_POSIX | 0 | When on, enables POSIX style job control. [more information.](shell.md) |
|
||||
| CFG_RELISH_ENV | 1 | When on, variables defined will be synchronized with environment variables. |
|
||||
| CFG_RELISH_PROMPT | (echo "λ ") | *note: this is a function not a variable*. This function will be called to output the prompt each time the REPL loops. |
|
||||
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ Relish is a language meant to iterate on the ideas and designs that were tested
|
|||
- TESTS TESTS TESTS
|
||||
|
||||
## Configuration
|
||||
[See docs here](CONFIGURATION.md)
|
||||
[See docs here](CONFIGURING.md)
|
||||
|
||||
## Compilation
|
||||
`$ cargo build`
|
||||
|
|
|
|||
|
|
@ -28,14 +28,16 @@ use relish::stdlib::{get_stdlib};
|
|||
fn main() {
|
||||
let mut rl = Editor::<()>::new();
|
||||
|
||||
const HIST_FILE: &str = ".relish_hist";
|
||||
const CONFIG_FILE_DEFAULT: &str = ".relishrc";
|
||||
const HIST_FILE: &str = "/.relish_hist";
|
||||
const CONFIG_FILE_DEFAULT: &str = "/.relishrc";
|
||||
|
||||
let mut hist: String = "".to_owned();
|
||||
let mut cfg: String = "".to_owned();
|
||||
|
||||
if let Some(home) = home_dir() {
|
||||
if let Some(h) = home.to_str() {
|
||||
hist = h.to_owned() + HIST_FILE;
|
||||
cfg = h.to_owned() + CONFIG_FILE_DEFAULT;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -50,7 +52,7 @@ fn main() {
|
|||
|
||||
match env::var("RELISH_CFG_FILE") {
|
||||
Ok(s) => configure(s, vt.clone(), ft.clone()),
|
||||
Err(_) => configure(String::from(CONFIG_FILE_DEFAULT), vt.clone(), ft.clone())
|
||||
Err(_) => configure(cfg, vt.clone(), ft.clone())
|
||||
}
|
||||
|
||||
match get_stdlib(vt.clone()) {
|
||||
|
|
|
|||
|
|
@ -20,13 +20,20 @@ use crate::func::{FTable, Args, Function, Operation, func_declare};
|
|||
use crate::segment::{Ast, Ctr};
|
||||
use crate::lex::lex;
|
||||
use crate::eval::eval;
|
||||
use crate::stl::get_stdlib;
|
||||
use std::rc::Rc;
|
||||
use std::cell::RefCell;
|
||||
use std::fs;
|
||||
|
||||
pub fn configure(filename: String, vars: Rc<RefCell<VTable>>, funcs: Rc<RefCell<FTable>>) {
|
||||
define(vars.clone(), String::from("CFG_RELISH_POSIX"), Rc::new(Ctr::String(String::from("1"))));
|
||||
pub fn configure(filename: String, vars: Rc<RefCell<VTable>>, mut funcs: Rc<RefCell<FTable>>) {
|
||||
define(vars.clone(), String::from("CFG_RELISH_POSIX"), Rc::new(Ctr::String(String::from("0"))));
|
||||
define(vars.clone(), String::from("CFG_RELISH_ENV"), Rc::new(Ctr::String(String::from("1"))));
|
||||
|
||||
match get_stdlib(vars.clone()) {
|
||||
Ok(f) => funcs = f,
|
||||
Err(s) => println!("{}", s)
|
||||
}
|
||||
|
||||
func_declare(funcs.clone(), Rc::new(RefCell::new(Function{
|
||||
name: String::from("CFG_RELISH_PROMPT"),
|
||||
loose_syms: false,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue