This is msqladmin.c in view mode; [Download] [Up]
/* ** msqladmin.c - ** ** ** Copyright (c) 1993-95 David J. Hughes ** Copyright (c) 1995 Hughes Technologies Pty Ltd ** ** Permission to use, copy, and distribute for non-commercial purposes, ** is hereby granted without fee, providing that the above copyright ** notice appear in all copies and that both the copyright notice and this ** permission notice appear in supporting documentation. ** ** This software is provided "as is" without any expressed or implied warranty. ** ** ID = "$Id:" ** */ #include <stdio.h> #include <sys/types.h> #include <fcntl.h> #ifdef HAVE_DIRENT # include <dirent.h> #else # include <sys/dir.h> #endif #include "version.h" #include "msql.h" #include <common/site.h> #include <common/portability.h> int qFlag = 0; char *msqlHomeDir; usage() { printf("\n\nusage : msqladmin [-h host] [-q] <Command>\n\n"); printf("where command ="); printf("\t drop DatabaseName\n"); printf("\t\t create DatabaseName\n"); printf("\t\t shutdown\n"); printf("\t\t reload\n"); printf("\t\t version\n"); printf("\n -q\tQuiet mode. No verification of commands.\n\n"); } createDB(sock,db) int sock; char *db; { if(msqlCreateDB(sock,db) < 0) { fprintf(stderr,"\nmSQL Command failed!\nServer error = %s\n\n", msqlErrMsg); msqlClose(sock); exit(1); } else { printf("Database \"%s\" created.\n",db); } } dropDB(sock,db) int sock; char *db; { char buf[10]; if (!qFlag) { printf("\n\nDropping the database is potentially a very bad "); printf("thing to do.\nAny data stored in the database will be"); printf(" destroyed.\n\nDo you really want to drop the "); printf("\"%s\" ",db); printf("database? [Y/N] "); bzero(buf,10); fgets(buf,10,stdin); if ( (*buf != 'y') && (*buf != 'Y')) { printf("\n\nOK, aborting database drop!\n\n"); msqlClose(sock); exit(0); } } if(msqlDropDB(sock,db) < 0) { fprintf(stderr,"\nmSQL Command failed!\nServer error = %s\n\n", msqlErrMsg); msqlClose(sock); exit(1); } else { fprintf(stderr,"Database \"%s\" dropped\n",db); } } main(argc,argv) int argc; char *argv[]; { int sock, c, argsLeft, errFlag = 0; char *host = NULL; extern int optind; extern char *optarg; msqlHomeDir = (char *)getenv("MSQL_HOME"); if (!msqlHomeDir) { msqlHomeDir = INST_DIR; } while((c=getopt(argc,argv,"h:q"))!= -1) { switch(c) { case 'h': if (host) errFlag++; else host = optarg; break; case 'q': if (qFlag) errFlag++; else qFlag++; break; case '?': errFlag++; break; } } argsLeft = argc - optind; if (errFlag || argsLeft == 0) { usage(); exit(1); } if ((sock = msqlConnect(host)) < 0) { fprintf(stderr,"ERROR : %s\n",msqlErrMsg); exit(1); } if (strcmp(argv[optind],"create") == 0) { if (argsLeft != 2) { usage(); msqlClose(sock); exit(1); } createDB(sock,argv[optind+1]); msqlClose(sock); exit(0); } if (strcmp(argv[optind],"drop") == 0) { if (argsLeft != 2) { usage(); msqlClose(sock); exit(1); } dropDB(sock,argv[optind+1]); msqlClose(sock); exit(0); } if (strcmp(argv[optind],"shutdown") == 0) { if (argsLeft != 1) { usage(); msqlClose(sock); exit(1); } if(msqlShutdown(sock) < 0) { printf("\nmSQL Command failed!\nServer error = %s\n\n", msqlErrMsg); msqlClose(sock); exit(1); } exit(0); } if (strcmp(argv[optind],"reload") == 0) { if (argsLeft != 1) { usage(); msqlClose(sock); exit(1); } if(msqlReloadAcls(sock) < 0) { printf("\nmSQL Command failed!\nServer error = %s\n\n", msqlErrMsg); msqlClose(sock); exit(1); } msqlClose(sock); exit(0); } if (strcmp(argv[optind],"version") == 0) { if (argsLeft != 1) { usage(); msqlClose(sock); exit(1); } printf("\nVersion Details :-\n\n"); printf("\tmsqladmin version \t%s\n",SERVER_VERSION); printf("\tmSQL connection \t%s\n",msqlGetHostInfo()); printf("\tmSQL server version \t%s\n", msqlGetServerInfo()); printf("\tmSQL protocol version \t%d\n", msqlGetProtoInfo()); printf("\tmSQL TCP socket \t%d\n", MSQL_PORT); printf("\tmSQL UNIX socket \t%s\n", MSQL_UNIX_ADDR); printf("\tmSQL root user \t\t%s\n", ROOT); msqlClose(sock); exit(0); } usage(); msqlClose(sock); exit(1); }
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.