#!/bin/bash
# Copyright 1999-2004 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id: /var/cvsroot/gentoo-src/portage/bin/dosbin,v 1.11 2004/10/04 13:56:50 vapier Exp $

if [ ${#} -lt 1 ] ; then
	echo "${0}: at least one argument needed"
	exit 1
fi
if [ ! -d "${D}${DESTTREE}/sbin" ] ; then
	install -d "${D}${DESTTREE}/sbin" || exit 2
fi

for x in "$@" ; do
	if [ -x "${x}" ] ; then
		#if executable, use existing perms
		install -m0755 "${x}" "${D}${DESTTREE}/sbin" || exit 3
	else
		#otherwise, use reasonable defaults
		echo ">>> dosbin: making ${x} executable..."
    if [ "$USERLAND" == "GNU" ]; then
      install -m0755 -o root -g root  "${x}" "${D}${DESTTREE}/sbin" || exit 4
    else
      install -m0755 -o root -g wheel "${x}" "${D}${DESTTREE}/sbin" || exit 4
    fi
	fi
done
