From df8dc5e9fa5e5af70eda9011faef8d721cf177e2 Mon Sep 17 00:00:00 2001 From: Nathan Wagner Date: Sun, 1 Mar 2015 15:08:41 +0000 Subject: [PATCH] initial implementation of zpm-bug --- Makefile | 1 + zpm-bug | 99 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ zpm-note | 8 +++-- 3 files changed, 106 insertions(+), 2 deletions(-) create mode 100755 zpm-bug diff --git a/Makefile b/Makefile index fb3494e..195aca3 100644 --- a/Makefile +++ b/Makefile @@ -6,6 +6,7 @@ elftype: elf/elftype.c install: elftype install -D zpm $(DESTDIR)/bin/zpm install -D zpm-note $(DESTDIR)/bin/zpm-note + install -D zpm-bug $(DESTDIR)/bin/zpm-bug install -D zpm-sequence $(DESTDIR)/bin/zpm-sequence install -d -m2770 -o root -g adm $(DESTDIR)/var/lib/admin install -d -m2770 -o root -g adm $(DESTDIR)/var/lib/admin/notes diff --git a/zpm-bug b/zpm-bug new file mode 100755 index 0000000..892e60f --- /dev/null +++ b/zpm-bug @@ -0,0 +1,99 @@ +#!/bin/sh + +# program to submit a bug report + +# TODO +# gpg encrypt the report. this will require that +# the submitter have gpg set up, we might be able +# to use a system one +# +# allow a bug report from stdin + +set -e + +[ -f /etc/rc.conf ] && . /etc/rc.conf +[ -f /etc/zoranix.conf ] && . /etc/zoranix.conf + +name=$(logname) +host=$(hostname) +from=${REPLYTO:-${name}@${host}} + +signature= +if [ -r $HOME/.signature ]; then + signature=$(cat $HOME/.signature) +else + signature=$(printf '-- \n%s\n' $name) +fi + +# -n -- make a bug report out of a note +file=$(mktemp ${TMPDIR:-/tmp}/bugreport-XXXXXX) + +note= +package=${1:-general} +subject='zoranix bug report' + +if [ "$1" = "-n" ]; then + shift + if [ $# -eq 0 ]; then + rm $file + usage + fi + note=$1 + package=$(zpm note category $1) + subject=$(zpm note show $1 | head -1) + if [ $subject = "" ]; then + subject='zoranix bug report' + fi +fi + +cat >$file < $file +elif [ -f /etc/zpm/bugtemplate ]; then + cat /etc/zpm/bugtemplate >> $file +else +cat >>$file <>$file <&2 + echo "a copy of your report is in $file" 1>&2 + exit 1; +esac diff --git a/zpm-note b/zpm-note index e911544..72f5f40 100755 --- a/zpm-note +++ b/zpm-note @@ -37,7 +37,7 @@ shift findnote() { file=$(find $SPOOL -type f -name "$1") if [ -z "$file" ] ; then - [ -z "$quiet" ] || printf "no such note $1\n" + [ -z "$quiet" ] || printf "no such note $1\n" 1>&2 exit 1 fi echo $file @@ -46,13 +46,17 @@ findnote() { findopen() { file=$(find $SPOOL/open -type f -name "$1") if [ -z "$file" ] ; then - [ -z "$quiet" ] || printf "no such open note $1\n" + [ -z "$quiet" ] || printf "no such open note $1\n" 1>&2 exit 1 fi echo $file } case $cmd in + category) + notefile=$(findnote $1) + printf "%s\n" $(basename $(dirname $notefile)) + ;; list) case $1 in -a) find $SPOOL/ack -type f -printf '%P\n' | sort -n -- 2.40.0