about summary refs log tree commit diff
diff options
context:
space:
mode:
authorChristian Neukirchen <chneukirchen@gmail.com>2016-09-02 23:52:14 +0200
committerGitHub <noreply@github.com>2016-09-02 23:52:14 +0200
commitd50bfcecbaae8740d3da1250dd4c0f2561392b18 (patch)
tree537c9ac30b77bb705a8dd13244b78d3f5db459a9
parent8d3fa82d8246a08d2c7899963ad7cf61b7a4563c (diff)
parent81fbda6ff1a2bfe67ecef63c5ceb5990329767c1 (diff)
downloadmblaze-d50bfcecbaae8740d3da1250dd4c0f2561392b18.tar.gz
mblaze-d50bfcecbaae8740d3da1250dd4c0f2561392b18.tar.xz
mblaze-d50bfcecbaae8740d3da1250dd4c0f2561392b18.zip
Merge pull request #3 from escondida/profiles
Add $MBLAZE environment variable to set profile location
-rwxr-xr-xcontrib/mpeek2
-rw-r--r--man/mblaze.74
-rw-r--r--man/mcom.18
-rw-r--r--man/mgenmid.14
-rw-r--r--man/mseq.18
-rw-r--r--man/mshow.12
-rwxr-xr-xmcom19
-rw-r--r--mgenmid.c5
-rwxr-xr-xmless8
-rw-r--r--mscan.c2
-rw-r--r--mseq.c2
-rw-r--r--mshow.c2
-rw-r--r--seq.c16
13 files changed, 56 insertions, 26 deletions
diff --git a/contrib/mpeek b/contrib/mpeek
index bf568dc..529b31f 100755
--- a/contrib/mpeek
+++ b/contrib/mpeek
@@ -1,7 +1,7 @@
 #!/bin/sh
 # mpeek - wrapper around mscan with a different seq
 
-export MAILSEQ=$HOME/.mblaze/peek.seq
+export MAILSEQ=${MBLAZE:-$HOME/.mblaze}/peek.seq
 
 if [ -t 0 ]; then
 	mseq "$@"
diff --git a/man/mblaze.7 b/man/mblaze.7
index f87691a..ceafe4e 100644
--- a/man/mblaze.7
+++ b/man/mblaze.7
@@ -144,9 +144,9 @@ As usual with pipes, the sky is the limit.
 deals with messages (which are files),
 folders (which are Maildir folders),
 sequences (which are newline-separated lists of messages, possibly persisted on disk in
-.Pa ~/.mblaze/seq ) ,
+.Pa ${MBLAZE:-$HOME/.mblaze}/seq ) ,
 and the current message (kept as a symlink in
-.Pa ~/.mblaze/cur ) .
+.Pa ${MBLAZE:-$HOME/.mblaze}/cur ) .
 .Pp
 Messages in the persisted sequence can be referred to using special
 syntax as explained in
diff --git a/man/mcom.1 b/man/mcom.1
index 69ea5d4..18a4dda 100644
--- a/man/mcom.1
+++ b/man/mcom.1
@@ -47,17 +47,21 @@ Delete the draft and quit.
 .Bl -tag -width Ds
 .It Ev EDITOR
 Editor used to compose mail.
+.It Ev MBLAZE
+Directory containing mblaze configuration.
+(Default:
+.Pa $HOME/.mblaze )
 .El
 .Sh FILES
 .Bl -tag -width Ds
 .It Pa snd.*
 Draft messages (kept in current directory)
-.It Pa ~/.mblaze/headers
+.It Pa ${MBLAZE:-$HOME/.mblaze}/headers
 Default headers for each mail.
 (Put your
 .Sq Li From\&:
 line there.)
-.It Pa ~/.signature
+.It Pa ${MBLAZE:-$HOME/.mblaze}/signature || ~/.signature
 Default signature.
 .El
 .Sh EXIT STATUS
diff --git a/man/mgenmid.1 b/man/mgenmid.1
index 6f70fee..9d8f646 100644
--- a/man/mgenmid.1
+++ b/man/mgenmid.1
@@ -19,7 +19,7 @@ The fully qualified domain name is computed by:
 Using
 .Sq Li "FQDN:"
 from
-.Pa "~/.mblaze/profile"
+.Pa "${MBLAZE:-$HOME/.mblaze}/profile"
 (if set).
 .It
 Resolving the current hostname.
@@ -27,7 +27,7 @@ Resolving the current hostname.
 Using the host part of the address in
 .Sq Li "Local-Mailbox:"
 from
-.Pa "~/.mblaze/profile"
+.Pa "${MBLAZE:-$HOME/.mblaze}/profile"
 (if set).
 .El
 .Pp
