aboutsummaryrefslogtreecommitdiffstats
path: root/src/dumm/irdumm.c
diff options
context:
space:
mode:
authorMartin Willi <martin@strongswan.org>2008-07-09 12:18:06 +0000
committerMartin Willi <martin@strongswan.org>2008-07-09 12:18:06 +0000
commitddf944be3edfbe17e8a810b65d5c779111cf3661 (patch)
tree4d0a511e87730e271850b89ae3f7b450f4054aed /src/dumm/irdumm.c
parenta9c46ace99b455d04a9934d83d7d1693019cde07 (diff)
downloadstrongswan-ddf944be3edfbe17e8a810b65d5c779111cf3661.tar.bz2
strongswan-ddf944be3edfbe17e8a810b65d5c779111cf3661.tar.xz
loading ruby scripts specified at command line
Diffstat (limited to 'src/dumm/irdumm.c')
-rw-r--r--src/dumm/irdumm.c21
1 files changed, 18 insertions, 3 deletions
diff --git a/src/dumm/irdumm.c b/src/dumm/irdumm.c
index 16f7014bc..a3d392ad8 100644
--- a/src/dumm/irdumm.c
+++ b/src/dumm/irdumm.c
@@ -587,8 +587,9 @@ static void template_init()
*/
int main(int argc, char *argv[])
{
- int state;
+ int state, i;
struct sigaction action;
+ char buf[512];
ruby_init();
ruby_init_loadpath();
@@ -616,9 +617,23 @@ int main(int argc, char *argv[])
sigaction(SIGTERM, &action, NULL);
sigaction(SIGSEGV, &action, NULL);
sigaction(SIGHUP, &action, NULL);
-
- rb_require("irb");
+
rb_eval_string_protect("include Dumm", &state);
+ if (state)
+ {
+ rb_p(ruby_errinfo);
+ }
+ for (i = 1; i < argc; i++)
+ {
+ snprintf(buf, sizeof(buf), "load \"%s\"", argv[i]);
+ printf("%s\n", buf);
+ rb_eval_string_protect(buf, &state);
+ if (state)
+ {
+ rb_p(ruby_errinfo);
+ }
+ }
+ rb_require("irb");
rb_eval_string_protect("IRB.start", &state);
if (state)
{