Magellan Linux

Diff of /branches/R11-unstable/include/mtools.sminc

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 11761 by niro, Tue Mar 27 12:11:21 2012 UTC revision 19670 by niro, Wed Oct 9 13:16:15 2013 UTC
# Line 1  Line 1 
1  # $Header: /magellan-cvs/smage/include/mtools.sminc,v 1.39 2008/04/20 08:28:23 niro Exp $  # $Id$
2  # some special build tools  # some special build tools
3    
4  # automatical inherit mtools.minc  # get the pname right with split-packages
 # this will provide the service management functions  
 INHERITS="${INHERITS} mtools"  
   
 # get the pname right with splitpackages  
5  mpname()  mpname()
6  {  {
7   local pname="${PNAME}"   local pname="${PNAME}"
# Line 14  mpname() Line 10  mpname()
10   echo "${pname}"   echo "${pname}"
11  }  }
12    
13  # installs initscripts  # installs given directories
14  # minstallrc /path/to/rc-script {destfilename}  # minstalldir /path/to/dest/dir {/path/to/dest/dirN}
15  minstallrc()  minstalldir()
16    {
17     local argv="$@"
18     local dest
19    
20     [[ -z ${argv} ]] && die "No dest dir given"
21     for dest in ${argv}
22     do
23     [[ -d ${BINDIR}${dest} ]] && continue
24     install -v -d ${BINDIR}/${dest} || die
25     done
26    }
27    
28    # install files to given path (defaults to /usr/bin)
29    # minstallfile {-s} /path/to/file {/path/to/dest}
30    minstallfile()
31  {  {
  local rcscript  
32   local file   local file
33     local dest
34    
35   [[ -z "$1" ]] && die "No initscript given"   [[ -z $1 ]] && die "No etc file given"
36    
37   # if no fullpath given use file from sourcedir   if [[ $1 = -s ]]
  if [[ -z $(dirname $1) ]] || [[ $(dirname $1) = . ]]  
38   then   then
39   file="${SOURCEDIR}/$(mpname)/$1"   file="${SOURCEDIR}/$(mpname)/$2"
40     dest="$3"
41     if [[ -z $3 ]]
42     then
43     dest=/usr/bin
44     install -d ${BINDIR}/${dest} || die
45     fi
46   else   else
47   file="$1"   file="$1"
48     dest="$2"
49     if [[ -z $2 ]]
50     then
51     dest=/usr/bin
52     install -d ${BINDIR}/${dest} || die
53     fi
54   fi   fi
55    
56   if [[ -n "$2" ]]   # install our configfile
57     install -v -m 0644 -o root -g root ${file} ${BINDIR}/${dest} || die
58    }
59    
60    # installs executables to given path
61    # minstallexec {-s} /path/to/exec {/path/to/dest}
62    minstallexec()
63    {
64     local file
65     local dest
66    
67     [[ -z $1 ]] && die "No file given"
68    
69     if [[ $1 = -s ]]
70   then   then
71   rcscript="$2"   file="${SOURCEDIR}/$(mpname)/$2"
72     dest="$3"
73     if [[ -z $3 ]]
74     then
75     dest=/usr/bin
76     install -d ${BINDIR}/${dest} || die
77     fi
78   else   else
79   rcscript="$(basename ${file})"   file="$1"
80     dest="$2"
81     if [[ -z $2 ]]
82     then
83     dest=/usr/bin
84     install -d ${BINDIR}/${dest} || die
85     fi
86   fi   fi
87    
88   # needed directory   # install our configfile
89   install -d ${BINDIR}/etc/rc.d/init.d || die   install -v -m 0755 -o root -g root ${file} ${BINDIR}/${dest} || die
90    }
91    
92    # installs executables to given path
93    # minstalllib {-s} /path/to/exec {/path/to/dest}
94    minstalllib()
95    {
96     local file
97     local dest
98     local verbose="-v"
99    
100     # check for busybox as it doesn't support 'ln -v'
101     [[ $(readlink $(which ln)) = */busybox ]] && verbose=""
102    
103     [[ -z $1 ]] && die "No file given"
104    
105     if [[ $1 = -s ]]
106     then
107     file="${SOURCEDIR}/$(mpname)/$2"
108     dest="$3"
109     if [[ -z $3 ]]
110     then
111     dest=/usr/$(mlibdir)
112     install -d ${BINDIR}/${dest} || die
113     fi
114     else
115     file="$1"
116     dest="$2"
117     if [[ -z $2 ]]
118     then
119     dest=/usr/$(mlibdir)
120     install -d ${BINDIR}/${dest} || die
121     fi
122     fi
123    
124     # install our library
125     install -v -m 0755 -o root -g root ${file} ${BINDIR}/${dest} || die
126    
127   # install our initscript   # prefer scanelf
128   install -v -m 0755 -o root -g root ${file} ${BINDIR}/etc/rc.d/init.d/${rcscript} || die   if [[ -x $(type -P scanelf) ]]
129     then
130     local soname="$(scanelf -qBF '%S#p' ${file})"
131     ln ${verbose} -snf $(basename ${file}) ${BINDIR}/${dest}/${soname} || die
132     else
133     echo -e "${COLYELLOW}minstalllib(): Warning: scanelf not found, using fallback symlink method${COLDEFAULT}"
134    
135     # create libtool symlinks
136     # 1. - library.so.1.0.0 -> library.so.1.0
137     if [ "${file%.*}" != *.so ]
138     then
139     ln ${verbose} -snf $(basename ${file}) ${BINDIR}/${dest}/$(basename ${file%.*}) || die
140     fi
141     # 2. - library.so.1.0.0 -> library.so.1
142     if [ "${file%.*.*}" != *.so ]
143     then
144     ln ${verbose} -snf $(basename ${file}) ${BINDIR}/${dest}/$(basename ${file%.*.*}) || die
145     fi
146     # 3. - library.so.1.0.0.0 -> library.so.1
147     if [ "${file%.*.*.*}" != *.so ]
148     then
149     ln ${verbose} -snf $(basename ${file}) ${BINDIR}/${dest}/$(basename ${file%.*.*.*}) || die
150     fi
151     fi
152  }  }
153    
154  # installs environment files  # installs environment files
# Line 146  minstalletc() Line 252  minstalletc()
252   install -v -m 0644 -o root -g root ${file} ${BINDIR}/${destdir}/${etcfile} || die   install -v -m 0644 -o root -g root ${file} ${BINDIR}/${destdir}/${etcfile} || die
253  }  }
254    
 minstalludevrule()  
 {  
  local udevrule  
  local file  
   
  [[ -z "$1" ]] && die "No udev rule given"  
   
  # if no fullpath given use file from sourcedir  
  if [[ -z $(dirname $1) ]] || [[ $(dirname $1) = . ]]  
  then  
  file="${SOURCEDIR}/$(mpname)/$1"  
  else  
  file="$1"  
  fi  
   
  if [[ -n "$2" ]]  
  then  
  udevrule="$2"  
  else  
  udevrule="$(basename ${file})"  
  fi  
   
  # needed directory  
  install -d ${BINDIR}/etc/udev/rules.d || die  
   
  # install our udev rule  
  install -v -m 0644 -o root -g root ${file} ${BINDIR}/etc/udev/rules.d/${udevrule} || die  
 }  
   
 minstalludevhelper()  
 {  
  local udevhelper  
  local file  
   
  [[ -z "$1" ]] && die "No udev helper given"  
   
  # if no fullpath given use file from sourcedir  
  if [[ -z $(dirname $1) ]] || [[ $(dirname $1) = . ]]  
  then  
  file="${SOURCEDIR}/$(mpname)/$1"  
  else  
  file="$1"  
  fi  
   
  if [[ -n "$2" ]]  
  then  
  udevhelper="$2"  
  else  
  udevhelper="$(basename ${file})"  
  fi  
   
  # needed directory  
  install -d ${BINDIR}/lib/udev || die  
   
  # install our udev-helper  
  install -v -m 0755 -o root -g root ${file} ${BINDIR}/lib/udev/${udevhelper} || die  
 }  
   
 minstallhalinformation()  
 {  
  local halrule  
  local file  
   
  [[ -z "$1" ]] && die "No hal rule given"  
   
  # if no fullpath given use file from sourcedir  
  if [[ -z $(dirname $1) ]] || [[ $(dirname $1) = . ]]  
  then  
  file="${SOURCEDIR}/$(mpname)/$1"  
  else  
  file="$1"  
  fi  
   
  if [[ -n "$2" ]]  
  then  
  halrule="$2"  
  else  
  halrule="$(basename ${file})"  
  fi  
   
  # needed directory  
  install -d ${BINDIR}/usr/share/hal/fdi/information/20thirdparty || die  
   
  # install our udev rule  
  install -v -m 0644 -o root -g root ${file} ${BINDIR}/usr/share/hal/fdi/information/20thirdparty/${halrule} || die  
 }  
   
 minstallhalpolicy()  
 {  
  local halrule  
  local file  
   
  [[ -z "$1" ]] && die "No hal rule given"  
   
  # if no fullpath given use file from sourcedir  
  if [[ -z $(dirname $1) ]] || [[ $(dirname $1) = . ]]  
  then  
  file="${SOURCEDIR}/$(mpname)/$1"  
  else  
  file="$1"  
  fi  
   
  if [[ -n "$2" ]]  
  then  
  halrule="$2"  
  else  
  halrule="$(basename ${file})"  
  fi  
   
  # needed directory  
  install -d ${BINDIR}/usr/share/hal/fdi/policy/20thirdparty || die  
   
  # install our udev rule  
  install -v -m 0644 -o root -g root ${file} ${BINDIR}/usr/share/hal/fdi/policy/20thirdparty/${halrule} || die  
 }  
   
 minstallhalpreprobe()  
 {  
  local halrule  
  local file  
   
  [[ -z "$1" ]] && die "No hal rule given"  
   
  # if no fullpath given use file from sourcedir  
  if [[ -z $(dirname $1) ]] || [[ $(dirname $1) = . ]]  
  then  
  file="${SOURCEDIR}/$(mpname)/$1"  
  else  
  file="$1"  
  fi  
   
  if [[ -n "$2" ]]  
  then  
  halrule="$2"  
  else  
  halrule="$(basename ${file})"  
  fi  
   
  # needed directory  
  install -d ${BINDIR}/usr/share/hal/fdi/preprobe/10osvendor || die  
   
  # install our udev rule  
  install -v -m 0644 -o root -g root ${file} ${BINDIR}/usr/share/hal/fdi/preprobe/10osvendor/${halrule} || die  
 }  
   
