1#! /usr/bin/perl
2
3# ex:ts=8 sw=4:
4# $OpenBSD: mycreate,v 1.7 2019/07/09 10:48:30 espie Exp $
5#
6# Copyright (c) 2009 Marc Espie <espie@openbsd.org>
7#
8# Permission to use, copy, modify, and distribute this software for any
9# purpose with or without fee is hereby granted, provided that the above
10# copyright notice and this permission notice appear in all copies.
11#
12# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
13# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
14# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
15# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
16# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
17# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
18# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
19use strict;
20use warnings;
21use File::Basename;
22use File::Path;
23use OpenBSD::PackageName;
24
25my $target = pop @ARGV;
26my $basename = basename($target, '.tgz');
27File::Path::make_path(dirname($target));
28my $pkgname = OpenBSD::PackageName->from_string($basename);
29my $pkgpath = $ENV{'PACKAGE_PATH'};
30if (!defined $pkgpath) {
31	$pkgpath = 't/'.$pkgname->{stem};
32}
33
34my @l;
35push(@l, 
36	'-p', $ENV{'PACKAGE_BASE'} || '/usr/local',
37	"-DFULLPKGPATH=$pkgpath",
38	'-DMAINTAINER=regress-tests',
39	'-DCOMMENT='.($ENV{'PACKAGE_COMMENT'} || 'comment'),
40	'-DSHARED_LIBS=1',
41	'-d', $ENV{'PACKAGE_DESCR'} || '-descr',
42	'-A', $ENV{'PACKAGE_ARCH'} || '*');
43	
44
45my @args = ('pkg_create', @l, @ARGV, $target);
46print join(' ', @args), "\n" if $ENV{'VERBOSE'};
47if ($ENV{INJECT}) {
48	require OpenBSD::PkgCreate;
49	eval "require \"$ENV{INJECT}\"";
50	if ($@) {
51		die $@;
52	}
53	@ARGV = @args;
54	exit(OpenBSD::PkgCreate->parse_and_run(shift @ARGV));
55} else {
56	exec {$args[0]}  @args;
57}
58