[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