255  # install man files to appropiate dirs  # install man files to appropiate dirs
256  # minstallman /path/to/manfile.foo  # minstallman /path/to/manfile.foo
257  minstallman()  minstallman()
# Line 498  minstalllog() Line 459  minstalllog()
459   install -v -m 0644 -o root -g root ${file} ${BINDIR}/etc/logrotate.d/${logfile} || die   install -v -m 0644 -o root -g root ${file} ${BINDIR}/etc/logrotate.d/${logfile} || die
460  }  }
461    
   
 # installs given directories  
 # minstalldir /path/to/dest/dir {/path/to/dest/dirN}  
 minstalldir()  
 {  
  local argv="$@"  
  local dest  
   
  [[ -z ${argv} ]] && die "No dest dir given"  
  for dest in ${argv}  
  do  
  [[ -d ${BINDIR}${dest} ]] && continue  
  install -v -d ${BINDIR}/${dest} || die  
  done  
 }  
   
   
 # install files to given path (defaults to /usr/bin)  
 # minstallfile {-s} /path/to/file {/path/to/dest}  
 minstallfile()  
 {  
  local file  
  local dest  
   
  [[ -z $1 ]] && die "No etc file given"  
   
  if [[ $1 = -s ]]  
  then  
  file="${SOURCEDIR}/$(mpname)/$2"  
  dest="$3"  
  if [[ -z $3 ]]  
  then  
  dest=/usr/bin  
  install -d ${BINDIR}/${dest} || die  
  fi  
  else  
  file="$1"  
  dest="$2"  
  if [[ -z $2 ]]  
  then  
  dest=/usr/bin  
  install -d ${BINDIR}/${dest} || die  
  fi  
  fi  
   
  # install our configfile  
  install -v -m 0644 -o root -g root ${file} ${BINDIR}/${dest} || die  
 }  
   
 # installs executables to given path  
 # minstallexec {-s} /path/to/exec {/path/to/dest}  
 minstallexec()  
 {  
  local file  
  local dest  
   
  [[ -z $1 ]] && die "No file given"  
   
  if [[ $1 = -s ]]  
  then  
  file="${SOURCEDIR}/$(mpname)/$2"  
  dest="$3"  
  if [[ -z $3 ]]  
  then  
  dest=/usr/bin  
  install -d ${BINDIR}/${dest} || die  
  fi  
  else  
  file="$1"  
  dest="$2"  
  if [[ -z $2 ]]  
  then  
  dest=/usr/bin  
  install -d ${BINDIR}/${dest} || die  
  fi  
  fi  
   
  # install our configfile  
  install -v -m 0755 -o root -g root ${file} ${BINDIR}/${dest} || die  
 }  
   
 # installs executables to given path  
 # minstalllib {-s} /path/to/exec {/path/to/dest}  
 minstalllib()  
 {  
  local file  
  local dest  
  local verbose="-v"  
   
  # check for busybox as it doesn'tz support 'ln -v'  
  [[ $(readlink $(which ln)) = */busybox ]] && verbose=""  
   
  [[ -z $1 ]] && die "No file given"  
   
  if [[ $1 = -s ]]  
  then  
  file="${SOURCEDIR}/$(mpname)/$2"  
  dest="$3"  
  if [[ -z $3 ]]  
  then  
  dest=/usr/$(mlibdir)  
  install -d ${BINDIR}/${dest} || die  
  fi  
  else  
  file="$1"  
  dest="$2"  
  if [[ -z $2 ]]  
  then  
  dest=/usr/$(mlibdir)  
  install -d ${BINDIR}/${dest} || die  
  fi  
  fi  
   
  # install our library  
  install -v -m 0755 -o root -g root ${file} ${BINDIR}/${dest} || die  
   
  # create libtool symlinks  
  # 1. - library.so.1.0.0 -> library.so.1.0  
  if [ "${file%.*}" != *.so ]  
  then  
  ln ${verbose} -snf $(basename ${file}) ${BINDIR}/${dest}/$(basename ${file%.*})  
  fi  
  # 2. - library.so.1.0.0 -> library.so.1  
  if [ "${file%.*.*}" != *.so ]  
  then  
  ln ${verbose} -snf $(basename ${file}) ${BINDIR}/${dest}/$(basename ${file%.*.*})  
  fi  
 }  
   
