source: MondoRescue/trunk/tools/distro-env@ 913

Last change on this file since 913 was 900, checked in by Bruno Cornec, 17 years ago

Huge patch to introduce low level functions that will bw used everywhere (mr_free, mr_asprintf, ...)
Nearly linking now due to that.

  • Property svn:executable set to *
File size: 3.5 KB
Line 
1#!/bin/bash
2#
3# Create env depending on the distro on which we are
4#
5# $Id$
6#
7# Input parameters : $ddir (distro name) and $dver (distro version)
8# If they do not exist then deduce from current distro
9# Exports : $dfam (distro family) $suf (pkg suffix) $dtype (distro type) TOPBUILDDIR (dir to build packages)
10
11#
12# Guess ddir and dver from the underlying distro
13#
14if [ _"$ddir" = _"" ]; then
15 if [ -e /etc/mandriva-release ]; then
16 export ddir="mandriva"
17 export dver=`awk '{print $4}' /etc/mandriva-release`
18 elif [ -e /etc/mandrake-release ]; then
19 export ddir="mandrake"
20 export dver=`awk '{print $3}' /etc/mandrake-release`
21 elif [ -e /etc/redhat-release ]; then
22 grep -q Enterprise /etc/redhat-release
23 if [ $? -eq 0 ]; then
24 export ddir="rhel"
25 export dver=`awk '{print $7}' /etc/redhat-release`
26 elif grep -q Fedora /etc/redhat-release ; then
27 export ddir="fedora"
28 export dver=`awk '{print $4}' /etc/redhat-release`
29 else
30 export ddir="redhat"
31 export dver=`awk '{print $5}' /etc/redhat-release`
32 fi
33 elif [ -e /etc/SuSE-release ]; then
34 grep -q Enterprise /etc/SuSE-release
35 if [ $? -eq 0 ]; then
36 export ddir="sles"
37 export dver=`head -1 /etc/SuSE-release | awk '{print $5}'`
38 else
39 export ddir="suse"
40 export dver=`head -1 /etc/SuSE-release | awk '{print $3}'`
41 fi
42 elif [ -e /etc/gentoo-release ]; then
43 export ddir="gentoo"
44 export dver=`awk '{print $5}' /etc/gentoo-release | cut -d. -f1-2`
45 elif [ -e /etc/debian_version ]; then
46 export ddir="debian"
47 export dver=`cat /etc/debian_version`
48 # Debian assigns release names only once a release actually happens.
49 # Debian does not distinguish between testing and unstable because
50 # unstable today is what testing will be in about ten days time. So,
51 # in case we encounter "tesing/unstable", we assume unstable, i.e. sid.
52 # Note that for released versions, the numeric version will be contained
53 # in debian_version, e.g. on a sarge system, the value will be '3.1'.
54 if [ $dver = "testing/unstable" ]; then
55 export dver = "sid"
56 fi
57 else
58 export ddir="unknown"
59 export dver=""
60 fi
61fi
62
63#
64# Generate all other parameters
65#
66if [ $ddir = "debian" ]; then
67 dfam="debian"
68 dtype="deb"
69 suf=".${dfam}${dver}"
70elif [ $ddir = "gentoo" ]; then
71 dfam="gentoo"
72 dtype="ebuild"
73 dver1=`echo ${dver} | sed "s/\.//"`
74 suf=".${ddir}${dver1}"
75elif [ $ddir = "slackware" ]; then
76 dfam="slack"
77 dtype="tgz"
78 suf=".${dfam}${dver}"
79elif [ $ddir = "sles" -o $ddir = "suse" ]; then
80 dfam="suse"
81 dtype="rpm"
82 suf=".${ddir}${dver}"
83elif [ $ddir = "fedora" -o $ddir = "redhat" -o $ddir = "rhel" ]; then
84 dfam="redhat"
85 dtype="rpm"
86 dver1=`echo ${dver} | sed "s/\.//"`
87 if [ $ddir = "fedora" ]; then
88 suf=".fc${dver1}"
89 elif [ $ddir = "redhat" ]; then
90 suf=".rh${dver1}"
91 else
92 suf=".rhel${dver1}"
93 fi
94elif [ $ddir = "mandrake" ]; then
95 dfam="mandriva"
96 dtype="rpm"
97 suf=".`echo $dver | sed 's/\.//'`mdk"
98elif [ $ddir = "mandriva" ]; then
99 dfam="mandriva"
100 dtype="rpm"
101 suf=".`echo $dver | sed 's/\.//'`mdv"
102else
103 dfam="unknown"
104 dtype="unknown"
105 suf="unknown"
106fi
107
108export dfam
109export dtype
110export suf
111
112#
113# Additional exports and preparation for some distros
114#
115
116# Default
117export TOPBUILDDIR=${TOPDIR}/../build
118
119if [ _"$dtype" = _"rpm" ]; then
120 export ARCH=`rpm --showrc | egrep "^build arch" | awk '{print $4}'`
121 if [ -f ${HOME}/.rpmmacros ]; then
122 export TOPBUILDDIR=`egrep '^%_topdir' ${HOME}/.rpmmacros | awk '{print $2}'`
123 fi
124 mkdir -p ${TOPBUILDDIR}/{RPMS,SRPMS,SPECS,SOURCES,BUILD}
125elif [ _"$dtype" = _"deb" ]; then
126 mkdir -p ${TOPBUILDDIR}
127elif [ _"$dtype" = _"ebuild" ]; then
128 mkdir -p ${TOPBUILDDIR}/portage
129fi
Note: See TracBrowser for help on using the repository browser.