00001 /* -*-C-*- */ 00002 #ifndef SHELL_COMMAND_H 00003 #define SHELL_COMMAND_H 00004 00005 #include <sys/types.h> 00006 #include "environment.h" 00007 #include "array.h" 00008 00009 #define SHELL_COMMAND_LEN_NAME 30 00010 #define SHELL_COMMAND_LEN_CMD 256 00011 #define SHELL_COMMAND_LEN_WPATH 256 00024 typedef struct 00025 { 00026 char name[SHELL_COMMAND_LEN_NAME]; 00027 char cmd[SHELL_COMMAND_LEN_CMD]; 00028 char wpath[SHELL_COMMAND_LEN_WPATH]; 00029 uid_t uid; 00030 gid_t gid; 00031 Array *environment; 00033 } ShellCommand; 00034 00035 ShellCommand *shell_command_create(); 00036 void shell_command_destroy(void *data); 00037 void shell_command_set_defaults(ShellCommand *sd); 00038 int shell_command_execute(ShellCommand *sd); 00039 void shell_command_set_attribute(ShellCommand *sd, const char *attr, const char *value); 00040 void shell_command_add_environment(ShellCommand *pd, const char *attr, const char *value); 00041 00042 00043 ShellCommand *shell_command_array_find(Array *array, const char *name); 00044 00045 00046 #endif 00047 00048