nixpkgs/pkgs/games/dwarf-fortress/wrapper/dwarf-fortress-init.in

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

46 lines
1.1 KiB
Plaintext
Raw Normal View History

2021-06-29 02:42:37 +00:00
#!@stdenv_shell@ -e
shopt -s extglob
[ -z "$DF_DIR" ] && export DF_DIR="${XDG_DATA_HOME:-$HOME/.local/share}/df_linux"
env_dir="@env@"
2018-05-11 04:55:06 +00:00
exe="$env_dir/@exe@"
update_path() {
local path="$1"
2021-06-29 02:42:37 +00:00
@mkdir@ -p "$DF_DIR/$(dirname "$path")"
# If user has replaced these data directories, let them stay.
if [ ! -e "$DF_DIR/$path" ] || [ -L "$DF_DIR/$path" ]; then
2021-06-29 02:42:37 +00:00
@rm@ -f "$DF_DIR/$path"
@ln@ -s "$env_dir/$path" "$DF_DIR/$path"
fi
}
forcecopy_path() {
local path="$1"
2021-06-29 02:42:37 +00:00
@mkdir@ -p "$DF_DIR/$(dirname "$path")"
@rm@ -rf "$DF_DIR/$path"
@cp@ -rL --no-preserve=all "$env_dir/$path" "$DF_DIR/$path"
}
2021-06-29 02:42:37 +00:00
@mkdir@ -p "$DF_DIR"
2021-06-29 02:42:37 +00:00
@cat@ <<EOF >&2
Using $DF_DIR as Dwarf Fortress overlay directory.
If you do any changes in it, don't forget to clean it when updating the game version!
We try to detect changes based on data directories being symbolic links -- keep this in mind.
EOF
cd "$env_dir"
for i in data/init/* data/!(init|index|announcement) raw; do
update_path "$i"
done
forcecopy_path data/index
# For some reason, it's needed to be writable...
forcecopy_path data/announcement
2016-02-07 12:54:49 +00:00
forcecopy_path data/help
forcecopy_path data/dipscript