diff --git a/man/mseq.1 b/man/mseq.1
index 50b1029..07f33aa 100644
--- a/man/mseq.1
+++ b/man/mseq.1
@@ -68,10 +68,14 @@ and exit.
 .El
 .Sh ENVIRONMENT
 .Bl -tag -width Ds
+.It Ev MBLAZE
+Directory containing mblaze configuration.
+(Default:
+.Pa $HOME/.mblaze )
 .It Ev MAILCUR
 Symbolic link referring to the current message.
 (Default:
-.Pa ~/.mblaze/cur )
+.Pa ${MBLAZE:-$HOME/.mblaze}/cur )
 .It Ev MAILDOT
 When set to a file name, overrides the current message.
 (Prefer using
@@ -80,7 +84,7 @@ instead.)
 .It Ev MAILSEQ
 File were the sequence is stored.
 (Default:
-.Pa ~/.mblaze/seq )
+.Pa ${MBLAZE:-$HOME/.mblaze}/seq )
 .El
 .Sh EXIT STATUS
 .Ex -std
diff --git a/man/mshow.1 b/man/mshow.1
index f58d2ec..90cba25 100644
--- a/man/mshow.1
+++ b/man/mshow.1
@@ -99,7 +99,7 @@ parts,
 and re-encodes them into UTF-8 if necessary.
 .Pp
 Other filters can be specified in the file
-.Pa ~/.mblaze/filter
+.Pa ${MBLAZE:-$HOME/.mblaze}/filter
 in the format
 .D1 Ar type/subtype Ns Li \&: Ar command
 or
diff --git a/mcom b/mcom
index f720c2b..e7d8b40 100755
--- a/mcom
+++ b/mcom
@@ -18,7 +18,8 @@ msgdate() {
 	mdate
 }
 
-outbox=$(mhdr -h outbox ~/.mblaze/profile)
+MBLAZE=${MBLAZE:-$HOME/.mblaze}
+outbox=$(mhdr -h outbox "$MBLAZE/profile")
 if [ -z "$outbox" ]; then
 	i=0
 	while [ -f "snd.$i" ]; do
@@ -43,9 +44,9 @@ fi
 		echo "Cc: "
 		echo "Bcc: "
 		echo "Subject: "
-		from=$(mhdr -h local-mailbox ~/.mblaze/profile)
+		from=$(mhdr -h local-mailbox "$MBLAZE/profile")
 		[ "$from" ] && echo "From: $from"
-		cat ~/.mblaze/headers 2>/dev/null
+		cat "$MBLAZE/headers" 2>/dev/null
 		msgid
 		msgdate
 		echo
@@ -59,7 +60,7 @@ fi
 		echo "Cc: $(mhdr -d -A -h to:cc: "$1" | commajoin)"
 		echo "Bcc: "
 		echo "Subject: Re: $(mscan -f '%S' "$1")"
-		cat ~/.mblaze/headers 2>/dev/null
+		cat "$MBLAZE/headers" 2>/dev/null
 		mid=$(mhdr -h message-id "$1")
 		if [ "$mid" ]; then
 			echo -n "References:"
@@ -77,9 +78,15 @@ fi
 		echo
 	esac
 
-	if [ -f ~/.signature ]; then
+	if [ -f "$MBLAZE/signature" ]; then
+		SIGNATURE="$MBLAZE/signature"
+	elif [ -f ~/.signature ]; then
+		SIGNATURE="$HOME/.signature"
+	fi
+
+	if [ -n "$SIGNATURE" ]; then
 		printf '%s\n' '-- '
-		cat ~/.signature
+		cat "$SIGNATURE"
 	fi
 } >$draft
 
diff --git a/mgenmid.c b/mgenmid.c
index 1e57210..a9b878b 100644
--- a/mgenmid.c
+++ b/mgenmid.c
@@ -31,7 +31,7 @@ int main()
 	char hostbuf[1024];
 	char *host = 0;
 
-	char *f = blaze822_home_file(".mblaze/profile");
+	char *f = blaze822_home_file("profile");
 	struct message *config = blaze822(f);
 
 	if (config) // try FQDN: first
@@ -74,7 +74,8 @@ int main()
 	if (!host) {
 		fprintf(stderr,
 		    "mgenmid: failed to find a FQDN for the Message-ID.\n"
-		    " Define 'FQDN:' or 'Local-Mailbox:' in ~/.mblaze/profile\n"
+		    " Define 'FQDN:' or 'Local-Mailbox:' in"
+		    " ${MBLAZE:-$HOME/.mblaze}/profile\n"
 		    " or add a FQDN to /etc/hosts.\n");
 		exit(1);
 	}
