ext-sources/gnome-cleanup
author yippi
Wed, 07 Jan 2009 18:04:10 +0000
branchgnome-2-24
changeset 14148 d33008456d27
parent 11286 52c6c7e90138
child 14174 3a8e207a1e56
permissions -rw-r--r--
2008-01-07 Brian Cameron <[email protected]> * base-specs/gdm.spec, patches/gdm-07-audit.diff, patches/gdm-08-createdt.diff: Add patch gdm-07-audit.diff to fix bug #6734635. Add patch gdm-08-createdt.diff to fix doo bug #5973. * base-specs/gnome-media.spec, patches/gnome-media-04-fixcrash.diff: Add patch to fix gnome-sound-recorder so it does not crash on startup, doo bug #5677. * ext-sources/gnome-cleanup: Fix bug #6635943 so that gnome-cleanup does not remove GStreamer plugins installed via codeina.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
11248
8beb301a729a 2007-11-27 Brian Cameron <[email protected]>
yippi
parents: 11116
diff changeset
     1
#!/bin/ksh
2920
cad8b7ca8024 2004-05-27 Laszlo Peter <[email protected]>
laca
parents:
diff changeset
     2
#
11248
8beb301a729a 2007-11-27 Brian Cameron <[email protected]>
yippi
parents: 11116
diff changeset
     3
# Cleans up the GNOME Desktop user configuration files.  This
8beb301a729a 2007-11-27 Brian Cameron <[email protected]>
yippi
parents: 11116
diff changeset
     4
# will return the user to the default desktop configuration.
8beb301a729a 2007-11-27 Brian Cameron <[email protected]>
yippi
parents: 11116
diff changeset
     5
# Useful if the user's configuration has become corrupted.
2920
cad8b7ca8024 2004-05-27 Laszlo Peter <[email protected]>
laca
parents:
diff changeset
     6
# 
cad8b7ca8024 2004-05-27 Laszlo Peter <[email protected]>
laca
parents:
diff changeset
     7
# By: Brian Cameron <[email protected]>
cad8b7ca8024 2004-05-27 Laszlo Peter <[email protected]>
laca
parents:
diff changeset
     8
11248
8beb301a729a 2007-11-27 Brian Cameron <[email protected]>
yippi
parents: 11116
diff changeset
     9
# The first argument can be a user name.  If so, then the script
8beb301a729a 2007-11-27 Brian Cameron <[email protected]>
yippi
parents: 11116
diff changeset
    10
# will clean up the files for that specified user (if file
8beb301a729a 2007-11-27 Brian Cameron <[email protected]>
yippi
parents: 11116
diff changeset
    11
# permissions permit).  If no argument is given, the default value
8beb301a729a 2007-11-27 Brian Cameron <[email protected]>
yippi
parents: 11116
diff changeset
    12
# is the current user.
8beb301a729a 2007-11-27 Brian Cameron <[email protected]>
yippi
parents: 11116
diff changeset
    13
#
8beb301a729a 2007-11-27 Brian Cameron <[email protected]>
yippi
parents: 11116
diff changeset
    14
