summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWilliam Giokas <1007380@gmail.com>2012-11-29 08:08:55 +0100
committerAllan McRae <allan@archlinux.org>2012-12-14 03:35:34 +0100
commit0c74ffd6b6e8f96d388c1e8219902beb369bf1b8 (patch)
treeacb80c0b0dd15429d49e700e9dc45764e130b95c
parent964640fbfcde48b7937a6c18964c78a3b11db3de (diff)
downloadpacman-0c74ffd6b6e8f96d388c1e8219902beb369bf1b8.tar.gz
pacman-0c74ffd6b6e8f96d388c1e8219902beb369bf1b8.tar.xz
Added LOGDEST variable
Places logs in a pre-defined location. The logs are always neatly labeled with package names and numbers, and this way can be more easily sent to network shares as they are written or compressed/cleaned en masse. Signed-off-by: William Giokas <1007380@gmail.com> Signed-off-by: Allan McRae <allan@archlinux.org>
-rw-r--r--doc/makepkg.conf.5.txt5
-rw-r--r--etc/makepkg.conf.in2
-rw-r--r--scripts/makepkg.sh.in11
3 files changed, 17 insertions, 1 deletions
diff --git a/doc/makepkg.conf.5.txt b/doc/makepkg.conf.5.txt
index 4172d219..052b3429 100644
--- a/doc/makepkg.conf.5.txt
+++ b/doc/makepkg.conf.5.txt
@@ -231,6 +231,11 @@ Options
in the current directory. Many people like to keep all source package files
in a central location for easy cleanup, so this path can be set here.
+**LOGDEST=**"/path/to/folder"::
+ If this value is not set, log files are written to the current
+ directory. This centralizes the log location, facilitating cleanup
+ and compression.
+
**PACKAGER=**"John Doe <john@example.com>"::
This value is used when querying a package to see who was the builder.
It is recommended you change this to your name and email address.
diff --git a/etc/makepkg.conf.in b/etc/makepkg.conf.in
index 0de85c95..1436042a 100644
--- a/etc/makepkg.conf.in
+++ b/etc/makepkg.conf.in
@@ -106,6 +106,8 @@ PURGE_TARGETS=(usr/{,share}/info/dir .packlist *.pod)
#SRCDEST=/home/sources
#-- Source packages: specify a fixed directory where all src packages will be placed
#SRCPKGDEST=/home/srcpackages
+#-- Log files: specify a fixed directory where all log files will be placed
+#LOGDEST=/home/makepkglogs
#-- Packager: name/email of the person or organization building packages
#PACKAGER="John Doe <john@doe.com>"
#-- Specify a key to use for package signing
diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
index 274aded2..e4e76cd1 100644
--- a/scripts/makepkg.sh.in
+++ b/scripts/makepkg.sh.in
@@ -1362,7 +1362,7 @@ run_function() {
local ret=0
if (( LOGGING )); then
local fullver=$(get_full_version)
- local BUILDLOG="${startdir}/${pkgbase}-${fullver}-${CARCH}-$pkgfunc.log"
+ local BUILDLOG="$LOGDEST/${pkgbase}-${fullver}-${CARCH}-$pkgfunc.log"
if [[ -f $BUILDLOG ]]; then
local i=1
while true; do
@@ -2531,6 +2531,7 @@ trap 'trap_exit USR1 "$(gettext "An unknown error has occurred. Exiting...")"' E
[[ -n ${PKGDEST} ]] && _PKGDEST=$(canonicalize_path ${PKGDEST})
[[ -n ${SRCDEST} ]] && _SRCDEST=$(canonicalize_path ${SRCDEST})
[[ -n ${SRCPKGDEST} ]] && _SRCPKGDEST=$(canonicalize_path ${SRCPKGDEST})
+[[ -n ${LOGDEST} ]] && _LOGDEST=$(canonicalize_path ${LOGDEST})
[[ -n ${BUILDDIR} ]] && _BUILDDIR=$(canonicalize_path ${BUILDDIR})
[[ -n ${PKGEXT} ]] && _PKGEXT=${PKGEXT}
[[ -n ${SRCEXT} ]] && _SRCEXT=${SRCEXT}
@@ -2623,6 +2624,14 @@ if (( SOURCEONLY )) && [[ ! -w $SRCPKGDEST ]]; then
exit 1
fi
+LOGDEST=${_LOGDEST:-$LOGDEST}
+LOGDEST=${LOGDEST:-$startdir} #default to $startdir if undefined
+if (( LOGGING )) && [[ ! -w $LOGDEST ]]; then
+ error "$(gettext "You do not have write permission to store logs in %s.")" "$LOGDEST"
+ plain "$(gettext "Aborting...")"
+ exit 1
+fi
+
PKGEXT=${_PKGEXT:-$PKGEXT}
SRCEXT=${_SRCEXT:-$SRCEXT}
GPGKEY=${_GPGKEY:-$GPGKEY}