#!/bin/bash

# Clean up extraneous log files that may be left around
rm /etc/ssh/ssh_host*key*      		|| echo "No SSH keys to remove"

# Fix LP: #1047707, 1019338
# Truncate logs that are owned, otherwise remove
whitelisted_logs=(/var/log/btmp /var/log/lastlog /var/log/wtmp /var/log/fsck/checkfs /var/log/fsck/checkroot)

for log in $(find /var/log -type f)
do
    whitelisted=$(echo "${whitelisted_logs[@]}" | grep -o ${log})

    if [ -n "${whitelisted}" ]; then
        : > ${log} &&
            echo "Truncated whitelisted log ${log}" ||
            echo "Failed to truncate whitelisted log ${log}"
    else

       dpkg -S ${log} > /dev/null 2>&1 &&
           { : > ${log} ||
                echo "Failed to truncate $f"; } ||
           { rm ${log} &&
               echo "Removed ${log} as an orphaned log file" ||
               echo "Failed to remove unnecessary log $f"; }
    fi
done

# Remove un-owned log directories
whitelisted_dirs=(/var/log/fsck)

for log_d in $(find /var/log/* -type d)
do
    whitelisted=$(echo "${whitelisted_dirs[@]}" | grep -o "${log_d}")
    if [ -z "${whitelisted}" ]; then
        dpkg -S ${log_d} > /dev/null 2>&1 &&
            echo "Preserving log directory ${log_d}" ||
            { rm -rf ${log_d} &&
                echo "Removed log directory ${log_d} as orphaned log dir" ||
                echo "Failed to remove unnessasary log dir ${log_d}"; }

    else
        echo "Preserving whitelisted directory ${log_d}"
    fi

done


rm -rf /var/run/*       	        || echo "Failed to clean /var/run/*"
rm /etc/passwd-  	                || echo "No spare passwd file to cleanup"
rm /etc/shadow-     				|| echo "No spare shadow file to cleanup"
rm /etc/gshadow-		        	|| echo "No spare gshadow file to cleanup"
rm /etc/group- 	        			|| echo "No spare group file to clenaup"
rm -f /etc/apt/conf.d/00secure  	|| echo "No apt cache to cleanup"

# Truncate instead of delete, LP: #707311
truncate --size=0 -c /etc/popularity-contest.conf