]> git.pld-linux.org Git - projects/pld-builder.new.git/commitdiff
- script to install chroot and its config
authorMichal Moskal <michal@moskal.me>
Sun, 8 Jun 2003 09:51:11 +0000 (09:51 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
Changed files:
    config/global -> 1.1
    config/src -> 1.1
    install-chroot.sh -> 1.1

config/global [new file with mode: 0644]
config/src [new file with mode: 0644]
install-chroot.sh [new file with mode: 0755]

diff --git a/config/global b/config/global
new file mode 100644 (file)
index 0000000..68c3415
--- /dev/null
@@ -0,0 +1,5 @@
+#!/bin/sh
+dist_url="ftp://roke.freak/dists/nest/"
+# builder_pkgs="rpm-build poldek shadow"
+# spools_dir="/spools/"
+# builder_uid=2000
diff --git a/config/src b/config/src
new file mode 100644 (file)
index 0000000..74d7521
--- /dev/null
@@ -0,0 +1,7 @@
+#!/bin/sh
+chroot_name="src"
+chroot_dir="/adm/chroot-src"
+arch="athlon"
+# default for src*
+# builder_arch_pkgs="cvs wget"
+cvs_root=":pserver:builder:foo123@roke.freak:/home/services/cvsroot"
diff --git a/install-chroot.sh b/install-chroot.sh
new file mode 100755 (executable)
index 0000000..9fd12f8
--- /dev/null
@@ -0,0 +1,150 @@
+#!/bin/sh
+
+# ------------------ functions
+conf_dir="$HOME/pld-builder.new/config"
+
+die () {
+  echo "$0: $*" 1>&2
+  exit 1
+}
+
+default_config () {
+  builder_pkgs="rpm-build poldek shadow"
+  spools_dir="/spools/"
+  builder_uid=2000
+
+  case "$1" in
+  src* )
+    builder_arch_pkgs="cvs wget"
+    ;;
+  esac
+}
+
+load_config () {
+  test -d $conf_dir || die "cannot find $conf_dir"
+  test "$1" = "" && die "USAGE: $0 chroot-name"
+  test -f $conf_dir/global || die "no global conf ($conf_dir/global)"
+  test -f $conf_dir/$1 || die "no local conf ($conf_dir/$1)"
+  
+  default_config "$1"
+
+  . $conf_dir/global
+  . $conf_dir/$1
+
+  test "$chroot_name" != "$1" && die "config is for '$chroot_name' not for '$1'"
+}
+# ------------------ end functions
+
+load_config "$1"
+
+poldek_src () {
+  if test "$1" ; then
+    echo "source = local,pri=1 $spools_dir/local-ready/"
+  fi
+  cat <<EOF
+source = main-test,noauto,pri=2 $dist_url/test/$arch/
+source = main-ready,pri=3 $dist_url/ready/$arch/
+source = main-ug,pri=4 $dist_url/updates/general/$arch/
+source = main-us,pri=5 $dist_url/updates/security/$arch/
+source = main,pri=6 $dist_url/PLD/$arch/RPMS/
+EOF
+}
+
+common_poldek_opt () {
+cat <<EOF
+particle_install = no
+greedy = yes
+rpmdef = _excludedocs 1
+EOF
+}
+
+chr() {
+  sudo chroot $chroot_dir su - root -c "$*"
+}
+
+chb() {
+  sudo chroot $chroot_dir su - builder -c "$*"
+}
+
+rm -rf tmp-chroot
+mkdir tmp-chroot
+cd tmp-chroot
+
+cat >poldek.conf <<EOF
+$(poldek_src)
+$(common_poldek_opt)
+cachedir = $chroot_dir$spools_dir/poldek
+keep_downloads = no
+EOF
+
+cat > install-$chroot_name.sh <<EOF
+#!/bin/sh
+set -x
+cd $PWD
+rm -rf $chroot_dir
+mkdir -p $chroot_dir/$spools_dir/poldek
+poldek --conf poldek.conf --mkdir --install-dist $chroot_dir \
+       $builder_pkgs $builder_arch_pkgs
+EOF
+chmod 755 install-$chroot_name.sh
+
+echo "About to remove '$chroot_dir' and install it again, using"
+echo "install-$chroot_name.sh:"
+echo 
+cat install-$chroot_name.sh
+echo 
+cat <<EOF
+what to do?
+  r) run already run the script, 
+  s) run it using sudo, 
+  a) abort"
+EOF
+echo -n "[r/s/a]: "
+read ans
+case "$ans" in
+  r )
+    ;;
+  s )
+    sudo ./install-$chroot_name.sh
+    ;;
+  * )
+    echo "bye"
+    exit 1
+esac
+
+echo "OK"
+echo "installing conf..."
+cat >poldek.conf <<EOF
+$(poldek_src)
+$(common_poldek_opt)
+cachedir = $spools_dir/poldek
+keep_downloads = yes
+EOF
+
+chr "cat > /etc/poldek.conf" < poldek.conf
+chr "useradd -c 'PLD $chroot_name builder' -d /home/users/builder -m -g users -s /bin/sh builder"
+chr "cat > /etc/resolv.conf" < /etc/resolv.conf
+chr "cat > /etc/mtab" < /dev/null
+
+install_SPECS_builder () {
+  cat >install-specs <<EOF
+set -x
+rm -rf rpm
+mkdir rpm
+cvs -d $cvs_root login
+cd rpm
+cvs -d $cvs_root co SPECS/builder
+cvs -d $cvs_root co SOURCES/.cvsignore
+mkdir SRPMS RPMS BUILD
+cd SPECS
+cvs up additional-md5sums mirrors
+EOF
+  chb "sh" < install-specs
+  rm install-specs
+}
+
+case $chroot_name in
+  src* )
+    install_SPECS_builder
+    ;;
+esac
This page took 0.209054 seconds and 4 git commands to generate.