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
send to network shares as they're written or compressed/cleaned en
masse.

Signed-off-by: wgiokas <[email protected]>
---
 doc/makepkg.conf.5.txt |  5 +++++
 etc/makepkg.conf.in    |  2 ++
 scripts/makepkg.sh.in  | 11 ++++++++++-
 3 files changed, 17 insertions(+), 1 deletion(-)

diff --git a/doc/makepkg.conf.5.txt b/doc/makepkg.conf.5.txt
index dcd9417..6c9ed0e 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 starting
+       directory. This can be used to send log files to a network drive or
+       to a program, and also facilitate the cleaning and compression of logs.
+       
 **PACKAGER=**"John Doe <[email protected]>"::
        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 1319c7a..9a67031 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 <[email protected]>"
 #-- Specify a key to use for package signing
diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
index a5ac59a..2fe6605 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
@@ -2532,6 +2532,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}
@@ -2624,6 +2625,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}
-- 
1.8.0


Reply via email to