diff --git a/scripts/integrate-distro.sh b/scripts/integrate-distro.sh index 2d7f7dc6..6e18f51b 100644 --- a/scripts/integrate-distro.sh +++ b/scripts/integrate-distro.sh @@ -327,8 +327,6 @@ special_pkgs=" kernel$kernel_flavour-$rpm_kernel_version rpm " - - # -- sysvinit # systemd-sysvinit boots, but doesn't work cleanly as of now @@ -413,7 +411,7 @@ usage() echo " usage: $myname -h - $myname [options] [install|mount|unmount|mkinitrd|fs|parted-script|root-dir] + $myname [options] [install|mount|unmount|mkinitrd|fs|default-config|root-dir] options: -f @@ -442,7 +440,7 @@ usage() get_opts() { - eval set -- `getopt -o 'hd:n:a:p:k:u:w:s:r:fc:' -l parted-script:,config-file:,non-interactive -- "$@"` + eval set -- `getopt -o 'hd:n:a:p:k:u:w:s:r:fc:' -l config-file:,non-interactive -- "$@"` while [ "$1" != -- ] ; do case "$1" in -h) @@ -495,10 +493,6 @@ get_opts() -f) o_force=1 ;; - --parted-script) - parted_script="$2" - shift - ;; *) usage 1 ;; @@ -574,30 +568,89 @@ have_cfg_file() } } -have_cfg_section() +cfg_default() +{ + cat <<-EOT | grep -v "^ *#" + [parted] + mklabel gpt + mkpart primary 1M 2M + name 1 grub + set 1 bios_grub + mkpart primary 2M 10G + name 2 boot + mkpart primary 10G 40G + name 3 swap + mkpart primary 40G $max + name 4 root + + [repos.base] + distro-oss 0 ftp://ftp/pub/mirror/suse/distribution/$suse_version/repo/oss + + [repos.update] + #distro-non-oss 0 ftp://ftp/pub/mirror/suse/distribution/$suse_version/repo/non-oss + #update 0 ftp://ftp/pub/mirror/suse/update/$suse_version + + [repos.payload] + #ftp.jannet.de 10 ftp://dspdev:123qweasd@ftp.jannet.de/pub/packages/linux/suse/$suse_version/inst-source + ftp.jannet.de 10 ftp://dspdev:123qweasd@ftp/pub/mirror/jannet/ftp/pub/packages/linux/suse/$suse_version/inst-source + ftp.priv.lcl 5 ftp://dspdev:123qweasd@ftp.priv.lcl/pub/local/packages/suse/$suse_version + + [repos.special] + #jengelh 0 ftp://ftp/pub/mirror/gwdg/pub/linux/misc/suser-jengelh/openSUSE_$suse_version + #videolan 0 ftp://ftp/pub/mirror/videolan/pub/videolan/vlc/SuSE/$suse_version + EOT +} + +have_cfg_file_section() { have_cfg_file || return 1 ini_has_section "$config_file" "$@" || return 1 } -have_cfg_value() +have_cfg_file_value() { have_cfg_file || return 1 ini_has_value "$config_file" "$@" || return 1 } -cfg_section() +cfg_file_section() { have_cfg_file || return 1 ini_section "$config_file" "$@" } -cfg_value() +cfg_file_value() { have_cfg_file || return 1 ini_value "$config_file" "$@" } +cfg_section() +{ + if have_cfg_file_section "$1"; then + cfg_file_section "$1" + return 0 + fi + if cfg_default | ini_has_section /dev/stdin "$1"; then + cfg_default | ini_section /dev/stdin "$1" + return 0 + fi + return 1 +} + +cfg_value() +{ + if have_cfg_file_value "$1"; then + cfg_file_value "$1" + return 0 + fi + if cfg_default | ini_has_value /dev/stdin "$1"; then + cfg_default | ini_value /dev/stdin "$1" + return 0 + fi + return 1 +} + _run_chroot() { local cmd @@ -643,41 +696,12 @@ run_parted() done } -default_parted_script() -{ - cat <<- EOT - mklabel gpt - mkpart primary 1M 2M - name 1 grub - set 1 bios_grub - mkpart primary 2M 10G - name 2 boot - mkpart primary 10G 40G - name 3 swap - mkpart primary 40G $max - name 4 root - EOT -} - -parted_script() -{ - if [ "$parted_script" ]; then - cat $parted_script - return - fi - if have_cfg_section parted; then - ini_section "$config_file" parted - return - fi - default_parted_script -} - create_partition_table() { assert_not_mounted local max=$(LANG=POSIX parted -s $install_dev print | sed '/Disk/ !d; s/.*: *//') - parted_script | run_parted + cfg_section parted | run_parted grub_boot_partition_num=0 grub_slash_boot_partition_num=1 } @@ -765,45 +789,36 @@ unmount_devices() rm -f $ssh_auth_sock } +# TODO: remove this > zypper_repos_base() { - _cat << EOT | grep -v " #" - |distro-oss 0 ftp://ftp/pub/mirror/suse/distribution/$suse_version/repo/oss -EOT + cfg_section repos.base } zypper_repos_update() { # need to do this, as empty list breaks for loop in setup_zypper_repos() return 0 - cat <<- EOT | grep -v "^ *#" - #distro-non-oss 0 ftp://ftp/pub/mirror/suse/distribution/$suse_version/repo/non-oss - #update 0 ftp://ftp/pub/mirror/suse/update/$suse_version - EOT + cfg_section repos.update } zypper_repos_payload() { - cat <<- EOT | grep -v "^ *#" - #ftp.jannet.de 10 ftp://dspdev:123qweasd@ftp.jannet.de/pub/packages/linux/suse/$suse_version/inst-source - ftp.jannet.de 10 ftp://dspdev:123qweasd@ftp/pub/mirror/jannet/ftp/pub/packages/linux/suse/$suse_version/inst-source - ftp.priv.lcl 5 ftp://dspdev:123qweasd@ftp.priv.lcl/pub/local/packages/suse/$suse_version - EOT + cfg_section repos.payload } zypper_repos_special() { return 0 - cat <<- EOT | grep -v "^ *#" - #jengelh 0 ftp://ftp/pub/mirror/gwdg/pub/linux/misc/suser-jengelh/openSUSE_$suse_version - #videolan 0 ftp://ftp/pub/mirror/videolan/pub/videolan/vlc/SuSE/$suse_version - EOT + cfg_section repos.special } +# TODO: remove this < zypper_repos() { local repo cmd for repo in $*; do + #cfg_section repos.$repo # hangs zypper_repos_$repo done } @@ -1353,8 +1368,9 @@ else fi case $cmd in -parted-script) - parted_script +default-config) + cfg_default + exit $? ;; root-dir) echo $root @@ -1376,7 +1392,7 @@ if [ `whoami` != root -o "$l32" ]; then #sudo -i $exe $@ -p $root_password_file [ "$env_ssh_auth_sock" ] && opt_ssh_auth_sock="-s $env_ssh_auth_sock" opts="" - [ "$parted_script" ] && opts="$opts --parted-script $parted_script" + [ "$config_file" ] && opts="$opts --config-file $config_file" #debug="/bin/bash -x" ssh -l root localhost $l32 $debug $exe $@ -p $root_password_file -u $scm_user -w $cwd $opt_ssh_auth_sock $opts