From 3a19ab12d8258fc91b9047f666277b813b209110 Mon Sep 17 00:00:00 2001 From: Matthias Beyer Date: Fri, 29 Jan 2016 20:36:37 +0100 Subject: [PATCH] Fix: Use env(HOME) instead of "~" --- libimagrt/src/runtime.rs | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/libimagrt/src/runtime.rs b/libimagrt/src/runtime.rs index 8da364bd..535a1981 100644 --- a/libimagrt/src/runtime.rs +++ b/libimagrt/src/runtime.rs @@ -32,8 +32,19 @@ impl<'a> Runtime<'a> { * */ pub fn new(cli_spec: App<'a, 'a, 'a, 'a, 'a, 'a>) -> Result, RuntimeError> { + use std::env; + let matches = cli_spec.get_matches(); - let rtp : PathBuf = matches.value_of("runtimepath").unwrap_or("~/.imag/").into(); + let rtp : PathBuf = matches.value_of("runtimepath") + .map(PathBuf::from) + .unwrap_or_else(|| { + env::var("HOME") + .map(PathBuf::from) + .map(|mut p| { p.push(".imag"); p}) + .unwrap_or_else(|_| { + panic!("You seem to be $HOME-less. Please get a $HOME before using this software. We are sorry for you and hope you have some accommodation anyways."); + }) + }); let storepath = matches.value_of("storepath") .map(PathBuf::from) .unwrap_or({