Magellan Linux

Annotation of /smage/branches/alx07x-stable/include/cleanutils.sminc

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3579 - (hide annotations) (download)
Mon Jul 9 17:43:24 2012 UTC (11 years, 10 months ago) by niro
Original Path: smage/trunk/include/cleanutils.sminc
File size: 1042 byte(s)
-merged with upstream
1 niro 1661 # package clean utilities
2 niro 1664 # $Id$
3 niro 1661
4     #
5     # taken from gentoo (livecd-ng)
6     #
7     #"zapmost" is used to remove an entire directory tree, *except* for certain
8     #specified files. Arg 1 is the tree, args 2+ are the items to keep, which can
9     #be files or directories at the root or deeper levels.
10    
11     #example calls:
12     #zapmost /usr/share/locales en_us
13     #zapmost /usr/share/terminfo l/linux
14 niro 1664 zapmost()
15     {
16 niro 1661 local rootdir
17     rootdir="${1}/"
18     [ ! -e "$rootdir" ] && echo "zapmost: $rootdir not found; skipping..." && return 1
19 niro 3579 echo -e "${COLBLUE}*** ${COLGREEN}Running zapmost for ${rootdir}${COLDEFAULT}"
20 niro 1661 install -d ${BUILDDIR}/zap
21     local dirs
22     shift
23     local x
24     for x in ${*}
25     do
26     if [ "${x##*/}" = "${x}" ]
27     then
28     #one deep
29     mv ${rootdir}${x} ${BUILDDIR}/zap
30     else
31     #more than one deep; create intermediate directories
32     dirs=${x%/*}
33     install -d ${BUILDDIR}/zap/${dirs}
34 niro 1664 mv ${rootdir}${x} ${BUILDDIR}/zap/${dirs}
35 niro 1661 fi
36     done
37     rm -rf ${rootdir}*
38     mv ${BUILDDIR}/zap/* ${rootdir}
39 niro 3579 echo -e "${COLBLUE}=== ${COLGREEN}zapmost done for ${rootdir}${COLDEFAULT}"
40 niro 1661 }