From b87e02743698e914a75634e62e39b909ef01a72c Mon Sep 17 00:00:00 2001 From: Benny Zlotnik Date: Wed, 23 Jul 2025 15:17:02 +0300 Subject: [PATCH] preserve history from parent shell in zsh fixes #560 Signed-off-by: Benny Zlotnik --- packages/jumpstarter/jumpstarter/common/utils.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/packages/jumpstarter/jumpstarter/common/utils.py b/packages/jumpstarter/jumpstarter/common/utils.py index 7450aa764..b960bfdb0 100644 --- a/packages/jumpstarter/jumpstarter/common/utils.py +++ b/packages/jumpstarter/jumpstarter/common/utils.py @@ -83,7 +83,7 @@ def launch_shell( cmd = [shell] if not use_profiles: - cmd.extend(['--norc','--noprofile']) + cmd.extend(["--norc", "--noprofile"]) process = Popen(cmd, stdin=sys.stdin, stdout=sys.stdout, stderr=sys.stderr, env=env) return process.wait() @@ -109,7 +109,16 @@ def launch_shell( env = common_env | { "PS1": f"%F{{8}}%1~ %F{{yellow}}⚡%F{{white}}{context} %F{{yellow}}➤%f ", } - cmd = [shell, "--no-rcs"] + + if "HISTFILE" not in env: + env["HISTFILE"] = os.path.join(os.path.expanduser("~"), ".zsh_history") + + cmd = [shell] + if not use_profiles: + cmd.append("--no-rcs") + + cmd.extend(["-o", "inc_append_history", "-o", "share_history"]) + process = Popen(cmd, stdin=sys.stdin, stdout=sys.stdout, stderr=sys.stderr, env=env) return process.wait()