summaryrefslogtreecommitdiffstats
path: root/installer
diff options
context:
space:
mode:
authorNico Dietrich2006-02-17 00:24:59 +0100
committerNico Dietrich2006-02-17 00:24:59 +0100
commit3822d8561adc12c7787b75fed3b096aee544112b (patch)
tree26d9b6a2792f3af4dfc795f62168202d764b01e7 /installer
parentNew style of exclude list (for rsync). (diff)
downloadcore-3822d8561adc12c7787b75fed3b096aee544112b.tar.gz
core-3822d8561adc12c7787b75fed3b096aee544112b.tar.xz
core-3822d8561adc12c7787b75fed3b096aee544112b.zip
going on with ld4-install
git-svn-id: http://svn.openslx.org/svn/openslx/dxs/ld4@77 95ad53e4-c205-0410-b2fa-d234c58c8868
Diffstat (limited to 'installer')
-rwxr-xr-xinstaller/ld4-inst117
1 files changed, 106 insertions, 11 deletions
diff --git a/installer/ld4-inst b/installer/ld4-inst
index c7a79f94..f4d42f8f 100755
--- a/installer/ld4-inst
+++ b/installer/ld4-inst
@@ -38,9 +38,52 @@ ask() {
else
local back=$userinput
fi
+ {!2}=$back
echo "$2=\"$back\"" >> .config
}
+distro_check() {
+ case "${!1}" in
+ Debian*|debian*|Sarge*|sarge*)
+ {!1}=debian
+ case "${!2}" in
+ Sarge*|sarge*|3.1*|*)
+ {!2}=3.1
+ ;;
+ esac
+ ;;
+ Ubuntu*|ubuntu*)
+ {!1}=ubuntu
+ case "${!2}" in
+ Breezy*|breezy*|*)
+ {!2}=5.10
+ ;;
+ esac
+ ;;
+ Gentoo*|gentoo*)
+ {!1}=gentoo
+ case "${!2}" in
+ 2005*|*)
+ {!2}=2005.1
+ ;;
+ esac
+ ;;
+ SuSE*|suse*|Suse*|SuSe*|SUSE*|*)
+ {!1}=suse
+ case "${!2}" in
+ 9*)
+ {!2}=9.3
+ ;;
+ 10.0)
+ {!2}=10.0
+ ;;
+ 10*)
+ {!2}=10.1
+ ;;
+ esac
+ ;;
+ esac
+}
configure() {
export LANG="c"
@@ -66,10 +109,42 @@ configure() {
fi
- # missing: try to detect server architecture
+ # try to detect server architecture
+ if [ -z "${server_distro}" ] ; then
+ for i in /bin/lsb_release /usr/bin/lsb_release; do
+ if [ -e $i ] ; then
+ $i > /dev/null 2>&1 || break
+ server_distro=`. $i -i | sed "s/.*\t//"`
+ server_distro_ver=`. $i -r | sed "s/.*\t//"`
+ break
+ fi
+ done
+ fi
+
+ # if still no distro name set, try to find it using significant files
+ if [ -z "${server_distro}" ] ; then
+ if [ -e ${ROOTDIR}/etc/SuSE-release ] ; then
+ server_distro=suse
+ server_distro_ver=`grep "VERSION" /etc/SuSE-release | sed "s/.*= //"`
+ elif [ -e /etc/lsb-release ] ; then
+ . /etc/lsb-release
+ server_distro=${DISTRIB_ID}
+ server_distro_ver=${DISTRIB_RELEASE}
+ elif [ -e /etc/debian_version ] ; then
+ server_distro=debian
+ server_distro_ver=`cat /etc/debian_version`
+ fi
+ fi
- # missing: ask for client & server distro
-
+ ask "Server distribution: " server_distro ${server_distro}
+ distro_check server_distro server_distro_ver
+ echo "Using ${server_distro} as server distribution"
+
+ # ask for client distro
+ ask "Client distribution: " client_distro ${client_distro}
+ distro_check client_distro client_distro_ver
+
+ . config-${server_distro}
# das grosse frage-antwort-spiel:
ask "Path for client system: " rootdir $rootdir
@@ -85,8 +160,9 @@ configure() {
ask "Which debug level should be used? " debuglevel $debuglevel
- # wo ist das referenzsystem?
-
+ # wo ist das referenzsystem? - was ist default ???
+ ask "IP + Path to reference system: " rsyncsource "localhost:/"
+
# hier auch dns-server etc abfragen??
# nfs / nbd / squash-fs?
@@ -94,16 +170,35 @@ configure() {
copy_system() {
- . exclude-${client_distro}
-
- # sync / mksquashfs
-
+ rsync -avDe ssh --delete --exclude-from=distro-specs/exclude-${client_distro} ${rsyncsource} ${rootdir}
+
+ # mksquashfs
}
# setting up server site configuration files etc.
setup_server () {
- # rewrite and copy / cat default files (may be distro-dependant):
- # dhcpd.conf, atftpd, exports
+ # dhcp
+ if [ -f ${dhcpd_conf} ] ; then
+ echo "Copying old dhcpd.conf to dhcpd.conf.bak"
+ mv ${dhcpd_conf} ${dhcpd_conf}.bak
+ fi
+ cp default_files/dhcpd.conf ${dhcpd_conf}
+ sed -e "s,@@@server@@@,${server}"
+
+ # atftpd
+ if [ -f ${atftpd_conf} ] ; then
+ echo "Copying old atftpd config file to ${atftpd_conf}.bak"
+ cp ${atftpd_conf} ${atftpd_conf}.bak
+ fi
+ sed -e 's,/tftpboot,${tftpbootdir},' -i ${atftpd_conf}
+
+ # nfs
+ exports_conf="/etc/exports"
+ if [ -f ${exports_conf} ] ; then
+ echo "Copying old nfs export file to ${exports_conf}.bak"
+ mv ${exports_conf} ${exports_conf}.bak
+ fi
+
# make services start
}