mirror of
https://github.com/fish-shell/fish-shell.git
synced 2024-12-01 06:53:39 +08:00
2157d91a5c
This was requested by a team member who would like for some tests to remain invokable (in thier own $HOME) directly via littlecheck without relying on the test driver to prep the environment. A comment explaining the rationale is also added so this doesn't get passed down as folklore "you need to include this for tests to run" even though no one understands why.
48 lines
1.6 KiB
Fish
48 lines
1.6 KiB
Fish
# Explicitly overriding HOME/XDG_CONFIG_HOME is only required if not invoking via `make test`
|
|
# RUN: env HOME="$(mktemp -d)" XDG_CONFIG_HOME="$(mktemp -d)" %fish -C 'set -g fish %fish' %s
|
|
|
|
mkdir -p $XDG_CONFIG_HOME/fish
|
|
|
|
# fish_variables
|
|
set -l target_file $XDG_CONFIG_HOME/fish/target_fish_variables
|
|
set -l fish_variables $XDG_CONFIG_HOME/fish/fish_variables
|
|
set -l backup_file $XDG_CONFIG_HOME/fish/fish_variables_backup
|
|
|
|
echo >$target_file
|
|
cp $target_file $backup_file
|
|
ln -sf $target_file $fish_variables
|
|
$fish -c 'set -U variable value'
|
|
|
|
if not test -L $fish_variables
|
|
echo fish_variables has been overwritten
|
|
else if cmp $target_file $backup_file >/dev/null
|
|
echo fish_variables was never written
|
|
else
|
|
echo fish_variables is still a symlink
|
|
end
|
|
# CHECK: fish_variables is still a symlink
|
|
|
|
|
|
# fish_history
|
|
set -l history_file $XDG_DATA_HOME/fish/fish_history
|
|
set -l target_file $XDG_DATA_HOME/fish/target_fish_history
|
|
set -l backup_file $XDG_DATA_HOME/fish/fish_history_backup
|
|
|
|
echo '- cmd: echo I will be deleted from history
|
|
when: 1614577746' >$target_file
|
|
cp $target_file $backup_file
|
|
ln -sf $target_file $history_file
|
|
# The one way to ensure non-interactive fish writes to the history file
|
|
$fish -c 'echo all | history delete deleted | grep echo'
|
|
# CHECK: [1] echo I will be deleted from history
|
|
|
|
if not test -L $history_file
|
|
echo fish_history has been overwritten
|
|
else if cmp $target_file $backup_file &>/dev/null
|
|
# cmp writes to stderr when one file is empty, thus &> above
|
|
echo fish_history was never written
|
|
else
|
|
echo fish_history is still a symlink
|
|
end
|
|
# CHECK: fish_history is still a symlink
|