From df34a871cbcf7a7943cf0b1935caa5ad66ce4ed4 Mon Sep 17 00:00:00 2001 From: rupa Date: Thu, 28 Mar 2013 23:30:55 -0400 Subject: [PATCH] Warn user if z's datafile path is a directory. Cause this means z will fill up the directory with temp files, and not work. --- README | 3 ++- z.1 | 3 ++- z.sh | 4 ++++ 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/README b/README index 6225b2d..ec5abc6 100644 --- a/README +++ b/README @@ -120,7 +120,8 @@ ENVIRONMENT FILES Data is stored in $HOME/.z. This can be overridden by setting the - $_Z_DATA environment variable. + $_Z_DATA environment variable. When initialized, z will raise an error + if this path is a directory, and not function correctly. A man page (z.1) is provided. diff --git a/z.1 b/z.1 index 2ba6de7..022a4b3 100644 --- a/z.1 +++ b/z.1 @@ -144,7 +144,8 @@ Directories must be full paths without trailing slashes. .SH FILES Data is stored in \fB$HOME/.z\fR. This can be overridden by setting the -\fB$_Z_DATA\fR environment variable. +\fB$_Z_DATA\fR environment variable. When initialized, \fBz\fR will raise an +error if this path is a directory, and not function correctly. .P A man page (\fBz.1\fR) is provided. .SH diff --git a/z.sh b/z.sh index 555b3b6..7e444ef 100644 --- a/z.sh +++ b/z.sh @@ -27,6 +27,10 @@ case $- in *) echo 'ERROR: z.sh is meant to be sourced, not directly executed.' esac +[ -d "${_Z_DATA:-$HOME/.z}" ] && { + echo "ERROR: z.sh's datafile (${_Z_DATA:-$HOME/.z}) is a directory." +} + _z() { local datafile="${_Z_DATA:-$HOME/.z}"