home *** CD-ROM | disk | FTP | other *** search
- // -------------------------------------------------------------------------------------
- // RemoteRunServer
- // This server performs tasks (executes commands) sent to it by the main app.
- // -------------------------------------------------------------------------------------
- // Permission is granted to freely redistribute this source code, and to use fragments
- // of this code in your own applications if you find them to be useful. This class,
- // along with the source code, come with no warranty of any kind, and the user assumes
- // all responsibility for its use.
- // -------------------------------------------------------------------------------------
-
- #import <appkit/appkit.h>
- #import <libc.h>
- #import <stdlib.h>
- #import <string.h>
- #import <pwd.h>
- #import <sys/param.h>
- #import <sys/types.h>
- #import <sys/time.h>
- #import <sys/dir.h>
- #import "ExecServer.h"
-
- /* main entry point */
- void main(int argc, char *argv[])
- {
- int a;
- id rs;
-
- /* check number fo args */
- if (argc < 2) {
- fprintf(stderr,
- "usage: ExecServer [-e] "
- "[-r <remoteServer>] "
- "[-m <mainAppServer> [<mainAppHost>]] "
- "[-c <commandPath>] "
- "\n");
- exit(1);
- }
-
- /* ExecServer init */
- rs = [[ExecServer alloc] init];
- // [rs setMethodDelegate:[<OtherMethods> class]];
- // [rs setLoggingDelegate:[<Logging> class]];
-
- /* command arguments */
- for (a = 1; (a < argc) && (*argv[a] == '-'); a++) {
- switch (argv[a][1]) {
- case 'e': // 'exitWhenDone' flag
- [rs setExitWhenDone:YES];
- break;
- case 'r': // remote server name
- if ((a + 1) < argc) [rs setRemoteServerName:argv[++a]];
- break;
- case 'm': // main app server
- if ((a + 1) < argc) {
- char *mainAppServer = argv[++a], *mainAppHost = (char*)nil;
- if (((a + 1) < argc) && (*argv[a + 1] != '-')) mainAppHost = argv[++a];
- [rs setMainAppServerName:mainAppServer host:mainAppHost];
- }
- break;
- case 'c':
- if ((a + 1) < argc) [rs setMainAppPath:argv[++a]];
- break;
- default:
- break;
- }
- }
-
- /* start remote object server (does not return) */
- [rs _runServer];
- exit(0);
-
- }
-