[BACK]Return to main.c CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / pkgsrc / pkgtools / pkg_install / files / create

Annotation of pkgsrc/pkgtools/pkg_install/files/create/main.c, Revision 1.5

1.4       jlam        1: /*     $NetBSD: main.c,v 1.26 2003/09/02 07:34:53 jlam Exp $   */
1.1       schmonz     2:
1.3       jlam        3: #if HAVE_CONFIG_H
                      4: #include "config.h"
                      5: #endif
1.4       jlam        6: #include <nbcompat.h>
1.3       jlam        7: #if HAVE_SYS_CDEFS_H
1.1       schmonz     8: #include <sys/cdefs.h>
1.3       jlam        9: #endif
1.1       schmonz    10: #ifndef lint
                     11: #if 0
                     12: static const char *rcsid = "from FreeBSD Id: main.c,v 1.17 1997/10/08 07:46:23 charnier Exp";
                     13: #else
1.4       jlam       14: __RCSID("$NetBSD: main.c,v 1.26 2003/09/02 07:34:53 jlam Exp $");
1.1       schmonz    15: #endif
                     16: #endif
                     17:
                     18: /*
                     19:  * FreeBSD install - a package for the installation and maintainance
                     20:  * of non-core utilities.
                     21:  *
                     22:  * Jordan K. Hubbard
                     23:  * 18 July 1993
                     24:  *
                     25:  * This is the create module.
                     26:  *
                     27:  */
                     28:
1.3       jlam       29: #if HAVE_ERR_H
1.1       schmonz    30: #include <err.h>
                     31: #endif
                     32: #include "lib.h"
                     33: #include "create.h"
                     34:
1.3       jlam       35: static const char Options[] = "B:C:D:EFI:K:L:OP:RS:UVX:b:c:d:f:hi:k:lm:n:p:r:s:t:v";
1.1       schmonz    36:
                     37: char   *Prefix = NULL;
                     38: char   *Comment = NULL;
                     39: char   *Desc = NULL;
                     40: char   *Display = NULL;
                     41: char   *Install = NULL;
                     42: char   *DeInstall = NULL;
                     43: char   *Contents = NULL;
                     44: char   *Require = NULL;
                     45: char   *ExcludeFrom = NULL;
                     46: char   *Mtree = NULL;
                     47: char   *Pkgdeps = NULL;
                     48: char   *Pkgcfl = NULL;
                     49: char   *BuildVersion = NULL;
                     50: char   *BuildInfo = NULL;
                     51: char   *SizePkg = NULL;
                     52: char   *SizeAll = NULL;
1.2       jschauma   53: char   *Preserve = NULL;
1.1       schmonz    54: char   *SrcDir = NULL;
                     55: char   *realprefix = NULL;
                     56: char    PlayPen[FILENAME_MAX];
                     57: size_t  PlayPenSize = sizeof(PlayPen);
                     58: int    update_pkgdb = 1;
