alterator-preinstall-0.7.2/000075500000000000000000000000001227417661100156755ustar00rootroot00000000000000alterator-preinstall-0.7.2/Makefile000064400000000000000000000001441227417661100173340ustar00rootroot00000000000000NAME=preinstall all: clean: install: install-module include /usr/share/alterator/build/module.mak alterator-preinstall-0.7.2/backend3/000075500000000000000000000000001227417661100173475ustar00rootroot00000000000000alterator-preinstall-0.7.2/backend3/preinstall000075500000000000000000000053211227417661100214530ustar00rootroot00000000000000#!/bin/sh # ***** BEGIN LICENSE BLOCK ***** # * Copyright (C) 2007 Alexey Gladkov # * Copyright (C) 2007 Dmitry V. Levin # * Copyright (C) 2007 Anton V. Boyarshinov # * # * This program is free software; you can redistribute it and/or modify # * it under the terms of the GNU General Public License as published by # * the Free Software Foundation; either version 2 of the License, or # * (at your option) any later version. # * # * This program is distributed in the hope that it will be useful, # * but WITHOUT ANY WARRANTY; without even the implied warranty of # * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # * GNU General Public License for more details. # * # * You should have received a copy of the GNU General Public License # * along with this program; if not, write to the Free Software # * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. # ***** END LICENSE BLOCK ***** alterator_api_version=1 preinstall_dir="/usr/share/install2/preinstall.d" alteratord_socket_dir="/var/run/alteratord" . alterator-sh-functions . install2-sh-functions . install2-remount-functions PROG=preinstall notify() { [ -z "$AUTOINSTALL" ] || return 0 alterator-mailbox-send "$1" ||: } run_preinstall() { if ! remount_chroot >&2; then notify "error \"destination filesystem remount error\"" fi local f max counter=0 max="$(find "$preinstall_dir" "$destdir/$preinstall_dir" -mindepth 1 -maxdepth 1 -type f -perm -u=x |wc -l)" notify "init #t max $max" # run scripts from packages first, because basic installer scripts can umount /image for f in "$destdir/$preinstall_dir"/* "$preinstall_dir"/*; do [ -f "$f" -a -x "$f" ] || continue if "$f" >&2; then notify "package \"${f##*/}\" step $counter" counter=$(($counter + 1)) printf '%s %s - OK\n' "$(date +%T)" "$f" >&2 else notify "error \"${f##*/}\"" printf '%s %s - FAILED\n' "$(date +%T)" "$f" >&2 break fi done notify "package \" \" step $max" # replace itself with alteratord from chroot [ -n "${ALTERATOR_DESTDIR:-}" ] || return rm -f /tmp/alterator/.socket mount -o bind /run $destdir/run mount -o bind $destdir$alteratord_socket_dir $alteratord_socket_dir chroot "$ALTERATOR_DESTDIR" /etc/init.d/alteratord start # wait until new alteratord is ready to use alterator-wait # notify interface about finish notify "done #t" sync # stop old alteratord and kill itself #sleep 1 #service alteratord stop } on_message() { case "$in_action" in write) echo "$PROG: write init" >&2 if [ -z "$AUTOINSTALL" ]; then run_preinstall & else run_preinstall fi ;; esac } message_loop alterator-preinstall-0.7.2/ui/000075500000000000000000000000001227417661100163125ustar00rootroot00000000000000alterator-preinstall-0.7.2/ui/preinstall/000075500000000000000000000000001227417661100204675ustar00rootroot00000000000000alterator-preinstall-0.7.2/ui/preinstall/index.scm000064400000000000000000000035111227417661100223020ustar00rootroot00000000000000; ***** BEGIN LICENSE BLOCK ***** ; * Copyright (C) 2007 Alexey Gladkov ; * ; * This program is free software; you can redistribute it and/or modify ; * it under the terms of the GNU General Public License as published by ; * the Free Software Foundation; either version 2 of the License, or ; * (at your option) any later version. ; * ; * This program is distributed in the hope that it will be useful, ; * but WITHOUT ANY WARRANTY; without even the implied warranty of ; * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ; * GNU General Public License for more details. ; * ; * You should have received a copy of the GNU General Public License ; * along with this program; if not, write to the Free Software ; * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. ; ***** END LICENSE BLOCK ***** (document:surround "/std/frame") (define (progress-monitor msg) (case (cond-car msg) ((error) (remove-mailbox progress-monitor) (status-l text (format #f "~A:

~A

" (_ "Execution of script failed") (or (cond-cadr msg) "unknown"))) (frame:next-activity #t) (frame:back-activity #t)) ((init) (progress text (_ "Saving settings ...")) (progress maximum (cond-plistq 'max msg 0))) ((done) (remove-mailbox progress-monitor) (frame:next)) ((package) (progress value (cond-plistq 'step msg 0))))) (vbox max-height 150 (spacer) (document:id progress (progressbar maximum 0 value 0 text " ")) (document:id status-l (label)) (spacer)) (document:root (when loaded (add-mailbox progress-monitor) (frame:next-activity #f) (frame:back-activity #f) (woo-write "/preinstall")))