summaryrefslogtreecommitdiffstats
path: root/src/admin/edit/ss_wrapper.c
diff options
context:
space:
mode:
authorPaul Park <pjpark@mit.edu>1995-08-15 18:25:04 +0000
committerPaul Park <pjpark@mit.edu>1995-08-15 18:25:04 +0000
commit0856d376d5ea663aef7df59ef0d560e452566eb0 (patch)
treedbb77232892765eeaeb8746b90d73a6d0fbe8641 /src/admin/edit/ss_wrapper.c
parent54ef46e55432397ebf299a231dec3a22aa9a17b4 (diff)
downloadkrb5-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.c26
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;