diff --git a/mless b/mless
index 1a4a38b..1b0a014 100755
--- a/mless
+++ b/mless
@@ -65,7 +65,13 @@ nl="
 export MLESS_RAW=0
 export MLESS_HTML=0
 while :; do
-	[ -f $HOME/.mless ] && export LESSKEY=$HOME/.mless
+	if [ -f $MBLAZE/mless ]; then
+		export LESSKEY=$MBLAZE/mless
+	elif [ -f $HOME/.mblaze/mless ]; then
+		export LESSKEY=$HOME/.mblaze/mless
+	elif [ -f $HOME/.mless ]; then
+		export LESSKEY=$HOME/.mless
+	fi
 	LESSOPEN="|$0 --filter %s" \
 		less -Ps"mless %f?m (message %i of %m).." -R \
 			"+:e $(mscan -n .)$nl" //scan $(mscan -n :)
diff --git a/mscan.c b/mscan.c
index bd0951c..f3fdab9 100644
--- a/mscan.c
+++ b/mscan.c
@@ -517,7 +517,7 @@ main(int argc, char *argv[])
 	if (cols <= 40)
 		cols = 80;
 
-	char *f = blaze822_home_file(".mblaze/profile");
+	char *f = blaze822_home_file("profile");
 	struct message *config = blaze822(f);
 
 	if (config) {
diff --git a/mseq.c b/mseq.c
index 8a03a45..70ed1b2 100644
--- a/mseq.c
+++ b/mseq.c
@@ -186,7 +186,7 @@ stdinmode()
 		// XXX locking?
 		seqfile = getenv("MAILSEQ");
 		if (!seqfile)
-			seqfile = blaze822_home_file(".mblaze/seq");
+			seqfile = blaze822_home_file("seq");
 		snprintf(tmpfile, sizeof tmpfile, "%s-", seqfile);
 		snprintf(oldfile, sizeof oldfile, "%s.old", seqfile);
 		outfile = fopen(tmpfile, "w+");
diff --git a/mshow.c b/mshow.c
index 2111512..4342ed2 100644
--- a/mshow.c
+++ b/mshow.c
@@ -728,7 +728,7 @@ main(int argc, char *argv[])
 		if (!(qflag || rflag)) {
 			char *f = getenv("MAILFILTER");
 			if (!f)
-				f = blaze822_home_file(".mblaze/filter");
+				f = blaze822_home_file("filter");
 			if (f)
 				filters = blaze822(f);
 		}
diff --git a/seq.c b/seq.c
index 159c81c..3cbf131 100644
--- a/seq.c
+++ b/seq.c
@@ -21,6 +21,14 @@ blaze822_home_file(char *basename)
 {
 	static char path[PATH_MAX];
 	static char *homedir;
+	static char *profile;
+
+	if (!profile)
+		profile = getenv("MBLAZE");
+	if (profile) {
+		snprintf(path, sizeof path, "%s/%s", profile, basename);
+		return path;
+	}
 
 	if (!homedir)
 		homedir = getenv("HOME");
@@ -34,7 +42,7 @@ blaze822_home_file(char *basename)
 	if (!homedir)
 		return "/dev/null/homeless";
 
-	snprintf(path, sizeof path, "%s/%s", homedir, basename);
+	snprintf(path, sizeof path, "%s/.mblaze/%s", homedir, basename);
 
 	return path;
 }
@@ -49,7 +57,7 @@ blaze822_seq_open(char *file)
 	if (!file)
 		file = getenv("MAILSEQ");
 	if (!file)
-		file = blaze822_home_file(".mblaze/seq");
+		file = blaze822_home_file("seq");
 	fd = open(file, O_RDONLY);
 	if (!fd)
 		return 0;
@@ -138,7 +146,7 @@ blaze822_seq_cur(void)
 
 	char *curlink = getenv("MAILCUR");
 	if (!curlink)
-		curlink = blaze822_home_file(".mblaze/cur");
+		curlink = blaze822_home_file("cur");
 
 	int r = readlink(curlink, b, sizeof b - 1);
 	if (r < 0)
@@ -157,7 +165,7 @@ blaze822_seq_setcur(char *s)
 	char curtmplink[PATH_MAX];
 	char *curlink = getenv("MAILCUR");
 	if (!curlink)
-		curlink = blaze822_home_file(".mblaze/cur");
+		curlink = blaze822_home_file("cur");
 
 	if (snprintf(curtmplink, sizeof curtmplink, "%s-", curlink) >= PATH_MAX)
 		return -1;  // truncation