summaryrefslogtreecommitdiff
path: root/unofficial
diff options
context:
space:
mode:
authorDieter Plaetinck <dieter@plaetinck.be>2009-03-13 21:15:09 +0100
committerDieter Plaetinck <dieter@plaetinck.be>2009-03-13 21:15:09 +0100
commit06e6aa5d5eaa01ff7a371a66c88da8568f7f7e68 (patch)
tree5918fe64096a13a7a1da73e2125d0308885b0cea /unofficial
parentd120e407654b5f1c88cb146511b9439b80190bb7 (diff)
uniformize variable handling automatic procedure, change the package related variable stuff, support choosing grub device in automatic, fix grub installing bug, cleanup official vs dieters stuff, etc
Diffstat (limited to 'unofficial')
-rw-r--r--unofficial/dieter-desktop-a7n8x.automaticprofile115
-rw-r--r--unofficial/modules/dieter/procedures/dieter-automatic27
2 files changed, 142 insertions, 0 deletions
diff --git a/unofficial/dieter-desktop-a7n8x.automaticprofile b/unofficial/dieter-desktop-a7n8x.automaticprofile
new file mode 100644
index 0000000..2e63a78
--- /dev/null
+++ b/unofficial/dieter-desktop-a7n8x.automaticprofile
@@ -0,0 +1,115 @@
+#!/bin/bash
+# An example config for the deployment procedure
+
+# Use var_* for "standard" variables recognized by the automatic procedure. these should work for everyone.
+# use all other variable names for your own stuff. (eg i use them to define some things needed to pull my stuff from svn.)
+
+# 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.
+
+
+var_RUNTIME_REPOSITORIES=(archlinuxfr "Server = http://repo.archlinux.fr/$var_ARCH")
+var_RUNTIME_PACKAGES="svn yaourt"
+
+DEPLOY_CLASS=desktop-a7n8x
+HOSTNAME=dieter-ws
+SVN_USERNAME=dieter
+SVN_PASSWORD=
+SVN_BASE=https://192.168.1.2/svn/repos
+
+var_PARTITIONS='/dev/sda 100:ext2:+ 2048:swap *:xfs'
+var_BLOCKDATA='/dev/sda1 raw no_label ext2;yes;/boot;target;no_opts;no_label;no_params
+/dev/sda2 raw no_label swap;yes;no_mountpoint;target;no_opts;no_label;no_params
+/dev/sda3 raw no_label dm_crypt;yes;no_mountpoint;target;no_opts;sda3crypt;-c_aes-xts-plain_-y_-s_512
+/dev/mapper/sda3crypt dm_crypt no_label lvm-pv;yes;no_mountpoint;target;no_opts;no_label;no_params
+/dev/mapper/sda3crypt+ lvm-pv no_label lvm-vg;yes;no_mountpoint;target;no_opts;cryptpool;/dev/mapper/sda3crypt
+/dev/mapper/cryptpool lvm-vg cryptpool lvm-lv;yes;no_mountpoint;target;no_opts;cryptroot;5G|lvm-lv;yes;no_mountpoint;target;no_opts;crypthome;5G
+/dev/mapper/cryptpool-cryptroot lvm-lv no_label xfs;yes;/;target;no_opts;no_label;no_params
+/dev/mapper/cryptpool-crypthome lvm-lv no_label xfs;yes;/home;target;no_opts;no_label;no_params'
+
+
+
+phase_preparation=(accept_ssl_cert "${phase_preparation[@]}") # make accept_ssl_cert the very first thing. it needs to go before fetch_configs and it's not easy to put it somewhere in the middle, so...
+phase_system+=(configure_home)
+
+
+# Deprecated. I try to keep everything in 1 config file now. that's cooler.
+#worker_fetch_configs ()
+#{
+# $SVN export $SVN_BASE/ddm-configs/$DEPLOY_CLASS/trunk/disks/.blockdata $RUNTIME_DIR/aif-blockdata || die_error "Could not svn export $SVN_BASE/ddm-configs/$DEPLOY_CLASS/trunk/disks/.blockdata to $RUNTIME_DIR/aif-blockdata"
+# $SVN export $SVN_BASE/ddm-configs/$DEPLOY_CLASS/trunk/disks/.partitions $RUNTIME_DIR/aif-partitions || die_error "Could not svn export $SVN_BASE/ddm-configs/$DEPLOY_CLASS/trunk/disks/.partitions to $RUNTIME_DIR/aif-partitions"
+#}
+
+
+
+worker_package_list ()
+{
+ $SVN export $SVN_BASE/ddm-configs/$DEPLOY_CLASS/trunk/package-list $var_PKG_FILE || die_error "Could not export package list!"
+ # cat -> there are newlines in it -> var=`echo $var` -> not anymore :)
+ TARGET_PACKAGES=`cat $var_PKG_FILE` && TARGET_PACKAGES=`echo $TARGET_PACKAGES` || die_error "Could not cat package list. THIS SHOULD NEVER HAPPEN."
+ # Strip away all packages not known by pacman. To get all packages, you'll need to do that when the system is installed TODO: don't do this. WAITINGFOR: --config support in yaourt + 'list of md5s of trusted pkgbuilds' support in yaourt
+ # NOTE: maybe chrooting could be an option too (to avoid --config support, but problem 2 stays)
+ TARGET_PACKAGES=`$PACMAN_TARGET -Si $TARGET_PACKAGES 2>/dev/null | awk '/Name/ {print $3}'`
+ TARGET_PACKAGES=`echo $TARGET_PACKAGES` #TODO: some stuff goes wrong here
+}
+
+
+worker_accept_ssl_cert ()
+{
+ mkdir -p /root/.subversion/auth/svn.ssl.server
+ cat > /root/.subversion/auth/svn.ssl.server/1123d3c8b27895efee3848cc779e526a << EOF
+K 10
+ascii_cert
+V 716
+MIICFTCCAX6gAwIBAgIBAjANBgkqhkiG9w0BAQQFADBVMRswGQYDVQQKExJBcGFjaGUgSFRUUCBTZXJ2ZXIxIjAgBgNVBAsTGUZvciB0ZXN0aW5nIHB1cnBvc2VzIG9ubHkxEjAQBgNVBAMTCWxvY2FsaG9zdDAeFw0wNjA3MjQxMjUwMzdaFw0wNzA3MjQxMjUwMzdaMEwxGzAZBgNVBAoTEkFwYWNoZSBIVFRQIFNlcnZlcjEZMBcGA1UECxMQVGVzdCBDZXJ0aWZpY2F0ZTESMBAGA1UEAxMJbG9jYWxob3N0MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDF5PB1NnUve2jkisDTGsxKC9qzpnl+eX8UIR/1s+yX2ZIPNnIryeqTc6sS3cBHz2/AufIr0xbpXkTa4V5Es5bXA7W1D7+ZzuFHjjyi4E2eqYVkhkv1sRL5TpAovfjAA+96iaFHp3yKYiuw/nWwQTSW9M1VrDEym4ODxyJOtNdgQQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBABY0bnBf9tL1WMC1sLxB1eDXvs5qNY96mny+EKGAbyQROPaXwsRQB0HrAkuWfHzQlgIdD6AfGsd+YMcEuqSPzIz6t6mA45jl++WvI6we9t3eYChtdPD2xjgHti0aSiDyVLTJbXPnkdgzKvIjYZcXBwbmbQSrg0STO5m+cSYt3chx
+K 8
+failures
+V 2
+14
+K 15
+svn:realmstring
+V 23
+https://192.168.1.2:443
+END
+EOF
+}
+
+
+worker_configure_home ()
+{
+ #TODO checkout from svn
+ true
+}
+
+
+
+# See http://wiki.archlinux.org/index.php/Yaourt
+
+# Not needed yet...
+#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
+#}
+
+
+worker_set_clock ()
+{
+ #Not doing anything. hwclock is set already, configs are coming from svn anyway and we'll use ntp.
+ true
+}
+
+worker_runtime_yaourt ()
+{
+ _yaourt_replace_pacman
+}
diff --git a/unofficial/modules/dieter/procedures/dieter-automatic b/unofficial/modules/dieter/procedures/dieter-automatic
new file mode 100644
index 0000000..09e8972
--- /dev/null
+++ b/unofficial/modules/dieter/procedures/dieter-automatic
@@ -0,0 +1,27 @@
+#!/bin/bash
+# Dieters personal procedure, adds a bit on top of the official automatic procedure.
+# TODO: implement this.
+
+depend_procedure core automatic
+
+
+# Check if we have all needed settings loaded from the profile
+worker_runtime_settings () #TODO: add to a phase
+{
+ if check_is_in svn $var_RUNTIME_PACKAGES
+ then
+ [ -z "$SVN_USERNAME" ] && ask_string "Please enter your svn username" && SVN_USERNAME=$ANSWER_STRING
+ [ -z "$SVN_PASSWORD" ] && ask_password svn #TODO: if user entered incorrect password, the install process will just fail..
+ [ -z "$SVN_BASE" ] && ask_string "What's the base path of your svn repo? (no ending /) " && SVN_BASE=$ANSWER_STRING
+ [ -z "$DEPLOY_CLASS" ] && ask_string "Which hostclass are you installing? (optional)" '' 0 && DEPLOY_CLASS=$ANSWER_STRING
+ SVN="svn --username $SVN_USERNAME --password $SVN_PASSWORD"
+ elif check_is_in moo $var_RUNTIME_PACKAGES
+ then
+ # Maybe more stuff later
+ true
+ fi
+ [ -z "$HOSTNAME" ] && ask_string "Hostname of target system?" &&
+ HOSTNAME=$ANSWER_STRING
+
+ return 0
+}