diff --git a/kiss b/kiss index 4ed3a2a..f8d5211 100755 --- a/kiss +++ b/kiss @@ -480,8 +480,9 @@ pkg_build() { mkdir -p "$pkg_dir/$pkg/$pkg_db" # Move to the build directory and call the build script. - (cd "$mak_dir/$pkg"; fakeroot "$repo_dir/build" "$pkg_dir/$pkg") || - die "[$pkg]: Build failed." + # This also saves the build output to a log file. + (cd "$mak_dir/$pkg"; fakeroot "$repo_dir/build" "$pkg_dir/$pkg" 2>&1 | + tee "$log_dir/$pkg-$date.log") || die "[$pkg]: Build failed." # Copy the repository files to the package directory. # This acts as the database entry. @@ -505,6 +506,7 @@ pkg_build() { done log "Successfully built package(s)." + log "Saved build log files to '$log_dir'." # Turn the explicit packages into a 'list'. set -- $explicit_packages @@ -1047,6 +1049,10 @@ main() { # variable is ever changed. old_ifs=$IFS + # Store the current date to properly name log files. This may also be + # used later for other functionality. + date=$(date +%F-%T) + # Catch errors and ensure that build files and directories are cleaned # up before we die. This occurs on 'Ctrl+C' as well as success and error. trap pkg_clean EXIT INT @@ -1059,6 +1065,7 @@ main() { "${tar_dir:=$cac_dir/extract-$pid}" \ "${src_dir:=$cac_dir/sources}" \ "${bin_dir:=$cac_dir/bin}" \ + "${log_dir:=$cac_dir/logs}" \ || die "Couldn't create cache directories." args "$@"