221 lines
3.6 KiB
C
221 lines
3.6 KiB
C
/* $NetBSD: main.c,v 1.19 2010/01/22 13:30:41 joerg Exp $ */
|
|
|
|
#if HAVE_CONFIG_H
|
|
#include "config.h"
|
|
#endif
|
|
#ifndef __minix
|
|
#include <nbcompat.h>
|
|
#endif
|
|
#if HAVE_SYS_CDEFS_H
|
|
#include <sys/cdefs.h>
|
|
#endif
|
|
#ifndef __minix
|
|
__RCSID("$NetBSD: main.c,v 1.19 2010/01/22 13:30:41 joerg Exp $");
|
|
#endif
|
|
|
|
/*
|
|
* FreeBSD install - a package for the installation and maintainance
|
|
* of non-core utilities.
|
|
*
|
|
* Jordan K. Hubbard
|
|
* 18 July 1993
|
|
*
|
|
* This is the create module.
|
|
*
|
|
*/
|
|
|
|
#if HAVE_ERR_H
|
|
#include <err.h>
|
|
#endif
|
|
#include "lib.h"
|
|
#include "create.h"
|
|
|
|
static const char Options[] = "B:C:D:EF:I:K:L:OP:S:T:UVb:c:d:f:g:i:k:ln:p:r:s:u:v";
|
|
|
|
char *Prefix = NULL;
|
|
char *Comment = NULL;
|
|
char *Desc = NULL;
|
|
char *Display = NULL;
|
|
char *Install = NULL;
|
|
char *DeInstall = NULL;
|
|
char *Contents = NULL;
|
|
char *Pkgdeps = NULL;
|
|
char *BuildPkgdeps = NULL;
|
|
char *Pkgcfl = NULL;
|
|
char *BuildVersion = NULL;
|
|
char *BuildInfo = NULL;
|
|
char *SizePkg = NULL;
|
|
char *SizeAll = NULL;
|
|
char *Preserve = NULL;
|
|
char *DefaultOwner = NULL;
|
|
char *DefaultGroup = NULL;
|
|
char *realprefix = NULL;
|
|
const char *CompressionType = NULL;
|
|
int update_pkgdb = 1;
|
|
int create_views = 0;
|
|
int PlistOnly = 0;
|
|
int RelativeLinks = 0;
|
|
Boolean File2Pkg = FALSE;
|
|
|
|
static void
|
|
usage(void)
|
|
{
|
|
fprintf(stderr,
|
|
"usage: pkg_create [-ElOUVv] [-B build-info-file] [-b build-version-file]\n"
|
|
" [-C cpkgs] [-D displayfile] [-F compression] \n"
|
|
" [-I realprefix] [-i iscript]\n"
|
|
" [-K pkg_dbdir] [-k dscript]\n"
|
|
" [-n preserve-file] [-P dpkgs] [-p prefix] [-r rscript]\n"
|
|
" [-S size-all-file] [-s size-pkg-file]\n"
|
|
" [-T buildpkgs] [-u owner] [-g group]\n"
|
|
" -c comment -d description -f packlist\n"
|
|
" pkg-name\n");
|
|
exit(1);
|
|
}
|
|
|
|
int
|
|
main(int argc, char **argv)
|
|
{
|
|
int ch;
|
|
|
|
setprogname(argv[0]);
|
|
while ((ch = getopt(argc, argv, Options)) != -1)
|
|
switch (ch) {
|
|
case 'v':
|
|
Verbose = TRUE;
|
|
break;
|
|
|
|
case 'E':
|
|
create_views = 1;
|
|
break;
|
|
|
|
case 'F':
|
|
CompressionType = optarg;
|
|
break;
|
|
|
|
case 'I':
|
|
realprefix = optarg;
|
|
break;
|
|
|
|
case 'O':
|
|
PlistOnly = 1;
|
|
break;
|
|
|
|
case 'U':
|
|
update_pkgdb = 0;
|
|
break;
|
|
|
|
case 'p':
|
|
Prefix = optarg;
|
|
break;
|
|
|
|
case 's':
|
|
SizePkg = optarg;
|
|
break;
|
|
|
|
case 'S':
|
|
SizeAll = optarg;
|
|
break;
|
|
|
|
case 'f':
|
|
Contents = optarg;
|
|
break;
|
|
|
|
case 'c':
|
|
Comment = optarg;
|
|
break;
|
|
|
|
case 'd':
|
|
Desc = optarg;
|
|
break;
|
|
|
|
case 'g':
|
|
DefaultGroup = optarg;
|
|
break;
|
|
|
|
case 'i':
|
|
Install = optarg;
|
|
break;
|
|
|
|
case 'K':
|
|
pkgdb_set_dir(optarg, 3);
|
|
break;
|
|
|
|
case 'k':
|
|
DeInstall = optarg;
|
|
break;
|
|
|
|
case 'l':
|
|
RelativeLinks = 1;
|
|
break;
|
|
|
|
case 'L':
|
|
warnx("Obsolete -L option ignored");
|
|
break;
|
|
|
|
case 'u':
|
|
DefaultOwner = optarg;
|
|
break;
|
|
|
|
case 'D':
|
|
Display = optarg;
|
|
break;
|
|
|
|
case 'n':
|
|
Preserve = optarg;
|
|
break;
|
|
|
|
case 'P':
|
|
Pkgdeps = optarg;
|
|
break;
|
|
|
|
case 'T':
|
|
BuildPkgdeps = optarg;
|
|
break;
|
|
|
|
case 'C':
|
|
Pkgcfl = optarg;
|
|
break;
|
|
|
|
case 'b':
|
|
BuildVersion = optarg;
|
|
break;
|
|
|
|
case 'B':
|
|
BuildInfo = optarg;
|
|
break;
|
|
|
|
case 'V':
|
|
show_version();
|
|
/* NOTREACHED */
|
|
|
|
case '?':
|
|
default:
|
|
usage();
|
|
break;
|
|
}
|
|
|
|
argc -= optind;
|
|
argv += optind;
|
|
|
|
pkg_install_config();
|
|
|
|
if (argc == 0) {
|
|
warnx("missing package name");
|
|
usage();
|
|
}
|
|
if (argc != 1) {
|
|
warnx("only one package name allowed");
|
|
usage();
|
|
}
|
|
|
|
if (pkg_perform(*argv))
|
|
return 0;
|
|
if (Verbose) {
|
|
if (PlistOnly)
|
|
warnx("package registration failed");
|
|
else
|
|
warnx("package creation failed");
|
|
}
|
|
return 1;
|
|
}
|