#!/bin/sh

po_domain="alterator-pkg"
alterator_api_version=1

sources_list="/etc/apt/sources.list /etc/apt/sources.list.d"

mountpoint="/media/cdrom"
pkggroups="$mountpoint/Metadata/pkg-groups.tar"
diskinfo="$mountpoint/.disk/info"
pkgdir="/var/lib/install3"

disk_file="$pkgdir/cd2"

. alterator-sh-functions
. shell-regexp

disk_valid()
{
    [ -f "$diskinfo" ] && [ "$(cat "$diskinfo")" = "$(disk_name)" ]
}

disk_add_metadata()
{
    if [ -f "$pkggroups" ];then
	mkdir -p "$pkgdir"
	tar -C "$pkgdir" -xvpf "$pkggroups" >&2
    fi
}

disk_add_cdrom()
{
    apt-cdrom --cdrom "$mountpoint" --no-mount -o dir::etc=/etc/apt/sources.list.d add >&2
}

disk_add()
{
    disk_add_metadata && disk_add_cdrom
}

disk_del()
{
    find  $sources_list -type f|
	xargs \
	    sed -i "/^rpm[[:space:]]\+cdrom:\[$(quote_sed_regexp "$1")\]\/[[:space:]]/ d"
}

disk_name()
{
    [ ! -s "$disk_file" ] ||
	cat "$disk_file"
}

on_message()
{
    case "$in_action" in
	read)
	    write_string_param name "$(disk_name)"
	    ;;
	write)
	    mount "$mountpoint" >&2
	    if ! disk_valid; then
		write_error "`_ "Please insert disk"`"
	    elif ! disk_add ;then
		write_error "`_ "Invalid disk"`"
	    fi
	    umount "$mountpoint" >&2
	    ;;
    esac
}

message_loop