1.3       jlam       59: int    create_views = 0;
1.1       schmonz    60: int     Dereference = 0;
                     61: int     PlistOnly = 0;
                     62: int     RelativeLinks = 0;
                     63: int     ReorderDirs = 0;
                     64: Boolean File2Pkg = FALSE;
                     65:
                     66: static void
                     67: usage(void)
                     68: {
                     69:        fprintf(stderr, "%s\n%s\n%s\n%s\n%s\n%s\n",
1.3       jlam       70:            "usage: pkg_create [-ORUEhlVv] [-P dpkgs] [-C cpkgs] [-p prefix] [-f contents]",
1.1       schmonz    71:            "                  [-i iscript] [-k dscript] [-r rscript] [-t template]",
                     72:            "                  [-X excludefile] [-D displayfile] [-m mtreefile]",
                     73:            "                  [-b build-version-file] [-B build-info-file]",
                     74:            "                  [-I realprefix]",
                     75:            "                  -c comment -d description -f packlist pkg-name");
                     76:        exit(1);
                     77: }
                     78:
                     79: int
                     80: main(int argc, char **argv)
                     81: {
                     82:        int     ch;
                     83:        lpkg_head_t pkgs;
                     84:        lpkg_t *lpp;
                     85:
                     86:        setprogname(argv[0]);
                     87:        while ((ch = getopt(argc, argv, Options)) != -1)
                     88:                switch (ch) {
                     89:                case 'v':
                     90:                        Verbose = TRUE;
                     91:                        break;
                     92:
1.3       jlam       93:                case 'E':
                     94:                        create_views = 1;
                     95:                        break;
                     96:
1.1       schmonz    97:                case 'I':
                     98:                        realprefix = optarg;
                     99:                        break;
                    100:
                    101:                case 'O':
                    102:                        PlistOnly = 1;
                    103:                        break;
                    104:
                    105:                case 'R':
                    106:                        ReorderDirs = 1;
                    107:                        break;
                    108:
                    109:                case 'U':
                    110:                        update_pkgdb = 0;
                    111:                        break;
                    112:
                    113:                case 'p':
                    114:                        Prefix = optarg;
                    115:                        break;
                    116:
                    117:                case 's':
                    118:                        SizePkg = optarg;
                    119:                        break;
                    120:
                    121:                case 'S':
                    122:                        SizeAll = optarg;
                    123:                        break;
                    124:
                    125:                case 'f':
                    126:                        Contents = optarg;
                    127:                        break;
                    128:
                    129:                case 'c':
                    130:                        Comment = optarg;
                    131:                        break;
                    132:
                    133:                case 'd':
                    134:                        Desc = optarg;
                    135:                        break;
                    136:
                    137:                case 'i':
                    138:                        Install = optarg;
                    139:                        break;
                    140:
1.3       jlam      141:                case 'K':
                    142:                        _pkgdb_setPKGDB_DIR(optarg);
                    143:                        break;
                    144:
1.1       schmonz   145:                case 'k':
                    146:                        DeInstall = optarg;
                    147:                        break;
                    148:
                    149:                case 'l':
                    150:                        RelativeLinks = 1;
                    151:                        break;
                    152:
                    153:                case 'L':
                    154:                        SrcDir = optarg;
                    155:                        break;
                    156:
                    157:                case 'r':
                    158:                        Require = optarg;
                    159:                        break;
                    160:
                    161:                case 't':
1.3       jlam      162:                        strlcpy(PlayPen, optarg, sizeof(PlayPen));
1.1       schmonz   163:                        break;
                    164:
                    165:                case 'X':
                    166:                        ExcludeFrom = optarg;
                    167:                        break;
                    168:
                    169:                case 'h':
                    170:                        Dereference = 1;
                    171:                        break;
                    172:
                    173:                case 'D':
                    174:                        Display = optarg;
                    175:                        break;
                    176:
                    177:                case 'm':
                    178:                        Mtree = optarg;
1.2       jschauma  179:                        break;
                    180:
                    181:                case 'n':
                    182:                        Preserve = optarg;
1.1       schmonz   183:                        break;
                    184:
                    185:                case 'P':
                    186:                        Pkgdeps = optarg;
                    187:                        break;
                    188:
                    189:                case 'C':
                    190:                        Pkgcfl = optarg;
                    191:                        break;
                    192:
                    193:                case 'b':
                    194:                        BuildVersion = optarg;
                    195:                        break;
                    196:
                    197:                case 'B':
                    198:                        BuildInfo = optarg;
                    199:                        break;
                    200:
                    201:                case 'V':
                    202:                        show_version();
                    203:                        /* NOTREACHED */
                    204:
                    205:                case '?':
                    206:                default:
                    207:                        usage();
                    208:                        break;
                    209:                }
                    210:
                    211:        argc -= optind;
                    212:        argv += optind;
                    213:
                    214:        TAILQ_INIT(&pkgs);
                    215:
                    216:        /* Get all the remaining package names, if any */
                    217:        while (*argv) {
                    218:                lpp = alloc_lpkg(*argv);
                    219:                TAILQ_INSERT_TAIL(&pkgs, lpp, lp_link);
                    220:                argv++;
                    221:        }
                    222:
                    223:        /* If no packages, yelp */
                    224:        lpp = TAILQ_FIRST(&pkgs);
                    225:        if (lpp == NULL)
                    226:                warnx("missing package name"), usage();
                    227:        lpp = TAILQ_NEXT(lpp, lp_link);
                    228:        if (lpp != NULL)
                    229:                warnx("only one package name allowed ('%s' extraneous)",
                    230:                    lpp->lp_name),
                    231:                    usage();
                    232:        if (!pkg_perform(&pkgs)) {
                    233:                if (Verbose)
                    234:                        warnx("package creation failed");
                    235:                return 1;
                    236:        } else
                    237:                return 0;
                    238: }

CVSweb <webmaster@jp.NetBSD.org>