Changeset 2487 for neercs


Ignore:
Timestamp:
Jun 24, 2008, 11:14:32 PM (12 years ago)
Author:
Pascal Terjan
Message:
  • Add -c/--config to override local config file
File:
1 edited

Legend:

Unmodified
Added
Removed
  • neercs/trunk/src/main.c

    r2486 r2487  
    6868    printf("Example : %s zsh top \n\n", argv[0]);
    6969    printf("Options :\n");
     70    printf("\t--config\t\t-c <file>\t\tuse given config file\n");
    7071    printf("\t--pid\t\t-P <pid>\t\tattach <pid>\n");
    7172    printf("\t\t\t-R\t\t\tre-attach another neercs\n");
     
    102103    if(args==0)
    103104        args = 1;
     105
     106    /* Build local config file path */
     107    user_info = getpwuid(getuid());
     108    if(user_info)
     109    {
     110        user_path = malloc(strlen(user_info->pw_dir) + strlen("/.neercsrc") + 1);
     111        sprintf(user_path, "%s/%s", user_info->pw_dir, ".neercsrc");
     112    }
    104113
    105114    /* Create screen list */
     
    136145    memset(screen_list->lockpass, 0, 1024);
    137146
    138 
    139     /* Read global configuration first */
    140     read_configuration_file("/etc/neercsrc", screen_list);
    141 
    142     /* Then local one  */
    143     user_info = getpwuid(getuid());
    144     if(user_info)
    145     {
    146         user_path = malloc(strlen(user_info->pw_dir) + strlen("/.neercsrc") + 1);
    147         sprintf(user_path, "%s/%s", user_info->pw_dir, ".neercsrc");
    148         read_configuration_file(user_path, screen_list);
    149         free(user_path);
    150     }
    151 
    152 
    153147    recurrent_list = (struct recurrent_list*) malloc(sizeof(struct recurrent_list));
    154148    recurrent_list->recurrent = (struct recurrent**) malloc(sizeof(struct recurrent*));
     
    166160        static struct myoption long_options[] =
    167161            {
     162                { "config",      1, NULL, 'c' },
    168163#if defined USE_GRAB
    169164                { "pid",         1, NULL, 'P' },
     
    173168            };
    174169#if defined USE_GRAB
    175         int c = mygetopt(argc, argv, "RP:hv", long_options, &option_index);
     170        int c = mygetopt(argc, argv, "c:RP:hv", long_options, &option_index);
    176171#else
    177         int c = mygetopt(argc, argv, "Rhv", long_options, &option_index);
     172        int c = mygetopt(argc, argv, "c:Rhv", long_options, &option_index);
    178173#endif
    179174        if(c == -1)
     
    182177        switch(c)
    183178        {
     179        case 'c': /* --config */
     180            if(user_path)
     181                free(user_path);
     182            user_path = strdup(myoptarg);
     183            s+=2;
     184            break;
    184185        case 'P': /* --pid */
    185186            pidopt = atoi(myoptarg);
     
    221222            break;
    222223        }
     224    }
     225
     226    /* Read global configuration first */
     227    read_configuration_file("/etc/neercsrc", screen_list);
     228
     229    /* Then local one  */
     230    if(user_path)
     231    {
     232        read_configuration_file(user_path, screen_list);
     233        free(user_path);
    223234    }
    224235
Note: See TracChangeset for help on using the changeset viewer.