X-Git-Url: http://andersk.mit.edu/gitweb/moira.git/blobdiff_plain/461c03b66c69c28fc6233126c21acecc1f2bc2d7..e774e94cc929811576f46d0086df4d23a5f3952b:/clients/moira/main.c diff --git a/clients/moira/main.c b/clients/moira/main.c index abe0d808..1d46fd2e 100644 --- a/clients/moira/main.c +++ b/clients/moira/main.c @@ -1,10 +1,10 @@ -#ifndef lint +#if (!defined(lint) && !defined(SABER)) static char rcsid_module_c[] = "$Header$"; #endif lint -/* This is the file main.c for allmaint, the SMS client that allows - * a user to maintaint most important parts of the SMS database. - * It Contains: The main driver for this program. +/* This is the file main.c for the SMS Client, which allows a nieve + * user to quickly and easily maintain most parts of the SMS database. + * It Contains: The main driver for the SMS Client. * * Created: 4/12/88 * By: Chris D. Peterson @@ -13,7 +13,7 @@ * $Author$ * $Header$ * - * Copyright 1987, 1988 by the Massachusetts Institute of Technology. + * Copyright 1988 by the Massachusetts Institute of Technology. * * For further information on copyright and distribution * see the file mit-copyright.h @@ -28,12 +28,19 @@ #include #include "mit-copyright.h" -#include "allmaint.h" -#include "allmaint_funcs.h" +#include "defs.h" +#include "f_defs.h" #include "globals.h" -extern Menu allmaint_top_menu; -static void ErrorExit(), Usage(), SignalHandler(); +char * whoami; /* used by menu.c ugh!!! */ + +extern Menu sms_top_menu, list_menu, user_menu, dcm_menu; + +#ifndef DEBUG +static void SignalHandler(); +#endif DEBUG + +static void ErrorExit(), Usage(); char *getlogin(); uid_t getuid(); struct passwd *getpwuid(); @@ -41,7 +48,7 @@ struct passwd *getpwuid(); Bool use_menu = TRUE; /* whether or not we are using a menu. */ /* Function Name: main - * Description: The main driver for allmaint. + * Description: The main driver for the SMS Client. * Arguments: argc, argv - standard command line args. * Returns: doesn't return. */ @@ -52,11 +59,19 @@ main(argc, argv) char ** argv; { int status; + Menu *menu; if ((user = getlogin()) == NULL) user = getpwuid((int) getuid())->pw_name; user = (user && strlen(user)) ? Strsave(user) : ""; + if ((program_name = rindex(argv[0], '/')) == NULL) + program_name = argv[0]; + else + program_name++; + program_name = Strsave(program_name); + whoami = Strsave(program_name); /* used by menu.c, ugh !!! */ + init_sms_err_tbl(); init_krb_err_tbl(); verbose = TRUE; @@ -67,18 +82,14 @@ main(argc, argv) use_menu = FALSE; else Usage(); - /* Fall Through. */ + break; case 1: - if ((program_name = rindex(argv[0], '/')) == NULL) - program_name = argv[0]; - else - program_name++; break; default: Usage(); break; } - + if ( status = sms_connect() ) ErrorExit("\nConnection to SMS server failed", status); @@ -89,17 +100,29 @@ main(argc, argv) * These signals should not be set until just before we fire up the menu * system. */ + +#ifndef DEBUG (void) signal(SIGHUP, SignalHandler); - (void) signal(SIGINT, SignalHandler); + (void) signal(SIGINT, SignalHandler); (void) signal(SIGQUIT, SignalHandler); +#endif DEBUG + + if (!strcmp(program_name, "listmaint")) + menu = &list_menu; + else if (!strcmp(program_name, "usermaint")) + menu = &user_menu; + else if (!strcmp(program_name, "dcmmaint")) + menu = &dcm_menu; + else + menu = &sms_top_menu; if (use_menu) { /* Start menus that execute program */ Start_paging(); - Start_menu(&allmaint_top_menu); + Start_menu(menu); Stop_paging(); } else /* Start program without menus. */ - Start_no_menu(&allmaint_top_menu); + Start_no_menu(menu); sms_disconnect(); exit(0); @@ -135,13 +158,14 @@ Usage() exit(1); } +#ifndef DEBUG /* Function Name: SignalHandler * Description: This function cleans up from a signal interrupt. * Arguments: none. * Returns: doesn't */ -void +static void SignalHandler() { Put_message("Signal caught - exiting"); @@ -150,3 +174,4 @@ SignalHandler() sms_disconnect(); exit(1); } +#endif DEBUG