- #include <stdio.h>
- #include <string.h>
- #include <stdlib.h>
- #include <unistd.h>
- #include "y.tab.h"
- int main()
- {
- printf("/////////////////////////////\n");
- printf("///\tThe Nutshell\n");
- printf("///\tPATH=/bin/\n");
- printf("///\tWHEN ENTERING COMMANDS, SEPARATE WITH TILDES\n");
- printf("///\t e.g. ls~-al~folder [ not ls - al folder ]\n");
- putenv("PATH=/bin/");
- putenv("PRMPT=LOL");
- int i = 0;
- while(1)
- {
- char * prompt;
- prompt = getenv("PRMPT");
- printf("%s %d: ",prompt,i++);
- yyparse();
- }
- }
- /*
- void outRedir(char *outFile)
- {
- int x;
- char name[100];
- char command[100];
- FILE *ofp;
- fp = fopen(outFile,"r");
- ofp = fopen("temp","w");
- while (fscanf(ifp,"%s %s",name,command) != EOF)
- {
- x=strcmp(name,search);
- if (x!=0)
- {
- fprintf(ofp,"%s %s\n",name,command);
- }
- }
- fclose(ifp);
- fclose(ofp);
- unlink("alias");
- rename("temp","alias");
- }
- void outRedira(char *input, char* outFile)
- {
- int x;
- char name[100];
- char command[100];
- FILE *ifp, *ofp;
- ifp = fopen("alias","r");
- ofp = fopen("temp","w");
- while (fscanf(ifp,"%s %s",name,command) != EOF)
- {
- x=strcmp(name,search);
- if (x!=0)
- {
- fprintf(ofp,"%s %s\n",name,command);
- }
- }
- fclose(ifp);
- fclose(ofp);
- unlink("alias");
- rename("temp","alias");
- }*/
- void bye()
- {
- printf("\tbye'd\n");
- exit(1);
- }
- void set()
- {
- printf("\tPath: %s\n",getenv("PATH"));
- printf("\tPrompt: %s\n",getenv("PRMPT"));
- }
- void setp(char *prm)
- {
- char *var = "PRMPT=";
- char *val = prm;
- char *str3;
- str3 = (char *)calloc(strlen(var)+strlen(val)+1,sizeof(char));
- strcat(str3,var);
- strcat(str3,val);
- printf("\t%s\n",str3);
- putenv(str3);
- }
- void setpa(char *pat)
- {
- char *var = "PATH=";
- char *val = pat;
- char *str3;
- str3 = (char *)calloc(strlen(var)+strlen(val)+1,sizeof(char));
- strcat(str3,var);
- strcat(str3,val);
- printf("\t%s\n",str3);
- putenv(str3);
- }
- void cd()
- {
- chdir("/home");
- }
- void cdd(char *dir)
- {
- int error = chdir(dir);
- if (error != 0) {printf("Error, directory unchanged");}
- }
- void run(char *com)
- {
- char *var = "PATH=";
- char *val = com;
- char *str3;
- str3 = (char *)calloc(strlen(var)+strlen(val)+1,sizeof(char));
- strcat(str3,var);
- strcat(str3,val);
- printf("\t%s\n",str3);
- system(str3);
- }
- void aliasList()
- {
- char name[10];
- char command[100];
- FILE *fp;
- fp = fopen("alias","r");
- while (fscanf(fp,"%s %s",name,command) != EOF)
- printf("%s = %s\n",name,command);
- fclose(fp);
- }
- void alias(char *name, char *command)
- {
- FILE *ofp;
- ofp = fopen("alias","a");
- fprintf(ofp,"%s %s\n",name,command);
- fclose(ofp);
- }
- void pip(char * arg1, char * arg2)
- {
- printf("\targ1: %s\n",arg1);
- printf("\targ2: %s\n",arg2);
- printf("\t%s | %s\n",arg1,arg2);
- }
- void unalias(char *search)
- {
- char name[10];
- char command[100];
- FILE *ifp, *ofp;
- ifp = fopen("alias","r");
- ofp = fopen("temp","w");
- while (fscanf(ifp,"%s %s",name,command) != EOF)
- if (strcmp(name,search)!=0)
- fprintf(ofp,"%s %s\n",name,command);
- fclose(ifp);
- fclose(ofp);
- unlink("alias");
- rename("temp","alias");
- }
- int aliasCheck(char *search)
- {
- int bool;
- char name[10];
- char command[100];
- FILE *ifp;
- if(ifp = fopen("alias","r"))
- {
- while (fscanf(ifp,"%s %s",name,command) != EOF)
- if (strcmp(name,search)!=0)
- bool=0;
- else
- return 1;
- fclose(ifp);
- return bool;
- }
- return 0;
- }
- void aliasExec(char *search)
- {
- char name[10];
- char command[100];
- FILE *ifp;
- if(ifp = fopen("alias","r"))
- {
- while (fscanf(ifp,"%s %s",name,command) != EOF)
- if (strcmp(name,search)==0)
- system(command);
- fclose(ifp);
- }
- }