/[cvs]/joko/Uni/BSArch/03/win32/min_shell.c
ViewVC logotype

Annotation of /joko/Uni/BSArch/03/win32/min_shell.c

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.9 - (hide annotations)
Thu Jun 15 23:16:01 2006 UTC (18 years, 3 months ago) by joko
Branch: MAIN
Changes since 1.8: +19 -2 lines
File MIME type: text/plain
now runs processes in background

1 joko 1.9 /* $Id: min_shell.c,v 1.8 2006/06/15 23:09:44 joko Exp $ */
2 joko 1.1
3     #include <stdlib.h>
4 joko 1.3 #include <stdio.h>
5 joko 1.1 #include <errno.h>
6 joko 1.2
7 joko 1.4 #include "min_shell.h"
8    
9    
10     #define MAX_COMMAND_LENGTH 1024
11    
12 joko 1.1 int main(int argc, char * argv[]) {
13 joko 1.8
14     // interactive mode with prompt
15 joko 1.1 if (argc == 1) {
16 joko 1.2 //printf("No arguments given.");
17     //exit(EXIT_FAILURE);
18     char filename[255] = "abc\0";
19     BOOL background = 0;
20 joko 1.7 os_start_process(filename, background);
21 joko 1.1 }
22 joko 1.4
23 joko 1.8 // scripting mode
24 joko 1.4 if (argc == 2) {
25     FILE * script = fopen(argv[1], "r");
26 joko 1.7 run_commands(script);
27 joko 1.4 fclose(script);
28     }
29 joko 1.1 }
30 joko 1.2
31 joko 1.7 void run_commands(FILE * fp) {
32 joko 1.4
33     char command[MAX_COMMAND_LENGTH];
34    
35 joko 1.8 while (fgets(command, MAX_COMMAND_LENGTH, fp)) {
36 joko 1.9 int command_length;
37    
38     // strip newlines
39 joko 1.8 chomp(command);
40 joko 1.9
41     // ... and action
42 joko 1.8 execute_command(command);
43     }
44 joko 1.4
45 joko 1.6 }
46    
47 joko 1.4
48 joko 1.7 void execute_command(char * command) {
49 joko 1.9
50     BOOL background = FALSE;
51     int command_length;
52    
53 joko 1.4 printf("process_command: %s\n", command);
54 joko 1.9
55     // background or foreground?
56     command_length = strlen(command);
57     if (command[command_length-1] == '&') {
58     command[command_length-1] = '\0';
59     background = TRUE;
60     }
61    
62     os_start_process(command, background);
63 joko 1.3 }
64    

MailToCvsAdmin">MailToCvsAdmin
ViewVC Help
Powered by ViewVC 1.1.26 RSS 2.0 feed