Make upgrade logs readable by root only.
[carnet-upgrade.git] / src / functions.sh
index 19c76b3..466e770 100644 (file)
@@ -22,10 +22,17 @@ pkg() {
 }
 
 log() {
+  local old_umask
   logfile=${logfile:=/var/log/carnet-upgrade.log}
-  touch $logfile
+
+  old_umask=$(umask)
+  umask 0077
+
   echo "$(date +'%Y-%m-%d %H:%M:%S') $*" >> $logfile
   echo "CN: $*"
+
+  umask $old_umask
+  chmod og= $logfile
 }
 
 # find first free uid/gid in range
@@ -510,7 +517,7 @@ reboot_required () {
   if [ -z "$default_kernel" -a -r "/boot/grub/menu.lst" ]; then
       default_kernel=$( awk '
            $1 == "default" { default = $2; 
-                             if (default != /^[[:digit:]]+$/) { exit } }
+                             if (default !~ /^[0-9]+$/) { exit } }
            $1 == "title" { title+=1 }
            $1 == "kernel" && title==default+1 { print $2; exit }' \
            /boot/grub/menu.lst 2>/dev/null )
@@ -537,11 +544,6 @@ reboot_required () {
 
   log "Default kernel package: $kernel_package"
 
-  if [ "$kernel_package" != "kernel-2.6-cn" ]; then
-      log "Default kernel package is not kernel-2.6-cn"
-      return 1
-  fi
-
   running_release=$( uname -r )
   running_version=$( uname -v )
   log "Running kernel: $running_release $running_version"
@@ -897,6 +899,30 @@ remove_skey () {
   fi
 }
 
+# check if package is orphaned (nothing depends on it)
+is_orphaned () {
+  local package deps
+
+  package=$1
+  deps=$(apt-get remove -s $package | grep ^Remv | wc -l)
+  if [ "$deps" -eq 1 ]; then 
+    return 0
+  else 
+    return 1
+  fi
+}
+
+# remove old and unused libraries
+remove_orphaned () {
+  local package
+
+  for package in $orphaned_packages; do
+    if is_orphaned $package; then
+      pkgrm $package
+    fi
+  done
+}
+
 # monit it causing problems for postinst scripts
 # restarting daemons so try to disable it
 disable_monit () {
@@ -1169,7 +1195,7 @@ upgrade_udev () {
                 /etc/udev/rules.d/compat.rules
   do
      if [ -e $config ]; then
-        mv -v $config /etc/udev/
+        rm -v -f $config
      fi
   done