#include #include #include #include char command[15]; char argument[15]; char full[30]; char line[70]; void menu(); void edit(); void pascomp(); void forcomp(); void ccomp(); void delete(); void run(); void logout(); void dir(); void wrong(); void print(); void base(); main() { char *s=ttyname(0); /* if (strstr(s,"pty")) { printf("\033[7mI WANT TO SEE YOU HERE!!!!!\007\007\007\007\007\n\033[0m"); return 1; } */ do { menu(); if (strcmp(command,"print") ==0) print(argument); else if (strcmp(command,"dir") ==0) dir(); else if (strcmp(command,"edit") ==0) edit(argument); else if (strcmp(command,"pascomp")==0) pascomp(argument); else if (strcmp(command,"forcomp")==0) forcomp(argument); else if (strcmp(command,"ccomp") ==0) ccomp(argument); else if (strcmp(command,"delete") ==0) delete(argument); else if (strcmp(command,"run") ==0) run(argument); else if (strcmp(command,"logout")) ; else wrong(); } while (strcmp(command,"logout")!=0); } void menu() { int i,j; printf("\033H \033J"); printf(" Ergasthria MOP Plhroforikhs \n"); printf("--------------------------------------------------------------------------\n\n"); printf("edit filename :Epeksergasia arxeiou \n"); printf(" filename=onoma arxeiou \n"); printf("pascomp filename :Metefrash arxeiou grammeno se PASCAL \n"); printf(" filename=onoma arxeiou \n"); printf("forcomp filename :Metafrash arxeiou grammeno se FORTRAN \n"); printf(" filename=onoma arxeiou \n"); printf("ccomp filename :Metafrash arxeiou grammeno se C \n"); printf(" filename=onoma arxeiou \n"); printf(" \n"); printf("run filename :Ektelesh programmatos \n"); printf(" filename=onoma arxeiou \n"); printf("print filename :Ektupvsh arxeiou \n"); printf(" filename=onoma arxeiou \n"); printf("delete filename :Diagrafh (sbhsimo) arxeiou \n"); printf(" filename=onoma arxeiou \n"); printf(" \n"); printf("logout :EXODOS APO TO SYSTHMA \n"); printf("---------------------------------------------------------------------------\n"); printf(" EPILOGH : "); scanf("%s",command); gets(argument); } void dir() { DIR *mine; int i=0; struct dirent *dp; mine=opendir("."); printf("\033H \033J"); printf("\n\n EPILOGH: dir\n\n\n"); while((dp=readdir(mine))!=NULL) { if (strcmp(dp->d_name,".") && strcmp(dp->d_name,"..")) { printf("%-20s",dp->d_name); i= (i==2) ? (printf("\n"),0) : (printf(" "),i+1); } } printf("\n"); closedir(mine); printf("\n\n\n\nPathiste return gia na epistrepsete sto menu ergasivn"); getchar(); } void edit(char *argument) { char edit[80]="vi "; if (extn(argument)!=2) { strcat(edit,argument); system(edit); printf("Pathste return gia na gurisete sto menu ergasivn"); } else printf("\033H \033J\n\n\n\033&dBApagoreyetai i epeksergasia ektelesimou arxeiou.\n\nPathste Return gia na gurisete sto menu ergasivn"); getchar(); } int extn(char *fn) { int i,j=0; char * ext; for (i=0;fn[i];i++) if (fn[i]=='.') j=i; ext=fn+j; if (!strcmp(ext,".exec")) return 2; else if (!strcmp(ext,".p") || !strcmp(ext,".c") || !strcmp(ext,".f")) return 1; else return 0; }; void run(char *arg) { if (extn(arg)==2) system(arg); else printf("\n\n\n\n\n\n\n\nmono ta ektelesima arxeia ektelountai! (me katalhksh .exec)\n\n\n\n\n\n\nPathiste return gia na gurisete sto arxiko menu"); getchar(); } void delete(char *arg) { if (unlink(arg)==-1) printf(" \033H \033J \n To arxeio %s den brethike.",arg); printf("\n\n\n\n\n\n\n\n\n\n\n\nPathste Return Gia na gurisete sto menu ergasivn"); getchar(); } void ccomp(char *arg) { char temp[80]="cc -o "; char temp1[15]=" -lm | less"; char b[30]; base(arg,b); strcat(b,".exec"); strcat(temp,b); strcat(temp,arg); strcat(temp,temp1); system(temp); }; void base(char *f ,char *b) { int i,j; b[0]='\0'; j=strlen(f); while (f[j]!='.' && j!=0) { j=j-1;};j--; for(i=0;i<=j;++i) b[i]=f[i] ; b[i]='\0'; ; } void pascomp(char *arg) { char temp[80]="pc -o "; char temp1[10]=" | less"; char b[20]; base(arg,b); strcat(b,".exec"); strcat(temp,b); strcat(temp,arg); strcat(temp,temp1); system(temp); } void forcomp(char *arg) { char temp[80]="f77 -o "; char temp1[10]=" | less"; char b[20]; base(arg,b); strcat(b,".exec"); strcat(temp,b); strcat(temp,arg); strcat(temp,temp1); system(temp); } void print(char *arg) { if (extn(arg)!=2) { char * temp="lpr "; strcat(temp,arg); system(temp); } else printf("\n\n\n\n\n APAGOREYETAI I EKTYPVSH EKTELESIMOU ARXEIOU\n\n\n"); } void wrong() { printf("\n\n\n\nThn Pathses\n\n\n\n"); } void logout() { printf("\n\n\n\n\n\n\n\nGeia kai xara sas\n\n"); exit(0); }