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