#include <sys/types.h>
#include <string.h>
#include <glib.h>
-
#include <bundle_internal.h>
-
#include "aul.h"
-#define ROOT_UID 0
-
static char **gargv;
static int gargc;
-bundle *kb = NULL;
-
-static GMainLoop *mainloop = NULL;
+bundle *kb;
+static GMainLoop *mainloop;
static bundle *create_internal_bundle(int start)
{
- bundle *kb;
int i;
- char arg[1024] = {0, };
+ int j;
+ char arg[1024];
char *val_array[128];
kb = bundle_create();
- for (i = start; i < gargc - 1; i++) {
- if ((i + 1) > gargc - 1)
+ if (kb == NULL)
+ return NULL;
+
+ for (i = start; i + 1 < gargc; i += 2) {
+ if ((i + 1) > gargc - 1) {
bundle_add(kb, gargv[i], " ");
- else {
- int j = 1;
- strncpy(arg, gargv[i + 1], 1023);
+ } else {
+ j = 1;
+ snprintf(arg, sizeof(arg), "%s", gargv[i + 1]);
val_array[0] = strtok(arg, ",");
while (1) {
val_array[j] = strtok(NULL, ",");
j++;
}
- if (j == 1)
+ if (j == 1) {
bundle_add(kb, gargv[i], gargv[i + 1]);
- else if (j > 1)
+ } else if (j > 1) {
bundle_add_str_array(kb, gargv[i],
(const char**)val_array, j);
+ }
}
}
return kb;
}
-int launch(void)
+static int launch(void)
{
- int pid = -1;
-
kb = create_internal_bundle(2);
- if (NULL == kb) {
+ if (kb == NULL) {
printf("bundle creation fail\n");
return -1;
}
- pid = aul_launch_app(gargv[1], kb);
- return pid;
+ return aul_launch_app(gargv[1], kb);
}
-void print_usage(char *progname)
+static void print_usage(char *progname)
{
printf("[usage] %s <pkgname> <key1> <val1> <key2> <val2> ...\n",
progname);