From cd6c7c01579bc37c458eac1a649ef74f17def3cb Mon Sep 17 00:00:00 2001 From: Dieter Plaetinck Date: Sat, 20 Dec 2008 17:31:25 +0100 Subject: fixes/cleanups for runtime packages and repositories. Not much use in making yauort a module, its integrated now --- examples/deployconfig-dieter | 42 ++++++++++++++++++++++++++++++++++++++++-- src/core/procedures/automatic | 1 - src/core/procedures/base | 13 +++++++++++++ 3 files changed, 53 insertions(+), 3 deletions(-) diff --git a/examples/deployconfig-dieter b/examples/deployconfig-dieter index c626a64..9e80dc4 100644 --- a/examples/deployconfig-dieter +++ b/examples/deployconfig-dieter @@ -1,8 +1,13 @@ #!/bin/bash # An example config for the deployment procedure -#TODO: install ruby-gems too +# TODO: install ruby-gems too +# TODO * dieter/automatic: wait for yaourt --config fix ( http://forums.archlinux.fr/post23171.html#23171 ) +# TODO:* dieter/automatic: put config files from svn in place first, so that if a package has an update, it can do it's thing. +depend_module yaourt + +var_RUNTIME_REPOSITORIES=(archlinuxfr "Server = http://repo.archlinux.fr/$var_ARCH") var_RUNTIME_PACKAGES="svn" DEPLOY_CLASS=desktop-a7n8x @@ -23,6 +28,19 @@ worker_fetch_configs () } +worker_runtime_packages () +{ + for pkg in $var_RUNTIME_PACKAGES + do + $PACMAN -Sy --noconfirm --needed $pkg + done + + # We'll install packages on the target system, for that we need yaourt + _runtime_yaourt + _yaourt_replace_pacman +} + + worker_package_list () { $SVN export $SVN_BASE/ddm-configs/$DEPLOY_CLASS/trunk/package-list $var_PKG_FILE || die_error "Could not export package list!" @@ -55,4 +73,24 @@ worker_configure_home () { #TODO checkout from svn true -} \ No newline at end of file +} + + + +# See http://wiki.archlinux.org/index.php/Yaourt + +worker_install_packages () #pre_ / post_ callbacks would be useful here +{ + PACMAN_BACKUP=$PACMAN + PACMAN_TARGET_BACKUP=$PACMAN_TARGET + PACMAN=${PACMAN//pacman/yaourt} + PACMAN_TARGET=${PACMAN_TARGET//pacman/yaourt} + + target_prepare_pacman core + [ -z "$TARGET_PACKAGES" ] && die_error "No packages listed to be installed!" + installpkg + + PACMAN=$PACMAN_BACKUP + PACMAN_TARGET=$PACMAN_TARGET_BACKUP + +} diff --git a/src/core/procedures/automatic b/src/core/procedures/automatic index dc879ee..bb78437 100644 --- a/src/core/procedures/automatic +++ b/src/core/procedures/automatic @@ -5,7 +5,6 @@ # In theory, the only manual thing should maybe be configuring the runtime network and putting the configfile in place # TODO: I don't know if you can do non-interactive dm_crypt stuff.. maybe by pulling luks keyfiles from svn/git/..? -depend_module yaourt depend_procedure core base var_OPTS_STRING="c:" diff --git a/src/core/procedures/base b/src/core/procedures/base index 1c1d640..4fd32c8 100644 --- a/src/core/procedures/base +++ b/src/core/procedures/base @@ -3,6 +3,7 @@ #TODO: make this profile work on itself, eg some stuff from inheriting profiles should be moved in, stuff implemented etc var_DEFAULTFS="/boot:32:ext2:+ swap:256:swap /:7500:ext3 /home:*:ext3" var_TARGET_DIR="/mnt" # When overriding this, do _not_ add a trailing /. It's not needed and maybe you could even break something +var_RUNTIME_REPOSITORIES= # array like this ('name1' 'location of repo 1' ['name2' 'location of repo2',..]) var_RUNTIME_PACKAGES= var_PKG_FILE=$RUNTIME_DIR/package-list # not used by default in base/interactive. can be used by custom procedures or profiles for the automatic procedure var_MIRRORLIST="/etc/pacman.d/mirrorlist" @@ -17,6 +18,7 @@ phase_preparation=(\ sysprep \ select_source \ runtime_network \ + runtime_repositories \ runtime_packages) phase_basics=(\ @@ -77,6 +79,17 @@ worker_runtime_network () } +worker_runtime_repositories () +{ + for i in `seq 0 $((${#var_RUNTIME_REPOSITORIES[@]}/2-1))` + do + repo=${var_RUNTIME_REPOSITORIES[$(($i*2))]} + location=${var_RUNTIME_REPOSITORIES[$(($i*2+1))]} + list_pacman_repos runtime | grep -q $repo || add_pacman_repo runtime $repo $location + done +} + + worker_runtime_packages () { for pkg in $var_RUNTIME_PACKAGES -- cgit v1.2.3-54-g00ecf