[Initng-svn] r3848 - initng/trunk/tools
svn at initng.thinktux.net
svn at initng.thinktux.net
Thu Apr 20 00:14:12 CEST 2006
Author: jimmy
Date: Thu Apr 20 00:14:11 2006
New Revision: 3848
Modified:
initng/trunk/tools/itype.c
Log:
Working on itype.c
Modified: initng/trunk/tools/itype.c
==============================================================================
--- initng/trunk/tools/itype.c (original)
+++ initng/trunk/tools/itype.c Thu Apr 20 00:14:11 2006
@@ -61,30 +61,27 @@
#define MAX_PATH_LEN 40
-
-int main(int argc, char *argv[], char *env[])
+static void parse_path(char *ipath)
{
char *path = NULL;
- service_cache_h *service = NULL;
-
- if(!argv[1])
- {
- printf("Path to script is unknown.\n");
- exit(1);
- }
-
/* if path is specified with CWD */
- if(argv[1][0]=='.')
+ if(ipath[0]=='.')
{
- path=malloc(sizeof(char) * (strlen(argv[1]) + MAX_PATH_LEN + 1));
+ path=malloc(sizeof(char) * (strlen(ipath) + MAX_PATH_LEN + 1));
path=getcwd(path, MAX_PATH_LEN);
- path=strcat(path, &argv[1][1]);
+ path=strcat(path, &ipath[1]);
} else {
- path=strdup(argv[1]);
+ path=strdup(ipath);
}
- printf("PATH: \"%s\"\n", path);
-
+ /* Start parsing file. */
+ initng_common_parse_service(path);
+}
+
+int main(int argc, char *argv[], char *env[])
+{
+ /*printf("argc: %i argv[0]: %s\n", argc, argv[0]);*/
+
/* initialise global variables */
initng_global_new(argc, argv, env, I_AM_UTILITY);
@@ -93,18 +90,39 @@
printf("could not load all modules\n");
exit(1);
}
+
- /* Start parsing file. */
- initng_common_parse_service(path);
- printf("Services found:\n");
- /* Print all services found. */
- while_service_cache(service)
+ /* se what we want do be done */
+ if(argc==3 && strcmp(argv[1], "--list_services")==0)
{
- printf(" * %s\n", service->name);
+ service_cache_h *service = NULL;
+ parse_path(argv[2]);
+ while_service_cache(service)
+ {
+ printf("%s ", service->name);
+ }
+ printf("\n");
+ goto end;
}
+ /* fallback */
+ if(argv[1])
+ {
+ service_cache_h *service = NULL;
+ printf("%s file content these services:\n", argv[1]);
+ parse_path(argv[1]);
+ while_service_cache(service)
+ {
+ printf(" * %s\n", service->name);
+ }
+ goto end;
+ }
+ {
+ printf("Usage: itype --list_services i_file.i\n");
+ }
+end:
/* unload all modules */
initng_unload_module_unload_all();
initng_service_cache_free_all();
More information about the Initng-svn
mailing list