Listing the tools available
This commit is contained in:
parent
64167bd41b
commit
1ed68158d4
|
@ -1,5 +1,5 @@
|
||||||
TARGETS = panel_test
|
TARGETS = panel_test
|
||||||
PREFIX = /usr/local
|
PREFIX = /home/khorben
|
||||||
DESTDIR =
|
DESTDIR =
|
||||||
BINDIR = $(PREFIX)/bin
|
BINDIR = $(PREFIX)/bin
|
||||||
CC = cc
|
CC = cc
|
||||||
|
|
62
tools/test.c
62
tools/test.c
|
@ -15,6 +15,8 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <dirent.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
@ -33,9 +35,17 @@
|
||||||
|
|
||||||
|
|
||||||
/* private */
|
/* private */
|
||||||
|
/* prototypes */
|
||||||
|
static int _test(char * applets[]);
|
||||||
|
static int _test_list(void);
|
||||||
|
static int _error(char const * message, int ret);
|
||||||
|
static int _usage(void);
|
||||||
|
|
||||||
|
|
||||||
/* functions */
|
/* functions */
|
||||||
static char const * _helper_config_get(Panel * panel, char const * section,
|
static char const * _helper_config_get(Panel * panel, char const * section,
|
||||||
char const * variable);
|
char const * variable);
|
||||||
|
static int _helper_error(Panel * panel, char const * message, int ret);
|
||||||
|
|
||||||
static int _test(char * applets[])
|
static int _test(char * applets[])
|
||||||
{
|
{
|
||||||
|
@ -60,6 +70,7 @@ static int _test(char * applets[])
|
||||||
memset(&helper, 0, sizeof(helper));
|
memset(&helper, 0, sizeof(helper));
|
||||||
helper.icon_size = GTK_ICON_SIZE_SMALL_TOOLBAR;
|
helper.icon_size = GTK_ICON_SIZE_SMALL_TOOLBAR;
|
||||||
helper.config_get = _helper_config_get;
|
helper.config_get = _helper_config_get;
|
||||||
|
helper.error = _helper_error;
|
||||||
for(i = 0; applets[i] != NULL; i++)
|
for(i = 0; applets[i] != NULL; i++)
|
||||||
{
|
{
|
||||||
len = sizeof(path) + strlen(applets[i]) + sizeof(so);
|
len = sizeof(path) + strlen(applets[i]) + sizeof(so);
|
||||||
|
@ -91,11 +102,56 @@ static char const * _helper_config_get(Panel * panel, char const * section,
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int _helper_error(Panel * panel, char const * message, int ret)
|
||||||
|
{
|
||||||
|
fputs("panel_test: ", stderr);
|
||||||
|
perror(message);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* test_list */
|
||||||
|
static int _test_list(void)
|
||||||
|
{
|
||||||
|
char const path[] = PREFIX "/lib/Panel/applets";
|
||||||
|
DIR * dir;
|
||||||
|
struct dirent * de;
|
||||||
|
size_t len;
|
||||||
|
char const * sep = "";
|
||||||
|
|
||||||
|
puts("Applets available:");
|
||||||
|
if((dir = opendir(path)) == NULL)
|
||||||
|
return _error(path, 1);
|
||||||
|
while((de = readdir(dir)) != NULL)
|
||||||
|
{
|
||||||
|
len = strlen(de->d_name);
|
||||||
|
if(len < 4 || strcmp(&de->d_name[len - 3], ".so") != 0)
|
||||||
|
continue;
|
||||||
|
de->d_name[len - 3] = '\0';
|
||||||
|
printf("%s%s", sep, de->d_name);
|
||||||
|
sep = ", ";
|
||||||
|
}
|
||||||
|
putchar('\n');
|
||||||
|
closedir(dir);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* error */
|
||||||
|
static int _error(char const * message, int ret)
|
||||||
|
{
|
||||||
|
fputs("panel_test: ", stderr);
|
||||||
|
perror(message);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/* usage */
|
/* usage */
|
||||||
static int _usage(void)
|
static int _usage(void)
|
||||||
{
|
{
|
||||||
fputs("Usage: panel_test applet...\n", stderr);
|
fputs("Usage: panel_test applet...\n"
|
||||||
|
" panel_test -l\n"
|
||||||
|
" -l Lists the plug-ins available\n", stderr);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -108,9 +164,11 @@ int main(int argc, char * argv[])
|
||||||
int o;
|
int o;
|
||||||
|
|
||||||
gtk_init(&argc, &argv);
|
gtk_init(&argc, &argv);
|
||||||
while((o = getopt(argc, argv, "")) != -1)
|
while((o = getopt(argc, argv, "l")) != -1)
|
||||||
switch(o)
|
switch(o)
|
||||||
{
|
{
|
||||||
|
case 'l':
|
||||||
|
return _test_list();
|
||||||
default:
|
default:
|
||||||
return _usage();
|
return _usage();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user