From 969f4e26b8735f4e21ab9ca9894e737c8c9ba242 Mon Sep 17 00:00:00 2001 From: auric Date: Thu, 22 Feb 2024 13:54:52 -0600 Subject: [PATCH] Begin writing it... Better late than never --- .idea/.gitignore | 8 ++++++++ .idea/misc.xml | 18 +++++++++++++++++ .idea/vcs.xml | 6 ++++++ Makefile | 31 ++++++++++++++++++++++++++++++ bin/fex | Bin 0 -> 22576 bytes bin/install | Bin 0 -> 20664 bytes inc/nprint.c | 49 +++++++++++++++++++++++++++++++++++++++++++++++ inc/nprint.h | 12 ++++++++++++ inc/sanity.h | 12 ++++++++++++ obj/fex.o | Bin 0 -> 6232 bytes obj/install.o | Bin 0 -> 2648 bytes obj/nprint.o | Bin 0 -> 10624 bytes obj/sanity.o | Bin 0 -> 3840 bytes src/fex.c | 36 ++++++++++++++++++++++++++++++++++ src/install.c | 15 +++++++++++++++ src/sanity.c | 28 +++++++++++++++++++++++++++ 16 files changed, 215 insertions(+) create mode 100644 .idea/.gitignore create mode 100644 .idea/misc.xml create mode 100644 .idea/vcs.xml create mode 100644 Makefile create mode 100755 bin/fex create mode 100755 bin/install create mode 100644 inc/nprint.c create mode 100644 inc/nprint.h create mode 100644 inc/sanity.h create mode 100644 obj/fex.o create mode 100644 obj/install.o create mode 100644 obj/nprint.o create mode 100644 obj/sanity.o create mode 100644 src/fex.c create mode 100644 src/install.c create mode 100644 src/sanity.c diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..13566b8 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..53624c9 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,18 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..3800835 --- /dev/null +++ b/Makefile @@ -0,0 +1,31 @@ +SRCd := src +BINd := bin +OBJd := obj +INCd := inc +CC = gcc +LDFLAGS = +CFLAGS = -Iinclude -Iinc -Wall -O2 -g + +SRC = $(wildcard $(SRCd)/*.c) +OBJ = $(SRC:$(SRCd)/%.c=$(OBJd)/%.o) +TARGETS = $(SRC:$(SRCd)/%.c=$(BINd)/%) + +main: $(OBJ) $(OBJd)/nprint.o # The option of a single program instead of a suite. WARN: Requires modification of source to remove multiple main() + $(CC) $(LDFLAGS) -o $(BINd)/fex $^ + +multi: $(TARGETS) + +$(BINd)/%: $(OBJd)/%.o $(OBJd)/nprint.o + $(CC) $(LDFLAGS) -o $@ $^ + +$(OBJd)/%.o: $(SRCd)/%.c + $(CC) $(CFLAGS) -c $< -o $@ + +$(OBJd)/nprint.o: $(INCd)/nprint.c $(INCd)/nprint.h + $(CC) $(CFLAGS) -c $< -o $@ + + +clean: + rm -f $(OBJd)/*.o $(BINd)/* + +.PHONY: all clean \ No newline at end of file diff --git a/bin/fex b/bin/fex new file mode 100755 index 0000000000000000000000000000000000000000..8f1149c35424ad848d31fd96dd09df4256226fc3 GIT binary patch literal 22576 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

tksA-KhJLHz$`+O>NbFM+TiN1b z16xjIRJGl4rQI{qXGi0`*lCut#jU45k{C>2iyI75;k{8|u~!so-iYCaam@T4AC5MyLxWr&@rc9X2 z*2|`j#79!m-j;JW^-;N^wbV;&y_4|>1A=XM7#&v~ppH@$!@bzjhwj7%)3Lan*(``+ zB8lE;WG@-@4N?aEO|rqcOk$W1k|mabK)A zYWIfIVKh<%4OkDhCyoq*&|ruGLI;P?3gIDor3R`$J`&NR#q7Ol+I*NBDlrLEIkCZL zJdxQOiE3!L(3n&*(in?lPvqcWAi^345<}6(@CYVpZ8`B4dqpA#5D)k_iXhFr7h=FK`#V;icK?VkCCQQDAF4|;Dx$|JI>yGjwQ@m4$$(^pF{5a&0MGhn%r$%f?Np~5!W_KA6 zLk?QP3T6)rIa|!b#wqAmW%Q?noYkK)-h{qBqkmJ#S^b;Fs99t-W%Q#a$yxoV`Ax{# z`oC#DpQ~qB*5N)vx$8RWP}Wm)Xd5~-Q-PJ43Y`UFW9)JMC`#I{O~k%W*ZceXEdK-G zR*s!!>9M^6D>(i8mc}ayM@ia=7GjiYf%~v8Js1>XCi^wGO8g#kLj9m~zS1mF_RfB_ z04Mu{%HC4;D+R8E9I{o}>vfj?CG4}nsr}CK=?PVrnNti_tuybRKL)(gz-(0Q$@pZi z`xY>pM5v zOx-JkdiT8896#+YpHa195B)j&^|M+if5WDFxvf8AEvku%TPOWzfEWs%zOg@JNp+H) z+>Z}o`sRGQHA`Y<;=2@G5Uc&^ z7Y<5S;UE|7uir0e`Z5{iBxn4tg^u3cXn*~_M$@^u1nUo(oc+HEF!`@ndi{P&({6>6KYnUCCw_kljAEjy%U<`@ z^`Crl6V;WQ#vtVSTlzkxsP4b^QE=w=^5+i!VP&AH?yvUOvZi-9{PlfQQ=gho+F#eN z<+~mJdVQg3p*B?1+5f**{(AhFr3@84sYFej{`6Ba#ZUX|b(^O2iYGTY{U3)i*Z*xx zT5C!_pXMeVH;p|9rVNJ;lYZZ;|4)+BUdx)&E0ppafBioAbOS&nZ6~Fytnr^gL32;n zuh+Ag|9eH9L(=n8`{{8!1|6AbfBk=F#_2~iq-Wi%%70bHQ!?65 z)At$j%g(x2X&9nF~zEt`f+R)K{4b!?^^U6e!rS$Fz>3xUNA+r8i{1>c~{sBoc zxznFyM;C?dR^>mTlyyL9ouKD^wXnil2v9wD6(oq&E~Vp+3LPSzt!DOrY@_tw=WuX{ G?0*1pj_#8H literal 0 HcmV?d00001 diff --git a/inc/nprint.c b/inc/nprint.c new file mode 100644 index 0000000..ca563bc --- /dev/null +++ b/inc/nprint.c @@ -0,0 +1,49 @@ +// +// Created by auric on 2/21/24. +// + +#include "nprint.h" +#include + +void nprint(const char *tag, const char *format, ...) { + const char *color = ""; + const char *bgcolor = ""; + const char *reset = "\033[0m"; + va_list args; + + switch(*tag) { + case 'X': + color = "\033[1;30m"; + bgcolor = "\033[43m"; + break; + case 'E': + color = "\033[1;31m"; + break; + case 'S': + color = "\033[1;32m"; + break; + case 'W': + color = "\033[1;33m"; + break; + case 'I': + color = "\033[1;34m"; + break; + case 'D': + color = "\033[1;35m"; + break; + case 'Y': + color = "\033[1;35m"; + bgcolor = "\033[43m"; + break; + default: + color = "\033[1m"; + } + + printf("[%s%s%s%s] ", bgcolor, color, tag, reset); + + va_start(args, format); + vprintf(format, args); + va_end(args); + + printf("\n"); +} diff --git a/inc/nprint.h b/inc/nprint.h new file mode 100644 index 0000000..336b4a9 --- /dev/null +++ b/inc/nprint.h @@ -0,0 +1,12 @@ +// +// Created by auric on 2/21/24. +// + +#ifndef NPRINT_H +#define NPRINT_H + +#include + +void nprint(const char *tag, const char *format, ...); + +#endif //NPRINT_H diff --git a/inc/sanity.h b/inc/sanity.h new file mode 100644 index 0000000..c41bc2b --- /dev/null +++ b/inc/sanity.h @@ -0,0 +1,12 @@ +// +// Created by auric on 2/22/24. +// + +#ifndef SANITY_H +#define SANITY_H + +# include + +int sanity_check(); + +#endif //SANITY_H diff --git a/obj/fex.o b/obj/fex.o new file mode 100644 index 0000000000000000000000000000000000000000..b255e9a45121ffd2dc23b018997d49548667b32c GIT binary patch literal 6232 zcmbW5d014}6~ON>fZzrqi;CbA3=Z2c185Li3Mz}Thzjn}8DIot&CDQZjbhNa#Dy3a zs5F9!wbrCs8;yxeMvX=h0sFO>pkIr|d=evV^i!izYwwwN4m_UYKRw?!@80vfXM6YF zci+scj893hQz#gTg2k{NjVNP72KDq~t=(AW!-lh@O=Cby+VpE^w3Z*B;gV_6=Nh7g zMTQDNH8njWP*A1EO-znUjGqz6;#oqz(PS3%#@waz=YER$d=HDu>6$~WYQ8N}<1suzkCrlfagI=LLRtLhB?{;AnnYpHr_XC5){Y~?ZqGvAXJ+zF;Xw)e(Xcns!Y-r3$GT8rp#(>A_Db2r2e z;s#2wSwl$q_6SjExIW-85n($TIHHTwW31im@ zvz<-86V?U0=zUFr)g8@YY}mzfA2=Vb9J#aMFlQh39AEQic?3a=f>4N2paUv!`W@+hTXZJt&2K&vFSu@!^oPQ zA)`9Bm2NGtTgU2t*=x60efP~boND)Fd}M6iYrOe&fa9HcU$kDn@K5jRRVya>@1OnP z`17}hPs=OZG_}el^6SjuEyA<9en<7eT{Vp}6M~DPgN%E;+TS^{i9I>EEojf?&(fN= z`*&W+=<57jf64dBSAC8yuetGaq)uquc<-sR`R>i}`Nw_3>Rt?6CS9K+*465{&x*Qh z7c3S_qvdp^{g9zIQpOIcS`)WkyDfh5yV{!gt~_CMwDXzCL2Qaw#)PQt zT^nN;jQ`F)L9<)oQ(rUe%pUu2jeTCdLv{9h_BTcu?8en@cTF=W{j0AsttKZ%$-c?* z{?VG5<}>!CI{vEH>2z64G0-tbXsqlTpwabVej0Yyms>h8C#!uQ^kN>}y=pNc#r^k7 zaZ@*+?0Y7?|C;ybPd(;w@Hg%&Ee&0F(odf&Z}sZ@Tjs3O8`={eDdx{_3RPXMKKo?r z#QT1J)%#8cMyxzPvTx$mRZY_lu8ycRuYQs0s(SBV?|6q-H(o!i`sG)XHc!a?$)SGC z+u?0}9uGb<=v4fkKYvo`abiII_>E@8mx`<7c8pRk`T6>e=Jw8OCECn#{h{OoH79no zM=pzKyb?1d@6c}@FURd#Em4y@9+9^ZGp&)Z3{pZ1%vw%B|} zxhHap-x{S)!_6nLj_o0%ujO9aJb2v3+s@l`dtZw>ygMbq$Laoo>hHFzZr%Rr{Mr)@ zg+ZBN8ld^{z**BWOhtp0Y;)g zo$7bT0mZWEOi|&g@b2Ho3AU0e=fiQ#db;wyz&{#f)zHQbbgi<>?>o>buHO>t6$foJ zkk6jodtqaUDZ5Y2-lIzEUG!$4DVgKT(8|T9Lq4cvedWliD_Or+aFTIS?nW%w_7A_HRiG<4-xP-GjLt!Z^ zE;Z&Cn^}=QznGPjn#C}Dtwn*?E6mZe7oyOL0v{mZv_i1wVO7Z9i}yjm9`2ENBtR~} z2l5Z`@c_91huuJY0zfYE_{k!++QYn&{d5VJ);SBgJdQzP5BEZG3ME_`$MlLg%O&>G zd8?9eX`BtOh(qfL^DTYqz!wBKd?tg!#Z7FiO!{<*`&G0B4n82m#Kx*aF7Y{FEI`7Y zu@6nCghLDgby_c~=l95Iy@(_3u9x^497xBO_yN>uy@Tk(-IO^N5h4Yi1O+a*i6u$-Sj$lh%JP#PNAQ#VJRCse0yJY_d)H@^`&MZ1N zZpk>U7yS;PIE`p`UuI9w^&=V2L7iR@ROeFUP5`*bxgg`4MKh+Aa5zKgT^1wbXwD`} zI6RXHIIuv%Ax=E<0vV_CxlF<#&OEf=AmP$_cFH)N+YJ&9amq2yVF{PU`BKJdy;_jd zy1b8Zu1oCUj3fDvjCb!jG=gDi-T^XBaYkSV?4f>=GVI8?BXX$IfsA=e?;x<3)+wNk zJPw^pa(k~=*!v-eyl^fBqaGmRDX0g@IGq>t9-%lHXh-{k_*~>MvN$@_ldzT7Pvi3Y z70@2$Mmj%K4>0NcGqq`Hky)R`TeDGY^QdPu6zbJxLxq{CbM$6CQ)ih>Ol>Ry1Q6U%F8TG~d_kJ&C zEY5w|urR;aK*4!A)CIiIs%MuJ!T$?PU0h-|sQK65P+ntp0qVKMW$IF6NvXkTUW&;K zc?%aA^+j}8<6Qnfjli8?ZD=1;j9Bb+KS!w3z9u_3r(vC931E8&U%<34;C%^s5VIj@ z2m2K`JeyLAgjETUL@ZNuR+xw(@J>!RHc% z4dakUueaKiKl81+5}OY~}t&&TZA7hhKCw=m+(~IZ6Ih z|3=Pi}1AH%Y>ykjeW4dzcmL&y(jJo!`pdd_gEc&|sk!2Eta$l8;5}1zlD!Wh5U&f;vHN0UGb-=1r6c;;dcS~)BT_34DxGefcHV_ zAt;v*#isj8W;72?e8iT2626S}-JW7c?th*9Wp?|~|8*IsywrY={xUPxf&Ow%e#9U0 z4t!6=$AxgWKkZ){p!!K4zym@|xxXtONaI59Yh9oIC1KuU9m6g&QAFcHLgt0f2Y*@i!MXkuDsqZue(tx z*B0&R#ul%;eQSHuqe{6cQV+!*hsR|XMN~Z^KzUTX>Hw>0+CPmAXs|taz-cdw0lUE8 zZ1;^3AaHzNHWfU%5V{)rFKQ z#dF>A3?6@K!-ekDwM(PZvwQxy(WABvcE41q|4wy3df$3!HKf0~y8KgObgi^h>i^}n zot-Pm^`m!}S4-aDN~y13?^r*YSX{evd;7W57lNlWW1EWR0+&_q?%gj2g1u(e%H;x) zm>$(5L-}Yp`dl~?iFFntfqW#|L4g4C*g_pV0eJ8@^zMHXwm`dx91o2!uOsu)V!TfM z`JdzwyX`8~5x3eoASCms2i!@u(x!M{#8EciDFE4_GZ!ZOletwPxzX3sJwEv1hb zmZ9`?v8eQdnKAScGks)iXgoWbgP83b>2$$-@4m26FtTIj{gTXh)?^8kU>E5j8xQ9u zCg8>?J)5&k9d1u29J%3l36Euu==nk}Zx*a$-2B7atsuoa#_P*7#n};7-d8+_$T`nG zO5*scF{FM6tD)|CR&+7Lt{@3E*q>{~?kvxKHf=5qM<(Bf!Zyfl|NX3&yUp zsk~(_e%ET%pQrl!NQw3F>nrQ$fx|h&8~`6j6BYWn3@dL=<32usNG<(oN_eZHEIU#^ z!+Mc-m-H_Pp6jyxg!Cd!bvi#%jv(upIs*>wi%bs_5#~g)+&|MepVVS3MdVpZ+yb`N g{^Op=yN8l`BIQ4$>>uZ?rN2S@&);>N6Nl9Q59`R}8UO$Q literal 0 HcmV?d00001 diff --git a/obj/nprint.o b/obj/nprint.o new file mode 100644 index 0000000000000000000000000000000000000000..4880fa19cf0c8e31ba5b52c8baef7922731f9725 GIT binary patch literal 10624 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 literal 0 HcmV?d00001 diff --git a/obj/sanity.o b/obj/sanity.o new file mode 100644 index 0000000000000000000000000000000000000000..cbc6b2296f4dd08562059297e4ad5f11276348e0 GIT binary patch literal 3840 zcmbVO3s6*L6#nn-!mcjj@(@8Z7T-8{V;6kC0Fg&RzRf4F3oBs4;<6yfIDv>WB^5p+ zvqomj$}Dl3aZGGx$)q$jG;6TNEXS-#XB5Sn#zy+j-E)@ZXPs#}Gk4E9-#Ono|LgvD zUz(Shs*)r|BC*-5*CUj%ngP9bqGBepFgApx*WK0q4t~9>T-)vkmSl3J*L|Toqm-dq zHzC4>{K^BZU%Fhb^RBO?L*Y$H+hWzj8dI(D$)RTR@w%8W-C3zQ{F>2m)c8t${iOI~ zn(^A(wF3@k?3%1A&om~t3{5XJk7_8`I)6a(bG47+?&SxktFIUyr>q#&GIjUHKy7BB zUz3K#?9|PaMl-#Bwq6~`m@0v(1E)tzGxXD<{WC)5M5w|UQwK?70z>rbsK}@wDOhV5 z%9sWzI>!9MfTHINeMSgl{xX{rp#Xl<^y4BjLS{xVrj;cGl`N=|7`~YYbm?r1^b)6e z%{xxFYHOA2DEgjW6EN4yiEga~2MrGP^-@&fSRir=wrrWv{gj{5;N(@-XJHIwot?kvFotf6hwk z8lHS=bX$e`Tv+$Lj~*TT>~2eZfPLnJ;aby@m)|L^Nsnz<8GFW>dCRi{S_(bFFF*P!N;^Y~zCynFkN_tl1^fi-afnupP?uNyRN zbvYdgxhboQ7I)mZlX3rcarpMOU7OmL?lAw5R5omWcK!8^bJx0Ot+aIRxq8gCEoxHp zs@kzXtq;BM$DgL|OWF7D81(w@4&Cmmja(OzkjT>J&Yf-?pJpp@+U-VDylj?DIi=<} zb3&ZS6hF~nGM1XmF&Hos4nx%N$H*UeQ_`Ma##Bsl0Y)OBPxA`JfV7#PiAsYM8KBiQ z@*v>DF%}6rCD5=uke}G62-MTCt{z`uwPzLkM%BtF`(og!nYKTu-~*q62RsEI)DMRW z!CvE0=EgDpS~5ewY{s79Sdg-+?jWt(7zI~*7=*JjOG%NlO3p(gC$G?!_aZB>Im?Uk zSy9i3@B-m@>(8L4Eu^I@;(T#Xg*1?W!@@FnOI5BfqK z_vvTM`jOaK_>Bh+I}x?6g>!T;_DRbs<>} z+Xjp5v{gEpoNsYjm~1U8W3qzg+pOgUIYlMw>^!E}7OT}^tLPK9I4mUvw!V}NMf@T_ z3hzTEz&VPaXD=@1p8+P9*qt_+U+ELeoECngxc!2Xa=FxDFSR+GRoKf`n6u7dDW(PX zOzi&|MoxpZqjN)5649XhlW_44g*e<(iIjlah?htl`tUCX`q2Hx|2ZiF=L~S~vkHOL z@WTaS-Xi+3JP0*K{u(5S`Jz9W=P4Ks40*YzYf+OD(vg*DvtHrQWSPzhdq(9#JqVjG2X)_^gNNHiR^`ki)*l-v}=&7w`Q8F7avnMI7_h zzX|)(`wq20i0}3o%jbr#{x0m_iHWd&a90qY`osMWt>P%aZ4d*l`^RqA^Gj(sJXXUa zzW6TWS9q9iL*zFSU&xz`2XcylQ(w|=B40>j#o~d+1maOXd{1DhaJU4sQsmSAQGmuz zej7KSrpQ0|ANi*_*Vq0vVI$fn*uNnDP=CUG_2y};1N$3s!tgx@uE>Y)p0B044}; +#include +#include +#include + +char* opt = NULL; +void help() { + nprint("E", "Usage: fex (OPT) (PACKAGES)"); +} +int main(int argc, char** argv) { + if (argc < 2) { + help(); + return 1; + } + + if (argv[1][0] == '-' || argv[1][0] == '+' ) { + opt = argv[1]; + } else { + nprint("E", "First argument must be OPT"); + return 1; + } + + if (opt[0] == '+' && opt[1] != '\0') { + nprint("D", "Placeholder"); + } + + if (argc < 3) { + nprint("E", "No packages specified"); + return 1; + } + return 0; +} \ No newline at end of file diff --git a/src/install.c b/src/install.c new file mode 100644 index 0000000..c13d784 --- /dev/null +++ b/src/install.c @@ -0,0 +1,15 @@ +/* + Created by auric on 2/21/24. + +*/ + +#include +#include +#include +#include +/* Prototype main for suite instead of a unified manager. Obviously never developed +int main() { + nprint("I", "Information"); +} + */ + diff --git a/src/sanity.c b/src/sanity.c new file mode 100644 index 0000000..5292b3c --- /dev/null +++ b/src/sanity.c @@ -0,0 +1,28 @@ +// +// Created by auric on 2/22/24. +// + +/* + * 0: Success + * 1: Failure + * 2: Root check failure + * 3: /con check failure + * 4: /exe check filuse + * 5: /con and /exe check failure + */ + +#include +#include + +bool isSane = true; +bool isRoot = false; + +int sanity_check() { + if (getuid() == 0) { + isRoot = true; + } + + + + return 0; +} \ No newline at end of file