diff options
| author | Paul Park <pjpark@mit.edu> | 1995-08-15 18:25:04 +0000 |
|---|---|---|
| committer | Paul Park <pjpark@mit.edu> | 1995-08-15 18:25:04 +0000 |
| commit | 0856d376d5ea663aef7df59ef0d560e452566eb0 (patch) | |
| tree | dbb77232892765eeaeb8746b90d73a6d0fbe8641 /src/admin/edit/ss_wrapper.c | |
| parent | 54ef46e55432397ebf299a231dec3a22aa9a17b4 (diff) | |
| download | krb5-0856d376d5ea663aef7df59ef0d560e452566eb0.tar.gz krb5-0856d376d5ea663aef7df59ef0d560e452566eb0.tar.xz krb5-0856d376d5ea663aef7df59ef0d560e452566eb0.zip | |
Add support for -s scriptfile and fix gcc -Wall complaints
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@6521 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/admin/edit/ss_wrapper.c')
| -rw-r--r-- | src/admin/edit/ss_wrapper.c | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/admin/edit/ss_wrapper.c b/src/admin/edit/ss_wrapper.c index bb12b51aa..73e11b571 100644 --- a/src/admin/edit/ss_wrapper.c +++ b/src/admin/edit/ss_wrapper.c @@ -31,6 +31,7 @@ extern ss_request_table kdb5_edit_cmds; extern int exit_status; +extern FILE *scriptfile; int main(argc, argv) int argc; @@ -47,12 +48,37 @@ int main(argc, argv) ss_perror(sci_idx, retval, "creating invocation"); exit(1); } + if (request) { code = ss_execute_line(sci_idx, request, &code); if (code != 0) { ss_perror(sci_idx, code, request); exit_status++; } + } else if (scriptfile) { + char *command; + int nread; + + /* Get a buffer */ + if ((command = (char *) malloc(BUFSIZ))) { + /* Process commands from the script until end-of-file or error */ + while (!feof(scriptfile) && + !(fgets(command, BUFSIZ, scriptfile))) { + + /* Strip trailing newline */ + if (command[strlen(command)-1] == '\n') + command[strlen(command)-1] = '\0'; + + /* Execute the command */ + code = ss_execute_line(sci_idx, command, &code); + if (code != 0) { + ss_perror(sci_idx, code, command); + exit_status++; + break; + } + } + free(command); + } } else ss_listen(sci_idx, &retval); return quit() ? 1 : exit_status; |