462  mcopy()  mcopy()
463  {  {
464   local source="$1"   local source="$1"
# Line 662  mcopy() Line 494  mcopy()
494   cp -v ${opts} ${source} ${BINDIR}/${dest} || die   cp -v ${opts} ${source} ${BINDIR}/${dest} || die
495  }  }
496    
497    mdelete()
498    {
499     local dest="$1"
500     local opts
501    
502     # enforce
503     if [[ $1 = -f ]]
504     then
505     opts="-f"
506     dest="$2"
507     fi
508    
509     # recursive
510     if [[ $1 = -r ]] || [[ $1 = -R ]]
511     then
512     opts="-r"
513     dest="$2"
514     fi
515    
516     # recursive
517     if [[ $1 = -rf ]] || [[ $1 = -fr ]] || [[ $1 = -Rf ]] || [[ $1 = -fR ]]
518     then
519     opts="-r -f"
520     dest="$2"
521     fi
522    
523     [[ -z ${dest} ]] && die "No dest given."
524     [[ ! -e ${BINDIR}/${dest} ]] && die "${BINDIR}/${dest} does not exist."
525    
526     rm -v ${opts} ${BINDIR}/${dest} || die
527    }
528    
529  mmove()  mmove()
530  {  {
531   local source="$1"   local source="$1"
# Line 763  mlink() Line 627  mlink()
627   ln ${verbose} -snf ${symlink} ${BINDIR}/${pathto} || die   ln ${verbose} -snf ${symlink} ${BINDIR}/${pathto} || die
628  }  }
629    
 # installs systemd units  
 # minstallunit /path/to/unit-file {destfilename}  
 minstallunit()  
 {  
  local unit  
  local file  
  local prefix  
   
  [[ -z "$1" ]] && die "No unit given"  
   
  # get the right prefix for newer systemd  
  [[ -x /bin/systemctl ]] && prefix=""  
  [[ -x /usr/bin/systemctl ]] && prefix="/usr"  
   
  # if no fullpath given use file from sourcedir  
  if [[ -z $(dirname $1) ]] || [[ $(dirname $1) = . ]]  
  then  
  file="${SOURCEDIR}/$(mpname)/$1"  
  else  
  file="$1"  
  fi  
   
  if [[ -n "$2" ]]  
  then  
  unit="$2"  
  else  
  unit="$(basename ${file})"  
  fi  
   
  # needed directory  
  install -d ${BINDIR}${prefix}/lib/systemd/system || die  
   
  # install our initscript  
  install -v -m 0644 -o root -g root ${file} ${BINDIR}${prefix}/lib/systemd/system/${unit} || die  
 }  
   
 # installs systemd tmp configs to /etc/tmpfiles.d  
 # minstalltmp /path/to/tmpdfile {destfilename}  
 minstalltmp()  
 {  
  local tmpdfile  
  local file  
   
  [[ -z "$1" ]] && die "No tmpd file given"  
   
  # if no fullpath given use file from sourcedir  
  if [[ -z $(dirname $1) ]] || [[ $(dirname $1) = . ]]  
  then  
  file="${SOURCEDIR}/$(mpname)/$1"  
  else  
  file="$1"  
  fi  
   
  if [[ -n "$2" ]]  
  then  
  tmpdfile="$2"  
  else  
  tmpdfile="$(basename ${file})"  
  fi  
   
  # needed directory  
  install -d ${BINDIR}/etc/tmpfiles.d || die  
   
  # install our tmpdfile  
  install -v -m 0644 -o root -g root ${file} ${BINDIR}/etc/tmpfiles.d/${tmpdfile} || die  
 }  
   
630  mclearconfig()  mclearconfig()
631  {  {
632   local confdir   local confdir
# Line 862  maddconfig() Line 659  maddconfig()
659   -b|--no-bindir) prefix=""; argv="$2" ;;   -b|--no-bindir) prefix=""; argv="$2" ;;
660   esac   esac
661    
662   [[ -z ${argv} ]] && die "No  argument given!"   #[[ -z ${argv} ]] && die "No  argument given!"
663    
664   confdir="$(dirname ${MCONFIG})"   confdir="$(dirname ${MCONFIG})"
665   if [[ ! -d ${prefix}/${confdir} ]]   if [[ ! -d ${prefix}/${confdir} ]]

Legend:
Removed from v.11761  
changed lines
  Added in v.19670