commit
1169a52115
@ -0,0 +1,6 @@ |
|||||||
|
# Modular SHell |
||||||
|
|
||||||
|
A POSIX compliant shell with few additions, modular and hackable source code. |
||||||
|
|
||||||
|
Built like busybox each component has its source file keeping everything |
||||||
|
clean and tidy. |
@ -0,0 +1,8 @@ |
|||||||
|
#ifndef MSH_CONFIG_H |
||||||
|
#define MSH_CONFIG_H |
||||||
|
|
||||||
|
#define DEF_HISTSIZE 512 |
||||||
|
#define DEF_HISTPATH ".history" |
||||||
|
#define DEF_SHELLRC ".mshrc" |
||||||
|
|
||||||
|
#endif |
@ -0,0 +1,48 @@ |
|||||||
|
#include <stdio.h> |
||||||
|
#include <stdlib.h> |
||||||
|
|
||||||
|
char *PS1 = NULL; |
||||||
|
unsigned int histsize = DEF_HISTSIZE; |
||||||
|
|
||||||
|
// Buffered user data
|
||||||
|
struct { |
||||||
|
char *name; |
||||||
|
char *home; |
||||||
|
uid_t uid; |
||||||
|
gid_t gid; |
||||||
|
} uinfo; |
||||||
|
|
||||||
|
void sh_fill_uinfo(void); |
||||||
|
void sh_update_ps1(void); |
||||||
|
inline void sh_print_ps1(void); |
||||||
|
|
||||||
|
int main(int argc, char **argv) |
||||||
|
{ |
||||||
|
sh_fill_uinfo(); |
||||||
|
|
||||||
|
for (;;) { |
||||||
|
sh_update_ps1(); |
||||||
|
sh_print_ps1(); |
||||||
|
} |
||||||
|
|
||||||
|
return EXIT_SUCCESS; |
||||||
|
} |
||||||
|
|
||||||
|
void sh_fill_uinfo(void) |
||||||
|
{ |
||||||
|
struct pwuid pw; |
||||||
|
uinfo.uid = getuid(); |
||||||
|
uidfo.gid = getgid(); |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
inline void sh_print_ps1(void) |
||||||
|
{ |
||||||
|
puts(PS1); |
||||||
|
putchar(' '); |
||||||
|
} |
||||||
|
|
||||||
|
void sh_update_ps1(void) |
||||||
|
{ |
||||||
|
|
||||||
|
} |
Reference in new issue