#!/bin/sh
# Script for reinstall packages stored by sysbackup.sh
# Скрипт для восстановления пакетов с программами.
# 
# http://www.opennet.ru/dev/fsbackup/
# Copyright (c) 2001 by Maxim Chirkov. <mc@tyumen.ru>

#-------------------
# Name of backup, single word.
# Имя бэкапа.
#-------------------

backup_name="test_host"


#-------------------
# Directory with installed packets list, stored by sysbackup.sh.
# Директория где расположен сохраненный скриптом sysbackup.sh список пакетов.
#-------------------

sysbackup_path="/usr/local/fsbackup/sys_backup" 


#-------------------
# Directory where stored OS packages.
# Директория где располдожены файлы с пакетами программ.
# Для FreeBSD, если переменная не заполнена, пакеты будут установленны с сайта 
# производителя.
#-------------------

packages_path="/usr/local/INST/RPMS" 


############################################################################
sysname="`uname | tr '[A-Z]' '[a-z]'`"
echo "OS: $sysname"

if [ "_$sysname" = "_linux" ]; then
    for cur_pkg in `cat $sysbackup_path/${backup_name}-pgk.list`; do
        echo "Installing $cur_pkg from local server..."
	rpm -i --nodeps $packages_path/$cur_pkg.*.rpm
    done
fi

if [ "_$sysname" = "_freebsd" ]; then
    if [ -z "$packages_path" ]; then
	for cur_pkg in `cat $sysbackup_path/${backup_name}-pgk.list |sed 's/^\(.*\)\-[0987654321.]*.*$/\1/'|sort|uniq`; do
	    echo "Installing $cur_pkg from remote server..."
    	    pkg_add -r $cur_pkg	
	done
    else
	export PKG_PATH=$packages_path
	for cur_pkg in `cat $sysbackup_path/${backup_name}-pgk.list`; do
        echo "Installing $cur_pkg from local path $packages_path..."
	    if -f $cur_pkg; then 
	        pkg_add $cur_pkg
	    else
		echo "Package $cur_pkg not found, tying to install by mask..."
		cur_pkg= `echo $cur_pkg| sed 's/^\(.*\)\-[0987654321.]*.*$/\1/'`
		pkg_add ${cur_pkg}-*.tgz
	    fi
	done
    fi
fi






syntax highlighted by Code2HTML, v. 0.9.1