if [ $# -ge 1 ]; then
8beb301a729a 2007-11-27 Brian Cameron <[email protected]>
yippi
parents: 11116
diff changeset
    15
  LOGNAME="$1"
8beb301a729a 2007-11-27 Brian Cameron <[email protected]>
yippi
parents: 11116
diff changeset
    16
  USRHOME=`echo ~$1`
8beb301a729a 2007-11-27 Brian Cameron <[email protected]>
yippi
parents: 11116
diff changeset
    17
else
8beb301a729a 2007-11-27 Brian Cameron <[email protected]>
yippi
parents: 11116
diff changeset
    18
  USRHOME="$HOME"
8beb301a729a 2007-11-27 Brian Cameron <[email protected]>
yippi
parents: 11116
diff changeset
    19
  if [ -z "$LOGNAME" ]; then
8beb301a729a 2007-11-27 Brian Cameron <[email protected]>
yippi
parents: 11116
diff changeset
    20
    LOGNAME=`/usr/bin/logname`
8beb301a729a 2007-11-27 Brian Cameron <[email protected]>
yippi
parents: 11116
diff changeset
    21
  fi
8beb301a729a 2007-11-27 Brian Cameron <[email protected]>
yippi
parents: 11116
diff changeset
    22
fi
8beb301a729a 2007-11-27 Brian Cameron <[email protected]>
yippi
parents: 11116
diff changeset
    23
8beb301a729a 2007-11-27 Brian Cameron <[email protected]>
yippi
parents: 11116
diff changeset
    24
# Error if the directory for this user does not exist.
8beb301a729a 2007-11-27 Brian Cameron <[email protected]>
yippi
parents: 11116
diff changeset
    25
#
8beb301a729a 2007-11-27 Brian Cameron <[email protected]>
yippi
parents: 11116
diff changeset
    26
if [ ! -d "$USRHOME" ]; then
14148
d33008456d27 2008-01-07 Brian Cameron <[email protected]>
yippi
parents: 11286
diff changeset
    27
   echo "\nError: user <$LOGNAME> does not exist on this system.\n"
11248
8beb301a729a 2007-11-27 Brian Cameron <[email protected]>
yippi
parents: 11116
diff changeset
    28
   exit 1
8beb301a729a 2007-11-27 Brian Cameron <[email protected]>
yippi
parents: 11116
diff changeset
    29
fi
8beb301a729a 2007-11-27 Brian Cameron <[email protected]>
yippi
parents: 11116
diff changeset
    30
8beb301a729a 2007-11-27 Brian Cameron <[email protected]>
yippi
parents: 11116
diff changeset
    31
# If USRHOME is the root directory, just set USRHOME to nothing
8beb301a729a 2007-11-27 Brian Cameron <[email protected]>
yippi
parents: 11116
diff changeset
    32
# to avoid double-slash in the output since we refer to files
8beb301a729a 2007-11-27 Brian Cameron <[email protected]>
yippi
parents: 11116
diff changeset
    33
# as $USRHOME/.gconf, for example.
8beb301a729a 2007-11-27 Brian Cameron <[email protected]>
yippi
parents: 11116
diff changeset
    34
#
8beb301a729a 2007-11-27 Brian Cameron <[email protected]>
yippi
parents: 11116
diff changeset
    35
if [ "$USRHOME" = "/" ]; then
8beb301a729a 2007-11-27 Brian Cameron <[email protected]>
yippi
parents: 11116
diff changeset
    36
   USRHOME=""
8beb301a729a 2007-11-27 Brian Cameron <[email protected]>
yippi
parents: 11116
diff changeset
    37
fi
8beb301a729a 2007-11-27 Brian Cameron <[email protected]>
yippi
parents: 11116
diff changeset
    38
2920
cad8b7ca8024 2004-05-27 Laszlo Peter <[email protected]>
laca
parents:
diff changeset
    39
# Check if GNOME is running:
cad8b7ca8024 2004-05-27 Laszlo Peter <[email protected]>
laca
parents:
diff changeset
    40
#
cad8b7ca8024 2004-05-27 Laszlo Peter <[email protected]>
laca
parents:
diff changeset
    41
GNOME_PROCESSES='(gnome-session|gconfd|gconfd-2|metacity|esd)'
cad8b7ca8024 2004-05-27 Laszlo Peter <[email protected]>
laca
parents:
diff changeset
    42
RUNNING_PROCESSES=`/usr/bin/pgrep -l -U $LOGNAME "$GNOME_PROCESSES"`
11248
8beb301a729a 2007-11-27 Brian Cameron <[email protected]>
yippi
parents: 11116
diff changeset
    43
rc=$?
8beb301a729a 2007-11-27 Brian Cameron <[email protected]>
yippi
parents: 11116
diff changeset
    44
if [ $rc -ge 2 ]; then
14148
d33008456d27 2008-01-07 Brian Cameron <[email protected]>
yippi
parents: 11286
diff changeset
    45
   echo "\nError getting user process information for user <$LOGNAME>...\n"
11248
8beb301a729a 2007-11-27 Brian Cameron <[email protected]>
yippi
parents: 11116
diff changeset
    46
   exit 1
8beb301a729a 2007-11-27 Brian Cameron <[email protected]>
yippi
parents: 11116
diff changeset
    47
fi
2920
cad8b7ca8024 2004-05-27 Laszlo Peter <[email protected]>
laca
parents:
diff changeset
    48
cad8b7ca8024 2004-05-27 Laszlo Peter <[email protected]>
laca
parents:
diff changeset
    49
if [ ! -z "$RUNNING_PROCESSES" ]; then
14148
d33008456d27 2008-01-07 Brian Cameron <[email protected]>
yippi
parents: 11286
diff changeset
    50
   echo "\nThe following GNOME processes are still running for user <$LOGNAME>:\n"
2920
cad8b7ca8024 2004-05-27 Laszlo Peter <[email protected]>
laca
parents:
diff changeset
    51
   echo "$RUNNING_PROCESSES"
14148
d33008456d27 2008-01-07 Brian Cameron <[email protected]>
yippi
parents: 11286
diff changeset
    52
   echo "\nPlease log out user <$LOGNAME> from GNOME, so this user has no"
11248
8beb301a729a 2007-11-27 Brian Cameron <[email protected]>
yippi
parents: 11116
diff changeset
    53
   echo "GNOME processes running before using gnome-cleanup.  For example,"
8beb301a729a 2007-11-27 Brian Cameron <[email protected]>
yippi
parents: 11116
diff changeset
    54
   echo "log out, and log into a failsafe session to run gnome-cleanup."
8beb301a729a 2007-11-27 Brian Cameron <[email protected]>
yippi
parents: 11116
diff changeset
    55
   echo ""
2920
cad8b7ca8024 2004-05-27 Laszlo Peter <[email protected]>
laca
parents:
diff changeset
    56
   exit 1
cad8b7ca8024 2004-05-27 Laszlo Peter <[email protected]>
laca
parents:
diff changeset
    57
fi
cad8b7ca8024 2004-05-27 Laszlo Peter <[email protected]>
laca
parents:
diff changeset
    58
14148
d33008456d27 2008-01-07 Brian Cameron <[email protected]>
yippi
parents: 11286
diff changeset
    59
# Use disp_files to echo files back to the screen so that we don't expand
d33008456d27 2008-01-07 Brian Cameron <[email protected]>
yippi
parents: 11286
diff changeset
    60
# "tmp" wildcard directories like gvfs-${LOGNAME}, otherwise the output
d33008456d27 2008-01-07 Brian Cameron <[email protected]>
yippi
parents: 11286
diff changeset
    61
# is cumbersome to read since this will echo dozens of files to the screen.
d33008456d27 2008-01-07 Brian Cameron <[email protected]>
yippi
parents: 11286
diff changeset
    62
#
d33008456d27 2008-01-07 Brian Cameron <[email protected]>
yippi
parents: 11286
diff changeset
    63
disp_files=""
d33008456d27 2008-01-07 Brian Cameron <[email protected]>
yippi
parents: 11286
diff changeset
    64
11116
b01059415414 2007-11-02 Brian Cameron <[email protected]>
yippi
parents: 7408
diff changeset
    65
# GNOME 2.x files
2920
cad8b7ca8024 2004-05-27 Laszlo Peter <[email protected]>
laca
parents:
diff changeset
    66
#
14148
d33008456d27 2008-01-07 Brian Cameron <[email protected]>
yippi
parents: 11286
diff changeset
    67
gnome_files="$USRHOME/.dbus $USRHOME/.gconf $USRHOME/.gconfd $USRHOME/.gnome $USRHOME/.gnome-desktop $USRHOME/.gnome2 $USRHOME/.gnome2_private $USRHOME/.metacity $USRHOME/.nautilus $USRHOME/.esd_auth $USRHOME/.gtkrc $USRHOME/.gtkrc-1.2-gnome2 $USRHOME/.nautilus-metafile.xml $USRHOME/.gstreamer-0.10/registry.* $USRHOME/.local/share"
2920
cad8b7ca8024 2004-05-27 Laszlo Peter <[email protected]>
laca
parents:
diff changeset
    68
11116
b01059415414 2007-11-02 Brian Cameron <[email protected]>
yippi
parents: 7408
diff changeset
    69
# GNOME 1.4 files
2920
cad8b7ca8024 2004-05-27 Laszlo Peter <[email protected]>
laca
parents:
diff changeset
    70
#
14148
d33008456d27 2008-01-07 Brian Cameron <[email protected]>
yippi
parents: 11286
diff changeset
    71
gnome_14_files="$USRHOME/.gnome-help-browser $USRHOME/.gnome_private $USRHOME/.thumbnails $USRHOME/Nautilus"
2920
cad8b7ca8024 2004-05-27 Laszlo Peter <[email protected]>
laca
parents:
diff changeset
    72
14148
d33008456d27 2008-01-07 Brian Cameron <[email protected]>
yippi
parents: 11286
diff changeset
    73
check_files=`/bin/ls -d $gnome_files $gnome_14_files 2> /dev/null`
d33008456d27 2008-01-07 Brian Cameron <[email protected]>
yippi
parents: 11286
diff changeset
    74
if [ ! -x "$check_files" ]
d33008456d27 2008-01-07 Brian Cameron <[email protected]>
yippi
parents: 11286
diff changeset
    75
then
d33008456d27 2008-01-07 Brian Cameron <[email protected]>
yippi
parents: 11286
diff changeset
    76
   disp_files="$disp_files\n$check_files"
d33008456d27 2008-01-07 Brian Cameron <[email protected]>
yippi
parents: 11286
diff changeset
    77
fi
d33008456d27 2008-01-07 Brian Cameron <[email protected]>
yippi
parents: 11286
diff changeset
    78
d33008456d27 2008-01-07 Brian Cameron <[email protected]>
yippi
parents: 11286
diff changeset
    79
# tmp files
7408
8aad920cca69 2006-06-08 Laszlo (Laca) Peter <[email protected]>
lp117937
parents: 2927
diff changeset
    80
#
14148
d33008456d27 2008-01-07 Brian Cameron <[email protected]>
yippi
parents: 11286
diff changeset
    81
tmp_dirs="/var/tmp $TEMPDIR $TMP $TEMP"
d33008456d27 2008-01-07 Brian Cameron <[email protected]>
yippi
parents: 11286
diff changeset
    82
tmp_files=""
7408
8aad920cca69 2006-06-08 Laszlo (Laca) Peter <[email protected]>
lp117937
parents: 2927
diff changeset
    83
14148
d33008456d27 2008-01-07 Brian Cameron <[email protected]>
yippi
parents: 11286
diff changeset
    84
tmp_cleanup="gconfd-${LOGNAME} mapping-${LOGNAME} orbit-${LOGNAME} gvfs-${LOGNAME}*"
d33008456d27 2008-01-07 Brian Cameron <[email protected]>
yippi
parents: 11286
diff changeset
    85
d33008456d27 2008-01-07 Brian Cameron <[email protected]>
yippi
parents: 11286
diff changeset
    86
for dir in $tmp_dirs; do
d33008456d27 2008-01-07 Brian Cameron <[email protected]>
yippi
parents: 11286
diff changeset
    87
   for cleanup in $tmp_cleanup; do
d33008456d27 2008-01-07 Brian Cameron <[email protected]>
yippi
parents: 11286
diff changeset
    88
      tmp_files="$dir/$cleanup $tmp_files"
11286
52c6c7e90138 2007-12-05 Brian Cameron <[email protected]>
yippi
parents: 11248
diff changeset
    89
14148
d33008456d27 2008-01-07 Brian Cameron <[email protected]>
yippi
parents: 11286
diff changeset
    90
      check_files=`/bin/ls -d $dir/$cleanup 2> /dev/null`
d33008456d27 2008-01-07 Brian Cameron <[email protected]>
yippi
parents: 11286
diff changeset
    91
      if [ ! -x "$check_files" ]
d33008456d27 2008-01-07 Brian Cameron <[email protected]>
yippi
parents: 11286
diff changeset
    92
      then
d33008456d27 2008-01-07 Brian Cameron <[email protected]>
yippi
parents: 11286
diff changeset
    93
         disp_files="$disp_files\n$dir/$cleanup"
d33008456d27 2008-01-07 Brian Cameron <[email protected]>
yippi
parents: 11286
diff changeset
    94
      fi
d33008456d27 2008-01-07 Brian Cameron <[email protected]>
yippi
parents: 11286
diff changeset
    95
   done
d33008456d27 2008-01-07 Brian Cameron <[email protected]>
yippi
parents: 11286
diff changeset
    96
done
d33008456d27 2008-01-07 Brian Cameron <[email protected]>
yippi
parents: 11286
diff changeset
    97
   
d33008456d27 2008-01-07 Brian Cameron <[email protected]>
yippi
parents: 11286
diff changeset
    98
has_files=`/bin/ls -d $tmp_files $gnome_files $gnome_14_files 2> /dev/null`
2920
cad8b7ca8024 2004-05-27 Laszlo Peter <[email protected]>
laca
parents:
diff changeset
    99
cad8b7ca8024 2004-05-27 Laszlo Peter <[email protected]>
laca
parents:
diff changeset
   100
if [ ! -z "$has_files" ]
cad8b7ca8024 2004-05-27 Laszlo Peter <[email protected]>
laca
parents:
diff changeset
   101
then
14148
d33008456d27 2008-01-07 Brian Cameron <[email protected]>
yippi
parents: 11286
diff changeset
   102
   echo "\nUser <$LOGNAME> currently has the following GNOME configuration files:"
d33008456d27 2008-01-07 Brian Cameron <[email protected]>
yippi
parents: 11286
diff changeset
   103
   echo "$disp_files"
d33008456d27 2008-01-07 Brian Cameron <[email protected]>
yippi
parents: 11286
diff changeset
   104
   echo "\nDo you wish to remove these files (Y/N) \c"
2920
cad8b7ca8024 2004-05-27 Laszlo Peter <[email protected]>
laca
parents:
diff changeset
   105
   read input;
cad8b7ca8024 2004-05-27 Laszlo Peter <[email protected]>
laca
parents:
diff changeset
   106
cad8b7ca8024 2004-05-27 Laszlo Peter <[email protected]>
laca
parents:
diff changeset
   107
   if [ "$input" = "Y" -o "$input" = "y" ]
cad8b7ca8024 2004-05-27 Laszlo Peter <[email protected]>
laca
parents:
diff changeset
   108
   then
cad8b7ca8024 2004-05-27 Laszlo Peter <[email protected]>
laca
parents:
diff changeset
   109
      /bin/rm -fR $has_files
11248
8beb301a729a 2007-11-27 Brian Cameron <[email protected]>
yippi
parents: 11116
diff changeset
   110
      rc=$?
8beb301a729a 2007-11-27 Brian Cameron <[email protected]>
yippi
parents: 11116
diff changeset
   111
      if [ $rc = 0 ]; then
8beb301a729a 2007-11-27 Brian Cameron <[email protected]>
yippi
parents: 11116
diff changeset
   112
         echo "Removed..."
8beb301a729a 2007-11-27 Brian Cameron <[email protected]>
yippi
parents: 11116
diff changeset
   113
      else
8beb301a729a 2007-11-27 Brian Cameron <[email protected]>
yippi
parents: 11116
diff changeset
   114
         echo "Error removing files..."
8beb301a729a 2007-11-27 Brian Cameron <[email protected]>
yippi
parents: 11116
diff changeset
   115
      fi
2920
cad8b7ca8024 2004-05-27 Laszlo Peter <[email protected]>
laca
parents:
diff changeset
   116
   else
cad8b7ca8024 2004-05-27 Laszlo Peter <[email protected]>
laca
parents:
diff changeset
   117
      echo "Not removed..."
cad8b7ca8024 2004-05-27 Laszlo Peter <[email protected]>
laca
parents:
diff changeset
   118
   fi
cad8b7ca8024 2004-05-27 Laszlo Peter <[email protected]>
laca
parents:
diff changeset
   119
   echo ""
cad8b7ca8024 2004-05-27 Laszlo Peter <[email protected]>
laca
parents:
diff changeset
   120
else
14148
d33008456d27 2008-01-07 Brian Cameron <[email protected]>
yippi
parents: 11286
diff changeset
   121
   echo "\nUser $LOGNAME does not have any GNOME configuration files.\n"
2920
cad8b7ca8024 2004-05-27 Laszlo Peter <[email protected]>
laca
parents:
diff changeset
   122
fi