Module Name: othersrc Committed By: cheusov Date: Sun Nov 6 11:36:31 UTC 2011
Added Files: othersrc/usr.sbin/pkg_setup: Makefile pkg_setup Log Message: pkg_setup is a replacement for pkg_install in base system. It downloads pkg_install package from binary repository and installs it creating pkgdb. To generate a diff of this commit: cvs rdiff -u -r0 -r1.1 othersrc/usr.sbin/pkg_setup/Makefile \ othersrc/usr.sbin/pkg_setup/pkg_setup Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Added files: Index: othersrc/usr.sbin/pkg_setup/Makefile diff -u /dev/null othersrc/usr.sbin/pkg_setup/Makefile:1.1 --- /dev/null Sun Nov 6 11:36:31 2011 +++ othersrc/usr.sbin/pkg_setup/Makefile Sun Nov 6 11:36:31 2011 @@ -0,0 +1,5 @@ +SCRIPTS= pkg_setup + +#MAN= pkg_setup.8 + +.include <bsd.prog.mk> Index: othersrc/usr.sbin/pkg_setup/pkg_setup diff -u /dev/null othersrc/usr.sbin/pkg_setup/pkg_setup:1.1 --- /dev/null Sun Nov 6 11:36:31 2011 +++ othersrc/usr.sbin/pkg_setup/pkg_setup Sun Nov 6 11:36:31 2011 @@ -0,0 +1,92 @@ +#!/bin/sh + +# $NetBSD: pkg_setup,v 1.1 2011/11/06 11:36:31 cheusov Exp $ +# +# Copyright (c) 2011 Aleksey Cheusov <cheu...@netbsd.org> +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +# SUCH DAMAGE. + +# Variables changable by user +: ${OPSYS:=`uname -s`} +: ${OSVER:=`uname -r | sed 's/[_-]*$//'`} +: ${ARCH:=`uname -m`} +: ${MIRROR:='ftp://ftp.NetBSD.org'} +: ${FTPDIR:="$MIRROR/pub/pkgsrc/packages/$OPSYS/$ARCH/$OSVER"} +: ${FTP_CMD:=ftp -V} + +###################################################################### +set -e + +usage (){ + cat <<'EOF' +pkg_setup downloads pkg_install binary package and installs it. +usage: pkg_setup [options] [-- [pkg_add options]] + +options: + -h display this screen + -v verbose output + -d url to binary repository, the default is + ftp://ftp.netbsd.org/pub/pkgsrc/packages/$OPSYS/$ARCH/$OSVER +EOF +} + +vecho (){ + test -n "$verbose" && echo "$@" +} + +while getopts hvd: f; do + case $f in + h) + usage + exit 0;; + v) + verbose=1;; + d) + FTPDIR="$OPTARG";; + \?) + exit 1;; + esac +done +shift $(expr $OPTIND - 1) + +tmpdir=`mktemp -d /tmp/pkg_setup.XXXXXX` +trap "rm -rf $tmpdir" 0 +test -n "$tmpdir" || exit 1 + +cd "$tmpdir" + +vecho 'Downloading pkg_summary.gz...' +$FTP_CMD "$FTPDIR/All/pkg_summary.gz" +pkgname=`gzip -dc pkg_summary.gz | awk -F= '/^PKGNAME=pkg_install-[0-9]/ {print $2; exit}'` +if test -z "$pkgname"; then + echo 'Cannot find package pkg_install in pkg_summary(5)' 1>&2 + exit 1 +fi + +vecho "Downloading $pkgname.tgz..." +$FTP_CMD "$FTPDIR/All/$pkgname.tgz" +gzip -dc "$pkgname.tgz" | tar -xf - + +vecho "Installing..." +./sbin/pkg_add "$@" ./"$pkgname.tgz" + +vecho "done"