From e20b870ff48003d019d698d255a45265e00ed9de Mon Sep 17 00:00:00 2001 From: Patrick Kloepfer Date: Thu, 12 Dec 2019 23:19:05 -0500 Subject: [PATCH] Doc and some make script updates. --- .Docs/Command Guide.md | 2 ++ .Docs/Shell Developers Guide.md | 29 ++++++++++++++++++++ .Floppies/A2OSX.MAKE.po | Bin 33553920 -> 33553920 bytes MAKE/COPYBUILD.txt | 4 +-- MAKE/FULLFILES.txt | 4 +-- MAKE/MAKEFULL.txt | 46 +++++++++++++------------------- TESTS/FORTEST.txt | 3 +-- 7 files changed, 55 insertions(+), 33 deletions(-) diff --git a/.Docs/Command Guide.md b/.Docs/Command Guide.md index 9b0b76c0..6652c1fd 100644 --- a/.Docs/Command Guide.md +++ b/.Docs/Command Guide.md @@ -82,6 +82,8 @@ In KCONFIG you can set: LOGIN is a system process for A2osX that authenticates users against the A2osX User Database stored in ./ETC/PASSWD. Once a user is authenticated, LOGIN then loads the SH (./BIN/SH) process passing it the PROFILE script found in the users Home directory. +>Note, at the shell prompt you can execute the **LOGIN** command which will then ask you for a name/password and create a new user "session" for you as if you are that user. You will have a new shell environment and be placed in that user's home directory. When you type **EXIT** or press Control-D at the shell prompt, that session will be terminated and you will returned to your original session in tact. + ### NETWORKD | Command | diff --git a/.Docs/Shell Developers Guide.md b/.Docs/Shell Developers Guide.md index f547aa1f..e2694b10 100644 --- a/.Docs/Shell Developers Guide.md +++ b/.Docs/Shell Developers Guide.md @@ -767,6 +767,35 @@ loading functions this way >A note on memory. All scripts get loaded into and run from Main Memory. +### Getting and Validating Input + +One of the challenges when writing scripts is gathering input from the user and validating that input before performing a series of operations that would be affected by missing or invalid data. For example, suppose you wrote a script that prompted a user to enter in an IP address which will be passed to the ping command. You might want to gather the input as the 4 separate octets that make up an IP address and make sure each is a valid integer in the range of 1 to 255. The A2osX shell provides a robust set of commands you can use to craft such a script with extensive error checking. For instance the **READ** command (see above) has options to limit input to just 3 characters (the max an IP octet can be), in this case **READ -N 3 IP1** would accomplish this. Next you might want to validate that the user did not press return without typing anything (a null) by using either the **IF [ -Z var ]** (is null) or **IF [ -N var ]** (not null) checks. Then using the **IF [ -I var ]** check you could make sure the user entered an integer. Once you know you have **an** integer, you can check to see if it is in an acceptable range by using the compound **IF [ $IP1 -gt 0 ] AND [ $IP1 -LT 256 ]**. + +>Note, it may seem expedient to just do that last compound **IF** to check the range of the input. If you do that, should the user enter nothing (just press return) or enter a string (i.e. ABC) then when the script executes this **IF** command the shell will throw and error and stop execution of your script. This is because **IF** checks like **-gt** can only handle integers and the integer check **-I** cannot handle nulls. + +The following example demonstrates the complete validation concept outlined above. You could enhance this example further by putting the input and error checking in a **WHILE** loop to continue prompting the user for a valid octet until one was entered in the proper range. In addition, you could put such a routine in a function so that you could have the same set of code executed for all 4 octets. + + #!/bin/sh + # + # Demo of Getting and Validating Input + # + ECHO \f ; # Clear screen + ECHO "\n\n Enter Octet: " + READ -N 3 IP1 + IF [ -Z $IP1 ] + ECHO "\n\nNothing entered" + ELSE + IF ![ -I $IP1 ] ; # Note the use of ! to negate IF + ECHO "\n\nNon-numeric characters entered" + ELSE + IF [ $IP1 -gt 0 ] AND [ $IP1 -lt 256 ] + ECHO "\n\nValid Octet Entered" + ELSE + ECHO "\n\nNumber out of range" + FI + FI + FI + ### Shell Environment Copy Vars????, Different Context, own vars get lost, own funcs, when called with dot, is using the same env. diff --git a/.Floppies/A2OSX.MAKE.po b/.Floppies/A2OSX.MAKE.po index a1d525602776c131b41938e651b38a05cfaab260..77df7317efb23108a59fd026b8513b60b866af85 100644 GIT binary patch delta 55115 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 delta 41017 zcmafc2Y6IP_x{XgceB})-Sk3$B(wy=l7tpekyHqzk%Vf2&=l!Cp)H}r=x0Iw%oWQn zO1_JV1_a4k0XufZE-I*q(m|;gWdHBXEqgc1@A>b;VYBzX_sp3yXU>!}cV_ifuWdDG z`$D7fKRx>S^DCw*jI=O(vpjF+C>ImvPtHQnsp zOPqTi+MG>4r;oVOt)AuYhpeZMOtNga7;c_sND1{+mzewXcdwrH7)|j!v&uY$x((~@q*t07 z%qF+t?~myf4_#nBYY@(^Gbfw!7A~B&NC;bR?l_G9nNqo6Zec}rO7Xa~@S=j@6)9;c z`1H+4X?HiJvUcXQsd`MmjFkMvGiFU?%#ynISAJce-vAXmbiKI?9Ux3yZ+@_2pV?s9 zr7#|O)4rU|RnD;?!4ERArcko>Bmypi~;Ag{V8Wq|O@ zdULW(gUI}Z+R^5&!jp|=dt;Niu_?H*$VtJ&W%kejZLYIO=*oy zT^gIZHa2x@Z0g?F)T6N}y|F2yv8iWcQ?JIR%*LkPjZKcWras3U!rgPsDR)~veLz{D zY)}rUFQ^}=KWG4GASf3!2s9XU1L#K3O`sv5n?XZCd7yky0jLmE1S$p%0}Th2fJT5u zf=WSUpmI6x#(~CzCV*}M-3q!5bUSDwXcDLvG#NAnG!--r zG#zvY=uXfK&|RRJpjn{VpgEwq9;;{Gg)#B9Idd1*IcCkhV{W+o=fe7hi>A%KJ3eAQ zXaQ&;Xc1^JXbEU3s18&QS_WDUS^-)KS_N`~R)ZQqYd~v3>p<&4ji9?hO`v-~_k#Wd zx({?e=mF4!pbemhKo5f+0sR;BD5x1EfF1*F1U(LV0`w&4DUb`~25ka84SEK&8Po#$ zA4mjk0X++P4)i=|E9eE#i=bA}Hqds^OQ0Q~ouHRNyFhIq59k%ptDx6FuY=wIy$RY4 z+5_4PdJFV6=pE3zp!Y!UgFXQ51APek2=p=N6VRui&p@Apz5sm*+7J2)^fl-k(6^xP zK;MIY0R0F$0Qw2^Gw2u4LC_)4ub|&Rzk?2g{s0{T{R#RDbkq|caqMVkS5^y+@?Pd?nMY{>xa#WBYLblIO~Azkva2bmEU9!9RFoHUrp6(FZIEIA9`XrSUQ{!- zqH3g?u<>TVLXz;PO2X3g#YVE#q{2qe z(ZMv)2$5!h+cvpuAl#@03aqGRxGx8UIHkLQ+oj<~s<>gr;~Yg}id3vL6R>YIST8+H zpX%(zW|9@63iribN~)zL`3@AL#%%$(Ni3@{S4d}8^IB4&Lb#HpMT>*UCsvhRzZnX< zkwsPIMWq^4TD~}l++|Q<&GUV!=9i8vEE*#trIko^xu)RtEYTnon8$lLgc=0e_gJ!E zi#≫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 diff --git a/MAKE/COPYBUILD.txt b/MAKE/COPYBUILD.txt index 16905f83..6c706e27 100644 --- a/MAKE/COPYBUILD.txt +++ b/MAKE/COPYBUILD.txt @@ -7,7 +7,7 @@ AUTO 4,1 # and then verifies/corrects that files are in the right locations to # be used by other MAKE processes such as those for making disk images # -. MAKEFUNCS +. makefuncs CALL CS CALL TBOX " New BUILD File Copier" # Check for BUILD and MAKE online @@ -53,4 +53,4 @@ ECHO "PREFIX BUILDS/BUILD${B}" > /MAKE/BLEED ECHO "-A2OSX.SYSTEM" >> /MAKE/BLEED ECHO "BLEED file updated! Process Complete. Exiting.\n" MAN -TEXT /MAKE/USR/SHARE/MAKE/COPYBUILD +TEXT /MAKE/USR/SHARE/MAKE/copybuild diff --git a/MAKE/FULLFILES.txt b/MAKE/FULLFILES.txt index 085891d1..2ba9abc5 100644 --- a/MAKE/FULLFILES.txt +++ b/MAKE/FULLFILES.txt @@ -1,8 +1,8 @@ NEW PREFIX AUTO 4,1 -a2osx.logo -a2osx.system +A2osX.logo +A2OSX.SYSTEM bin/arp bin/cat bin/chmod diff --git a/MAKE/MAKEFULL.txt b/MAKE/MAKEFULL.txt index f0992384..786b58e1 100644 --- a/MAKE/MAKEFULL.txt +++ b/MAKE/MAKEFULL.txt @@ -6,7 +6,7 @@ AUTO 4,1 # This script makes a proper fullboot disk using the files # found in a particular build stored in /make/builds # -. MAKEFUNCS +. makefuncs CALL CS CALL TBOX " fullboot 800 Media Creator" CALL PRINTXY 8 0 "You must have the correct image mounted on /dev/s7d2" @@ -28,7 +28,7 @@ IF [ -Z $B ] ECHO "Exiting" EXIT FI -SET SRC = "/make/builds/build${B}" +SET SRC = "/MAKE/BUILDS/BUILD${B}" IF [ -D ${SRC} ] ECHO "\n\nFound Valid BUILD\n" ELSE @@ -66,13 +66,10 @@ SWITCH $RCS EXIT END ECHO "Which Prodos:" -ECHO " 1) Asset ProDOS 2.03tc" -ECHO " 2) Asset ProDOS FX" -ECHO " 3) Asset ProDOS FX Paked" -ECHO " 4) Build ProDOS 2.03tc" -ECHO " 5) Build ProDOS FX" -ECHO " 6) Build ProDOS FX Paked" -READ -P "Enter 1-6: " PDOS +ECHO " 1) ProDOS 2.03tc" +ECHO " 2) ProDOS FX" +ECHO " 3) ProDOS FX Paked" +READ -P "Enter 1-3: " PDOS IF [ -Z $PDOS ] ECHO "You did not enter any response." ECHO @@ -81,22 +78,13 @@ IF [ -Z $PDOS ] FI SWITCH $PDOS CASE 1 - SET PDOSFILE = "/make/assets/pdos203tc/prodos" + SET PDOSFILE = "${SRC}/PRODOS" BREAK CASE 2 - SET PDOSFILE = "/make/assets/pdos203fx/prodos.fx" + SET PDOSFILE = "${SRC}/PRODOS.FX" BREAK CASE 3 - SET PDOSFILE = "/make/assets/pdos203fx/prodos.fx.paked" - BREAK - CASE 4 - SET PDOSFILE = "${SRC}/prodos" - BREAK - CASE 5 - SET PDOSFILE = "${SRC}/prodos.fx" - BREAK - CASE 6 - SET PDOSFILE = "${SRC}/prodos.fx.paked" + SET PDOSFILE = "${SRC}/PRODOS.FX.PAKED" BREAK DEFAULT ECHO "You did not enter a valid response." @@ -106,7 +94,7 @@ SWITCH $PDOS EXIT END ECHO "Formatting Destination..." -FORMAT -B 1600 s7d2 fullboot +format -B 1600 s7d2 fullboot ECHO "Making Directory Structure..." md /fullboot/bin md /fullboot/drv @@ -121,15 +109,19 @@ md /fullboot/var md /fullboot/var/log ECHO "Copying Files..." FOR FILE IN (fullfiles) - CP -Q ${SRC}/${FILE} /fullboot/${FILE} + cp -Q ${SRC}/${FILE} /fullboot/${FILE} NEXT -CP -Q -Y $PDOSFILE /fullboot/ProDOS -CP -Q -Y initboot /fullboot/etc/init +cp -Q -Y $PDOSFILE /fullboot/ProDOS +cp -Q -Y initboot /fullboot/etc/init ECHO "Welcome to A2osX!" > /fullboot/etc/issue ECHO >> /fullboot/etc/issue ECHO $IM >> /fullboot/etc/issue -CP -Q tcpip.conf /fullboot/etc/tcpip.conf -CP -Q profile /fullboot/root/profile +cp -Q tcpip.conf /fullboot/etc/tcpip.conf +cp -Q profile /fullboot/root/profile +IF [ $PDOS -eq 1 ] + ECHO Renaming VOL + REN /fullboot FULLBOOT +FI ECHO "fullboot Disk Created!" MAN TEXT /MAKE/USR/SHARE/MAKE/MAKEFULL diff --git a/TESTS/FORTEST.txt b/TESTS/FORTEST.txt index 66c74080..9a5ff364 100644 --- a/TESTS/FORTEST.txt +++ b/TESTS/FORTEST.txt @@ -1,3 +1,4 @@ + NEW PREFIX AUTO 4,1 @@ -67,7 +68,5 @@ WHILE [ $OL -ne 0 ] NEXT SET OL = $OL - 1 LOOP - - MAN TEXT /MAKE/USR/SHARE/TESTS/FORTEST