From 7efd27a635f439b56d58580cc4dc4d6d15e46c70 Mon Sep 17 00:00:00 2001 From: Jakub Adamski Date: Fri, 11 Jan 2019 15:48:26 +0100 Subject: [PATCH] cd and spath --- Microshell/help | 5 ++++ Microshell/microshell | Bin 13072 -> 13304 bytes Microshell/microshell.c | 61 ++++++++++++++++++++++++++++++++++++++-- 3 files changed, 63 insertions(+), 3 deletions(-) diff --git a/Microshell/help b/Microshell/help index 2319af2..ff12bcb 100644 --- a/Microshell/help +++ b/Microshell/help @@ -8,4 +8,9 @@ Author= Jakub Adamski Working commands help - manual exit - ends microshell +cd - changing directory +(nie dziala dla np ~/) +jak zrobie echo $HOME tez nie dziala +dodac informacje o limitach dlugosci albo zrobic +to dynamicznie diff --git a/Microshell/microshell b/Microshell/microshell index 3e47d1e15d5d10a12917740babb20c8c3045fc49..9fc80627fd89c2b4c1b3c9d48b66aa2141efccea 100755 GIT binary patch literal 13304 zcmeHOdyrezc|Tft?X|tuYW>0(gD=F+*a;SEV=rrn%W7Y~PS(bSHKAjStd+F8sUKkusrwv~PNy^>sqJZ+1sgBv3}r*6geGKWO-e@sGBt4l7mU^4 zckcPL_gEutJ9o_GIzwdG0=bm%!*+1y+?WuFQ1P8bHEkRszfr+#$!O5Fd1f*TG ziTQY5FII`U;O9upl((A%QZrmqu9-F{+zm>0ZFMH#q^p!3Q_dmLdL^qyv}GpBR0vH1 zWJh^zxn8oMnv5`=QTe!_DBBTBcJ0cpUD+|cpfbjk%SUCSU!U^lq+O6vU`o0acE4eS zrQH&f?{iWU7JZ7c-EYH=^7-oquTs2QrB|z7rd9r#s^W@UV$uHA&9}tD8)DITW@N)i zTkD3_&AxQPw@H?p{FCnXU3+9o)ZSdRl;@@R5k~TF{pyutBkl*@dH$K8$NhJ|Z!~{l z`WK|T0zYmyYL8Ly6bK*O6XYUD%=!3R0E?X<_;dJaRq%zts_9d=uZDlB1|F<|x7NVp zHSnD^@CR$)U#o%dt${yL1AiU3hMzMG0;pCGG(M~0nHo6hR?~k6xQ3rIP(QDxe@zWM z3;ZUh6Yv{r=x+z!j2`9HG{l79@hi~3L)4vHMcPP(l7~fPBx;C5K|GR?R4S1YgApTn zC=(5fWX4E~fkf(n2n5nbFmxag8afad2u5SD4M*c5nTp1Z0eFanVo5Oo!?Xwug`+7k z9E`;hA#z2INa0|TxX__6oP|b$fq`f|7>gc>$ZQNJfl|&Wosrh)4Q@{jmrf4Gt&b%2B{nt*VGxq0v~U z{@j%qA+z{wj8GS3E>Iq%OQX?6G~%CDSY~B(K3SXwPl4xQuKy$rNQ5>u-!k5!@CHYF zG5_jnP1@01NcrF}W5JaRDJoiU4=aOSu;6M6meNZWe7QxR`wzXFXnx|LEB$!@s6IIC zw%{}ma=6ce^W09d{TAH%{u{F3*7-ka!6|JHBNm+Nlw_k891T+m$1J#75=hy&1#hfq z3o&8A(cqPE!h$zdP$8bO;M`Y8{Imscw&t9^134LtRs4GwF*|QC2SS-q0>L4nwor7o7>UPA4A0l~ari`%mgJs~UsY}z6 z{}u7n6-$$nf0KA>^3v0if1P-0>e30x|CD%Y;?lU}UnZWKwlpgFe<7Zlw3L+mbHr0q zmi9~jH1X7grQMSMHu2PSrFO}Gi+CCWr54Hm1@Y8`B~9{A5>HK6@=E>*;%R7)0M~J5;D@{wD><7ld%dqj6J90mIK+nCdXaD2E?!Mka{Rb$E zURacsWZQYvOnF%kZ2r4xbr(stMZxUR3-v)zed{GX_l9vTnrJ1lXre{?$}9g`K6}AMsiro-{>|{ z6Pa7|?6!ZT*dEGHqn_V(8eDM^YNV*+ajyOpco$`7lrnbl3|yi-q`t2-01b-Wqd)TY z1f+WI`$K^A+;^!B!+L(s+I14{E^eHh8Z!Wrlc}+hO6)-u%S)*qn%47UWURZUo4zML zw;3Nc_wb~-pw*gY8hSCkBbUzXuAO9gIry;qbp3BU@tY}HH8Tv0`5-C0g`_hxL@KV8= z>ST5FMS&G-e;V zEJo(y>3Wz7`b~0k=>xc#5B-_^p36C}Ss4Ep{rCF!`1|A#z@WEw`WL9v$53*bM)ll` zo;!202pwwYqD#+>jXWR6*o+}Lh#`qbEcAQt~HY&QkEUGVECJPt!M_i_{ytNP##s5$CU z*P<#9paP0J0h~lHhr(;6HF&EOfA&A+GMetMK#-LQ*yd%`p%Yz)5pOy>2m9M$f08m@ zJW0BFsY`t_N75TB(kG>K*~KPJoRXEEmo=07SLz|(kiz3sReE9U#B5G|=qkA}gMhq= zk4-imO`-vrFKl@Z`6VYqaDqbJpcjr)BikJQ+LJz=t0L3>hmCHYXo+y4uF|sT+ zL;lwO+2YJo+4>qZsIZTb(q+lu^`L5@aNJT!e+D5^_%R$8v*cH%K=x(|e~;MISQ2HT z1m9YnmvQv^{L$x4H&ey@`!p?)j>{C^A#44?A5)K*20TuYDHV|=!|eV-Wp+2}ixY66 z7b36j_22K`=YPN-*hep?qm-tgVYwss6B?Plg|(iA^3}V6=so`2M>}%w^{%IBuR(wI zBX{wo_uy#kmxi|SXKde_`=B@XURUnF{N<&u>De_%Q_5%$`<-Z(MPn=#g(0bL4R3a%q}3)hI(bzS4UhH=+CFX6NYe+o_USyE7; zy1o!=ASeAcp(eV z_w{?ckJfcAnyY8s?r*!0E7SidbbgL9CO`%2)ctNnegg2#DEo^x`3q7`OP@*n{vGls z&<`s1yT9swd`_YMvANlK?uXn`m-6^FembU&2&m}rc)wcL;aTyxyW67`=5%=0Jyx%K zS{|LNd)l(|c6!=Vo;JUy#qU|y;nAQ6{SHrq+^23veI((>?1AL$YPebhS8L#E4P32( zt2J=72Cmis)(7hFn9reU2}OZvqsa=dIz;6&(4*?G@>(V5^X}^u&ugreisy50TB}iD z`MX!lCDnvlq~MG|h7~HpXTXz6&S$o?N20)I-z!X3EK`&TEw?DNsPj=?3q7sud0j~d zkQA;liP*0I#*e9taK2wvda7C~XXH01ob|B$l}kn>Cm}3@C4ZmthvhKKrR4?1uTgR= z8Ks=dq1^w*2!Ho=I_yyeyI0WxMGq?asG@(Y=-(*%Jw?wc`ii3espxx(&Q%S$T+vS} z+Nx-eqW3E5%-<*R{QYEmXXowOx;_1wxRKFr^WExe*|6!hjAS=Hys^#KvU$A;f09GU z-53@8UEiusUy%5FxE*&3gFBo>;1+WP_jd~n|Mi0VxgDP?cs$tgd4l_i9d8iazwG#Y z!Ts2dFR1i)JHD_o?(KM^Xi@EG#}|qHRocrfJeB(wcKs&7^N1byigD}55G8cu%O>9+ zuV=8 zX=sjkM;?&OqS#-9sYAV;aMUM#xFCGSf#0Zbp2ykOZHTxqJFQUpr1U8C;OD}wnCE2) z;xUXL`RDfn z$>$8YsnUNg0(Dhs-}xxOV${Q^>W4gxua&rTW_x@VxMo94rW1x*m433lhM&DP@L}N9 zzUz+y_rgDaujMR!S^Dvat?Gp>Um_5GrH20{694#kJW)gcJ2mi^YT&=9fxi#D86}ud z^*l!v;KLgFO{mW*Q-ko;!2Q6few^cUR}KAs;2Kw=h5jD!=DKSHzgJlFu=L{*N7O<@ zo*_Z_CDKRAJdbg?{!rh<5$zPSrD=9$`9XbFiu>ObbV65@Of{da5N^RRHCdUNJy32=Lf%;IeTUafuo zHSl|Y-(;HFo_{Ly^YQmrqJ|$4N*QS*Gce!_iP;M#0b@82qAMn8TrUYH0)w$ce=rsZ z8;Mjp5X_8-P+~Y4ix`ox@3z*ht<{z2%1bm5Or?T{1339j9mWlp;BX`m&I}J9hKYp> zK+~|P4o5?&L>h;|F=Q+d=(*d!vpdket1EyTE_Q8Pu<81pUH+XrI_(m9vjz}urUkln z3to7DxRS%mU!-deI_!@&`CJ;{!L>{gOp zEU!G-A@mOvz`TB>?lw6U?Dvxb;dCM}6pV*)cPW%HaAD~#SmSzCAd`;JZK+B-P^VBg ztDG+T(`l8YygFsx!jDk*&Ngc0%iJ9ca^f`f`1jAwlPnJDgU;=Y-W zxS?QrNch5s>kfkEAAQ`AwGG+*$taBftzQF`oBQk;~4P+=K zWLNb?hSbm<3d0F=rl~oGO$&}Ag&>AA@W)hq}?~j(Z& zO!>To?CGAM)BbT_R43}#qOxz~b0a=ifr<>2S8K?DvD)+gvO*mdPB$MYF#RLMt@gYR zWy<-LMtCsK^cxO)URN<)%!@I_!Y$n7@DsVVpj%m%W;);k0-1??R2zZ!y&?PqzO|1u-M4I;0ID#B>jEF-;icYDG%@tNu)M@{} DY4_|3 delta 3559 zcmZ`+4Qx}_6~6B|PM)1Vzc|i|1BvbY&?JEEq$5D4K+IVCQZeBTvJygQqL2U*9V`oj zN{EC7S6IPY$bl_X`+-$d8QVJ6R9mRpEfhvj_M^~El%i_Q(Aew(8rfJI7~q|A{cbR@ zUCHk|=ey^gbKbc>?|NqQK<7YyPSC=5t4{!%oPVhDwZIZJp$cTo%?SygsrU;Pauw0d z1%YF7f}aFc($rSNs@1S+g{9I9p0~3THjm@V1kF~$X=%0R|3x@uL^uT%aykl~jyu|SKWIn$GDhm(3UAfjln0lkeT zv03mAvImj9ki@ERQ_*_tNuKn+8;ag<{;B3>dT6X$j!)`+=ajRv7V$+gcE!t5@R{wZ zM~U<;)E}FQV=KFxhdRwgY?AB$B%Nk0HpcajNvGG3o#Oh{9wJhRIL3)9q*Eng16+TP zbgFi&m+KRxQypSExc)BbG-0t;uD?Y(?Y&r#>u-=w^Bb$@`bpBMdNDuOdwxhn1`%#f zyh1uI9~QICI_Mlgowur+4dII$_3%}_@2|IlYga|gR!mNhWCG@_N9s=CyT%=z=;L;_ z3wIt;VN@FRhak!wi}jlmgfv893J$f6Z_aKq}7r98+?FRPT0WIKI& zU)}o-lp1MZhTdOy1+{1<<`&iQao+raV`M}6ucYU@?#1JMq20(yvF|*jey zi8r^LrSXC1178j_2G*|8_uV*vv#?3;Pbn+Mem(s83sqx!cuEhS9gSj-KBV_WB|RMK zgir>7_3$MZv_C}Ih5tZai+JY| zBJ@b;SkJ?FKO>va9wPcf#|SXELa}yXtppcY^jnIIp03@E$I)VSbQQWpq4qRI*CURT zWDr?2%%Sc$LL#pe3LU9Cj70PT4*oR?JuLcX5_#gcQM%sxFj5zJz({*|r0o5D^mZR{ z1!vtzGIE6HnyA?~uoFWpqY#}aQwYY#Cn5|YHy+xJFGm5dyZWoSf^*rw|2GLg?Pd9M znW@2VnZB74F&|9rOEdjm&PYQa^a1?|{@f2>B6o#y8$})0479oJulgOzh~J^6Sj9I4 zzZtcKMIOHqn+_6c-Ps9rCV&Our9zjq4vrT3x& zQ*;Dk6W<~Qnu=D-m(6gps7M|*!$eW1)CyHDZEL3y`RfM0Y~Z&Ie9gdL7ihsyGq&F$t!VhX+j)1{iz&h4M9_)cgm)uco8be=#P6)$A_jp~af z^CNEa4u5{gE&qX*Hm2d0OT-dc-QzYk2+Y&kT)070S!2p$HuR;S%-0*2I(|r^13%fL zS26b@`f|gb8Ci80!B)dx$~2gqm+$;HWstd z$WcJ`EuKAq#6g71+~>234eD25&{vZq_N72P(ysWt)_P;n*IOXRk5+~%us9Xg`@L3i zM0RJxpua{H^CYkqnijfX#&1)_E)}>EoK-&fyU!*qfu<^-MXdcG9I9Gu5&L8vTtw~R uUnaGB@$6X}bS38E6f{-G@jpn@(~B*`PbIi=IEvb2WkP$vYq(%x#(x12uW?@h diff --git a/Microshell/microshell.c b/Microshell/microshell.c index 9bb3987..52246c9 100644 --- a/Microshell/microshell.c +++ b/Microshell/microshell.c @@ -4,6 +4,9 @@ #include #include #include +#include +#include +#include const int max = 1000; @@ -35,20 +38,72 @@ int cut(char **argv, char *command){ return w+1; } +void cd (char **argv){ + if(argv[1] == NULL){ + printf("Add arguments\n"); + return; + } + else if(argv[2] != NULL){ + printf("Too many arguments\n"); + return; + } + else{ + if (chdir(argv[1]) != 0) + perror("chdir error"); + return; + } +} + +void spathf (char **argv, int *spath){ + int l; + if (argv[1] == NULL){ + printf("Add arguments\n"); + return; + } + else if (argv[2] != NULL){ + printf("Too many arguments\n"); + return; + } + else if (!strcmp(argv[1], "help")){ + printf("Arguments:\n0 turns off path showing\n1 turns on path showing\n"); + return; + } + l = argv[1][0] - '0'; + if (argv[1][1] != 0 || l < 0 || l > 1){ + printf("Wrong number\n"); + return; + } + else + *spath = l; +} + int main (){ - int ile, i; + int ile, i, spath = 1; while (1){ char* argv[100]; char komenda[max], directory[max]; if (getcwd(directory, sizeof(directory)) == NULL){ perror("getcwd() error"); - return 1; + return -1; } - printf("[%s]$ ", directory); + struct passwd *p = getpwuid(getuid()); + /*dodac obsluge bledow do get?*/ + if (spath) + printf("[%s]", directory); + printf("%s$ ", p->pw_name); /* mozna zrobic (*p).pw_name */ fgets(komenda, max, stdin); ile = cut(argv, komenda); + if (argv[0]==NULL) continue; + else if (!strcmp(argv[0], "spath")){ + spathf(argv, &spath); + continue; + } + else if (!strcmp(argv[0], "cd")){ + cd(argv); + continue; + } else if (!strcmp(argv[0], "help")){ if (fork() == 0){ execlp("cat", "cat", "help", NULL);