root/src/cmd/dist/main.c

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. xmain

// Copyright 2012 The Go Authors.  All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

#include "a.h"

int vflag;
int sflag;
char *argv0;

// cmdtab records the available commands.
static struct {
        char *name;
        void (*f)(int, char**);
} cmdtab[] = {
        {"banner", cmdbanner},
        {"bootstrap", cmdbootstrap},
        {"clean", cmdclean},
        {"env", cmdenv},
        {"install", cmdinstall},
        {"version", cmdversion},
};

// The OS-specific main calls into the portable code here.
void
xmain(int argc, char **argv)
{
        int i;

        if(argc <= 1)
                usage();
        
        for(i=0; i<nelem(cmdtab); i++) {
                if(streq(cmdtab[i].name, argv[1])) {
                        cmdtab[i].f(argc-1, argv+1);
                        return;
                }
        }

        xprintf("unknown command %s\n", argv[1]);
        usage();
}

/* [<][>][^][v][top][bottom][index][help] */