From 4b4d896f8afb36fc380b4b2dc9dc265babfdb47d Mon Sep 17 00:00:00 2001 From: Nasarus Date: Wed, 20 Oct 2010 23:58:36 +0000 Subject: [PATCH] Shell 0.4.5: Multilanguage, russification, some new commands (see History.txt for details) git-svn-id: svn://kolibrios.org@1668 a494cfbc-eb01-0410-851d-a64ba20cac60 --- programs/system/shell/History.txt | 102 ++++++++++++++++++ programs/system/shell/all.h | 7 +- programs/system/shell/{ => bin/eng}/.shell | 0 programs/system/shell/bin/eng/shell.kex | Bin 0 -> 5263 bytes programs/system/shell/bin/rus/.shell | 5 + programs/system/shell/bin/rus/shell.kex | Bin 0 -> 5375 bytes programs/system/shell/bin/shell.kex | Bin 4713 -> 0 bytes programs/system/shell/clean.bat | 2 - programs/system/shell/cmd/cmd_about.c | 12 +++ programs/system/shell/cmd/cmd_cd.c | 6 +- programs/system/shell/cmd/cmd_date.c | 12 ++- programs/system/shell/cmd/cmd_help.c | 12 ++- programs/system/shell/cmd/cmd_kerver.c | 27 +++++ programs/system/shell/cmd/cmd_kill.c | 2 +- programs/system/shell/cmd/cmd_memory.c | 18 ++++ programs/system/shell/cmd/cmd_mkdir.c | 6 +- programs/system/shell/cmd/cmd_more.c | 14 ++- programs/system/shell/cmd/cmd_reboot.c | 12 ++- programs/system/shell/cmd/cmd_rm.c | 6 +- programs/system/shell/cmd/cmd_rmdir.c | 6 +- programs/system/shell/cmd/cmd_touch.c | 6 +- programs/system/shell/cmd/cmd_turnoff.c | 6 ++ programs/system/shell/cmd/cmd_uptime.c | 19 ++++ .../shell/{compile.bat => compile_eng.bat} | 6 ++ programs/system/shell/compile_rus.bat | 15 +++ programs/system/shell/globals.h | 37 ++----- .../system/shell/{bin => locale/eng}/.shell | 0 programs/system/shell/locale/eng/globals.h | 28 +++++ programs/system/shell/locale/rus/.shell | 5 + programs/system/shell/locale/rus/globals.h | 28 +++++ .../system/shell/modules/module_executable.c | 26 +++-- programs/system/shell/system/kolibri.c | 5 + programs/system/shell/system/kolibri.h | 1 + 33 files changed, 375 insertions(+), 56 deletions(-) create mode 100644 programs/system/shell/History.txt rename programs/system/shell/{ => bin/eng}/.shell (100%) create mode 100644 programs/system/shell/bin/eng/shell.kex create mode 100644 programs/system/shell/bin/rus/.shell create mode 100644 programs/system/shell/bin/rus/shell.kex delete mode 100644 programs/system/shell/bin/shell.kex delete mode 100644 programs/system/shell/clean.bat create mode 100644 programs/system/shell/cmd/cmd_kerver.c create mode 100644 programs/system/shell/cmd/cmd_memory.c create mode 100644 programs/system/shell/cmd/cmd_turnoff.c create mode 100644 programs/system/shell/cmd/cmd_uptime.c rename programs/system/shell/{compile.bat => compile_eng.bat} (55%) create mode 100644 programs/system/shell/compile_rus.bat rename programs/system/shell/{bin => locale/eng}/.shell (100%) create mode 100644 programs/system/shell/locale/eng/globals.h create mode 100644 programs/system/shell/locale/rus/.shell create mode 100644 programs/system/shell/locale/rus/globals.h diff --git a/programs/system/shell/History.txt b/programs/system/shell/History.txt new file mode 100644 index 0000000000..81f65e9de2 --- /dev/null +++ b/programs/system/shell/History.txt @@ -0,0 +1,102 @@ +Shell 0.4.5 // 19.10.2010 // Pterox +======================================= +Программа теперь многоязыковая (английский, и русский язык). Программа полностью русифицированна. +* Команда "free" перименована в "memory" - для точности. +* Добавлены команды turnoff (выключить компьютер), kerver (версия ядра KoOS), uptime; reboot теперь может перезагружать ядро ("reboot kernel") + +Shell 0.4.4 // 20.08.2010 // Albom +======================================= +1) шелл корректно завершается при закрытии окна +2) исправлено ещё 2 ошибки +3) добавлены 2 команды: +* sleep - ждать. параметр - время в сотых частях секунды. только целое число. +* ccpuid - вывод в консоль информации (пока скудно) о процессоре. пользы мало, но давно хотел с командой cpuid разобраться (в следующем семестре буду студентам курс читать, включил разбор команды в программу). + +есть много идей. некоторые легко реализуются, некоторые сложнее. если интересно: +1) добавить переменную (одну!), в которую будет результат в текстовой форме (не то что возвращает ф-ция) записываться. с ней можно будет работать из командной строки. +2) внедрить простую стековую машину для вычислений с вещественными числами. + +Shell 0.4.3 // 20.08.2010 // Albom +======================================= +* Смесь версий 0.4.1 и 0.4.2. Теперь в архиве все исходные файлы, необходимые для компиляции (раньше использовались объектники с моими обёртками, исходники я с шеллом не выкладывал) + +Shell 0.4.2 // 28.08.2009 // diamond +======================================= +* Добавил корректное завершение работы при закрытии окна консоли, работает только начиная с последней на данный момент версией библиотеки (лежит на svn, включена в ночную сборку). Перекомпилировал в VS2008 с LTCG, ещё пошаманил с оптимизацией по размеру. + +Shell 0.4.1 // 16.03.2009 // Albom +======================================= +* версия с исправленными ошибками. +* работает команда alias, добавлена команда clear. + +Shell 0.4 // 12.08.2008 // Albom +======================================= +1) Работает схема псевдонимов (до 256 команд) +- просмотр по команде alias (без параметров) +- добавление псевдонима команды с клавиатуры или в скрипте (в том числе и .shell): alias новая команда = старая команда +- команды регистрозависимые, поэтому поклонникам ДОС придётся внести в .shell строки такого вида +alias dir = ls +alias DIR = ls +alias Dir = ls +alias DIr = ls +и т.д. +- встроенные команды переназвать невозможно, например, бессмысленна команда: +alias ls=somecommand +- при отладке получал странную информацию, но так как у меня всё работает, то пока изменений вносить не планирую + +2) Теперь шелл можно запускать с параметром (из самого себя, например). +- синтаксис: +shell команда +- пример: +shell /sys/somescript +- при этом .shell не запускается + +3) Реализована команда more. ( MEMENTO MORI! - Моментально... в море! ) +- просмотр текстовых и бинарных файлов (вроде бы задача простая, но пришлось повозиться с управляющими символами) +- очень не рекомендуется просматривать большие файлы + +Shell 0.3 // 07.08.2008 // Albom +======================================= +1) Возможность запуска скриптов. +* каждая строка должна представляет собой команду +* строкой считается набор символов, который заканчивается CR+LF (Windows) или LF(UNIX) или CR(Mac) +* если строка начинается с #, то вся строка (т.е. комментарий) игнорируется +* скрипт должен начитаться с #SHS +* при запуске шелла автоматически запускается скрипт .shell + +2) История из 5 (можно изменить при компиляции) введённых команд. +* перемещение по истории - UP/DOWN + +3) Команда alias, которая позволяет вводить синонимы для команд. +* до 256 (можно изменить при компиляции) синонимов +* пока работает только добавление и просмотр синонимов, а отработка пока не реализована. + +Shell 0.2 // 04.08.2008 // Albom +======================================= +* добавил новые функции +* написал собственную процедуру ввода команды + +Shell 0.11 // 01.08.2008 // Albom +======================================= +* Добавил команды free и reboot, внёс некоторые изменения, исправил найденные ошибки. + +Shell 0.1 // 29.07.2008 // Albom +======================================= +* Реализованы (не полностью) команды: about, cd, date, echo, exit, help, kill, ls, ps, pwd, ver +* При запуске программы (если не указан полный путь) она ищется в каталоге /rd/1 и текущем каталоге. + +Shell 0.02 // 27.07.2008 // Albom +======================================= +* Реализовал команды: + exit - выход + ls (с параметром и без) - вывод списка директории + pwd - текущий каталог + ps - список процессов и их PID + kill - завершить процесс по PID + help (с параметром и без) - помощь + +Shell 0.01 // 27.07.2008 // Albom +======================================= +* Решил написать функциональный шелл на Си с использованием console.obj. +* Пока сделал функцию отделения команды и параметров, а также реализовал команды help (пока без параметров), ver и exit. + diff --git a/programs/system/shell/all.h b/programs/system/shell/all.h index 7b91a967a8..9f81ae058c 100644 --- a/programs/system/shell/all.h +++ b/programs/system/shell/all.h @@ -1,6 +1,8 @@ /// =========================================================== +#include "lang.h" + #include "system/boolean.h" #include "system/kolibri.h" #include "system/stdlib.h" @@ -22,7 +24,7 @@ #include "cmd/cmd_date.c" #include "cmd/cmd_exit.c" #include "cmd/cmd_cd.c" -#include "cmd/cmd_free.c" +#include "cmd/cmd_memory.c" #include "cmd/cmd_reboot.c" #include "cmd/cmd_mkdir.c" #include "cmd/cmd_rmdir.c" @@ -33,6 +35,9 @@ #include "cmd/cmd_clear.c" #include "cmd/cmd_ccpuid.c" #include "cmd/cmd_sleep.c" +#include "cmd/cmd_turnoff.c" +#include "cmd/cmd_kerver.c" +#include "cmd/cmd_uptime.c" #include "modules/module_command.c" #include "modules/module_program.c" diff --git a/programs/system/shell/.shell b/programs/system/shell/bin/eng/.shell similarity index 100% rename from programs/system/shell/.shell rename to programs/system/shell/bin/eng/.shell diff --git a/programs/system/shell/bin/eng/shell.kex b/programs/system/shell/bin/eng/shell.kex new file mode 100644 index 0000000000000000000000000000000000000000..972ca8a24a15135edbb8847793cf8a8586b8abe9 GIT binary patch literal 5263 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�CN~H9Gf=kccB$8I&)51Ic+99SLXB(R4gUe+H%E~>6YFc>)zpwnK zci~ySHf;u^3GHkxH|Zf#e+_M`(`d9!#K%E}C;nHHSbsr%6Yf$W5-6Wwy4)IYJ7fZO zl4!k>;#%nu)k}BE31+zoK~`J(MXrm?y`?voYh{w<_!@wsx}@u+RXsRyj{Ind);VcOB0f=?BiR>Y5O^iugqvPJi(c`UxnXa`S#z68n z4$}f?0?#wQbMS0eIzdv2YFJBrVocdIMG}fgM^Tpc4yI*FyV29c{VzPb0xzg`3uQj9k52iV#NEAr0!qy>z+vT!ZWmpSnfd4NWhgvSTjC9hzqFxjBByfGTN-xxgD1(&b@5r|=0HNZijw&%gwK?#4 z*d()bbXIA$+yb1xD-cj{BD0g5S~^ese)3(La-=2Wx_Kx%3}vdAR$a%ZN8q_&?KntJ+F| z1qT>pCJs*sgwq+C4VcK1tY<9|kCZL8#*Fz}$1Ur+`+yfA9w1B5KC8x3u`ML2Ke0LD zkIcY7B{S%Dqe1sEQ8R+3j<~Wo7~3JIn_Lo$8X6NhxOGUibnlAdG;82Qvk%wPJ}v$^ zN75_t1Xev$s9ip-_h@YRSuN?in5UKECG#YKyC#Q5cj1X^B(Y!?kBp-tG#I<%j)}}PGAsI2W=V1W4og)15I{NqERd&ST z&Se~gr6~8(^*34g)`|OodStmHRv`nuJfSq%!i*(hj!@Rtld>od3G*n->)maz$~FYe zoX`j|zy%0}c(L*hP)O7IoZQ#=D6SQ<=phaWlw8aX7-rqzvS|ul)0nz8TI){4?q3Z2 zcpp87$hK1m+wVs13Qw>*ct8*BOt(6A@kWjLM@Sf9Jfpsc^RFRdVMUE_THy(}d8uNuemU%Io#&>TaTFKu5GDP}4w9cQ08o4AJE5g7i1B$0 zV(Q>34rr70Jnj45{pnZUm+6wg1-!91x7WeIql^qmn2!>ecL;@nZO2tuXu7Yjd3ots zCqzpf+x($iKLC;XV;cIc)lAGM4X(fa;P4&r9?80W7%m^|EBN%{5U^!)Ot6x%Om^Qh zE9%eYpH*#dvgVxX3?*i`QGCgO?sEYhfTuJt%|S@ND!9tWcb<`~f`ox*KroEwEuK|Ri&~BK1Dmxuz{l@!$72=(cEt~krzwU35Eli213}ydJc`{2AZHW&Yz*89^X?>{jNT(iCiPf8mu zx1tD1-BB%N`(vKhH3~?(Z>e`+@Sh&fQ>m>O(u>5v`^)g}LhBBBAA-RM0tLWqh`jtN z{8F0|*wWIzQ8Tx%xYw3mhI|yX^8K!pO<4wz)>ya_XY^iS?bgZ#YQA*B$GmrE9o0VT$f$B<=k5!M?W!M|BOO<}?{F^fbCLdCx(DK#*1Ngkk$__RF5Sa)_q-w^8AI)a&hSY7s$hq9c{n6*_vv-YMie~)OJ z3nefFlkjH|PqfXk3v5)h4+>Q`Lm?z$2m3VmoC$cY!Ilg-0PqJaHD4$eVj`z`y}zzQ z3^zfSRWQ=Y(UQdH5Rxf1(qvbw+k<7A6ZAG7aJhgUtpCm}oUp%Qk4cqH0ylvrl|x^+ zrH4!v5#Wl(d)|{mi@vnfEr?3_Dfm$+6@Yhk$pON;&&Z2+J>>4Nw?l}*Lh+d4p~4DT z2X6u?8=_Z$lzQd{8yB6E43v{z!6~8xTL%wQR8me}q(0(SxZ|^nn_>(5F)jHq-HLR+ z=HeY|H7437>*i$PB;-B)V}c(%JZNmNFT^x79L(a!=$J@|@%Z?2X_sn7f1|Yy VQcKG5>RYPMwd<4|*!Tbd002&^CbIwl literal 0 HcmV?d00001 diff --git a/programs/system/shell/bin/rus/.shell b/programs/system/shell/bin/rus/.shell new file mode 100644 index 0000000000..6f527d4f06 --- /dev/null +++ b/programs/system/shell/bin/rus/.shell @@ -0,0 +1,5 @@ +#SHS + +about +echo ‚ўҐ¤ЁвҐ 'help' ¤«п бЇа ўЄЁ +echo diff --git a/programs/system/shell/bin/rus/shell.kex b/programs/system/shell/bin/rus/shell.kex new file mode 100644 index 0000000000000000000000000000000000000000..b3528929f8e168a74a7a3db94680e2d7693c0433 GIT binary patch literal 5375 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 literal 0 HcmV?d00001 diff --git a/programs/system/shell/bin/shell.kex b/programs/system/shell/bin/shell.kex deleted file mode 100644 index 07b30a48e9f565925a68b45fc7449058369573de..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4713 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 rA\n\r"); + #elif LANG_RUS + printf(" cd <директория>\n\r"); + #endif return FALSE; } diff --git a/programs/system/shell/cmd/cmd_date.c b/programs/system/shell/cmd/cmd_date.c index 5015ce1a3b..3e185127a9 100644 --- a/programs/system/shell/cmd/cmd_date.c +++ b/programs/system/shell/cmd/cmd_date.c @@ -6,7 +6,11 @@ unsigned date; unsigned time; date = kol_system_date_get(); -printf(" date [dd.mm.yy]: %x%x.%x%x.%x%x", +#if LANG_ENG + printf(" Date [dd.mm.yy]: %x%x.%x%x.%x%x", +#elif LANG_RUS + printf(" „ в  [¤¤.¬¬.ЈЈ]: %x%x.%x%x.%x%x", +#endif (date&0xf00000)>>20, (date&0xf0000)>>16, // day (date&0xf000)>>12, (date&0xf00)>>8, //month (date&0xf0)>>4, (date&0xf) ); // year @@ -14,7 +18,11 @@ printf(" date [dd.mm.yy]: %x%x.%x%x.%x%x", time = kol_system_time_get(); -printf("\n\r time [hh:mm:ss]: %x%x:%x%x:%x%x\n\r", +#if LANG_ENG + printf("\n\r Time [hh:mm:ss]: %x%x:%x%x:%x%x\n\r", +#elif LANG_RUS + printf("\n\r ‚६п [зз:¬¬:бб]: %x%x:%x%x:%x%x\n\r", +#endif (time&0xf0)>>4, (time&0xf), // hours (time&0xf000)>>12, (time&0xf00)>>8, // minutes (time&0xf00000)>>20, (time&0xf0000)>>16 ); // seconds diff --git a/programs/system/shell/cmd/cmd_help.c b/programs/system/shell/cmd/cmd_help.c index 02fb18c67d..12711f866a 100644 --- a/programs/system/shell/cmd/cmd_help.c +++ b/programs/system/shell/cmd/cmd_help.c @@ -4,7 +4,11 @@ int cmd_help(char cmd[]) int i; -char available[]={" %d commands available:\n\r"}; +#if LANG_ENG + char available[]={" %d commands available:\n\r"}; +#elif LANG_RUS + char available[]={" Љ®«-ў® ¤®бвгЇ­ле Є®¬ ­¤: %d\n\r"}; +#endif if ( !strlen(cmd) ) { @@ -22,7 +26,11 @@ else return TRUE; } - printf (" Command \'%s\' not found.\n\r", cmd); + #if LANG_ENG + printf (" Command \'%s\' not found.\n\r", cmd); + #elif LANG_RUS + printf (" Љ®¬ ­¤  \'%s\' ­Ґ ­ ©¤Ґ­ .\n\r", cmd); + #endif printf (available, NUM_OF_CMD); for (i = 0; i < NUM_OF_CMD; i++) printf(" %s\n\r", COMMANDS[i].name); diff --git a/programs/system/shell/cmd/cmd_kerver.c b/programs/system/shell/cmd/cmd_kerver.c new file mode 100644 index 0000000000..455319dc0c --- /dev/null +++ b/programs/system/shell/cmd/cmd_kerver.c @@ -0,0 +1,27 @@ +int cmd_kerver(char param[]) +{ +char *kvbuf; +char *vA, *vB, *vC, *vD; +unsigned *Rev; + +kvbuf = malloc(16); +kol_get_kernel_ver(kvbuf); +vA = kvbuf+0; +vA = *vA; +vB = kvbuf+1; +vB = *vB; +vC = kvbuf+2; +vC = *vC; +vD = kvbuf+3; +vD = *vD; +Rev = kvbuf+5; +Rev = *Rev; + +#if LANG_ENG + printf (" KolibriOS v%d.%d.%d.%d. Kernel SVN-rev.: %d\n\r", vA, vB, vC, vD, Rev); +#elif LANG_RUS + printf (" Љ®«ЁЎаЁЋ‘ v%d.%d.%d.%d. SVN-ॢ. п¤а : %d\n\r", vA, vB, vC, vD, Rev); +#endif +free(kvbuf); +return TRUE; +} \ No newline at end of file diff --git a/programs/system/shell/cmd/cmd_kill.c b/programs/system/shell/cmd/cmd_kill.c index d54ba083e3..8c326c3f76 100644 --- a/programs/system/shell/cmd/cmd_kill.c +++ b/programs/system/shell/cmd/cmd_kill.c @@ -24,7 +24,7 @@ int result; if (NULL == process) { - printf(" kill PID\n\r"); + printf(" kill \n\r"); return FALSE; } else diff --git a/programs/system/shell/cmd/cmd_memory.c b/programs/system/shell/cmd/cmd_memory.c new file mode 100644 index 0000000000..d0e04500a2 --- /dev/null +++ b/programs/system/shell/cmd/cmd_memory.c @@ -0,0 +1,18 @@ + +int cmd_memory(char param[]) +{ +unsigned total, free, used; + +total = kol_system_mem(); +free = kol_system_memfree(); +used = total - free; + +#if LANG_ENG + printf (" Total [kB / MB / %%]: %-7d / %-5d / 100\n\r Free [kB / MB / %%]: %-7d / %-5d / %d\n\r Used [kB / MB / %%]: %-7d / %-5d / %d\n\r", +#elif LANG_RUS + printf (" ‚ᥣ® [ЉЃ / ЊЃ / %%]: %-7d / %-5d / 100\n\r ‘ў®Ў®¤­® [ЉЃ / ЊЃ / %%]: %-7d / %-5d / %d\n\r €бЇ®«м§гҐвбп [ЉЃ / ЊЃ / %%]: %-7d / %-5d / %d\n\r", +#endif + total, total/1024, free, free/1024, (free*100)/total, used, total/1024-free/1024, 100-(free*100)/total ); + +return TRUE; +} diff --git a/programs/system/shell/cmd/cmd_mkdir.c b/programs/system/shell/cmd/cmd_mkdir.c index b2d2533eee..d9ff2a1c46 100644 --- a/programs/system/shell/cmd/cmd_mkdir.c +++ b/programs/system/shell/cmd/cmd_mkdir.c @@ -8,7 +8,11 @@ unsigned result; if (NULL == dir) { - printf(" mkdir directory\n\r"); + #if LANG_ENG + printf(" mkdir \n\r"); + #elif LANG_RUS + printf(" mkdir <¤ЁаҐЄв®аЁп>\n\r"); + #endif return FALSE; } diff --git a/programs/system/shell/cmd/cmd_more.c b/programs/system/shell/cmd/cmd_more.c index 8fdee45820..2235b3e9de 100644 --- a/programs/system/shell/cmd/cmd_more.c +++ b/programs/system/shell/cmd/cmd_more.c @@ -5,13 +5,17 @@ int cmd_more(char file[]) kol_struct70 k70; kol_struct_BDVK bdvk; unsigned result, filesize, pos, i; -char buf[81]; //буфер +char buf[81]; //ЎгдҐа char temp[256]; unsigned flags; if (NULL == file) { - printf (" less filename\n\r"); + #if LANG_ENG + printf (" more \n\r"); + #elif LANG_RUS + printf (" more <Ё¬п д ©« >\n\r"); + #endif return FALSE; } @@ -41,11 +45,11 @@ k70.p16 = &bdvk; k70.p20 = 0; k70.p21 = temp; -result = kol_file_70(&k70); // получаем информацию о файле +result = kol_file_70(&k70); // Ї®«гз Ґ¬ Ё­д®а¬ жЁо ® д ©«Ґ if ( 0 != result ) return FALSE; -filesize = bdvk.p32[0]; // получаем размер файла +filesize = bdvk.p32[0]; // Ї®«гз Ґ¬ а §¬Ґа д ©«  buf[80]=0; flags = con_get_flags(); @@ -63,7 +67,7 @@ for (pos=0;pos\n\r"); + #elif LANG_RUS + printf (" rm <Ё¬п д ©« >\n\r"); + #endif return FALSE; } diff --git a/programs/system/shell/cmd/cmd_rmdir.c b/programs/system/shell/cmd/cmd_rmdir.c index ce95bd01be..a31911cf4e 100644 --- a/programs/system/shell/cmd/cmd_rmdir.c +++ b/programs/system/shell/cmd/cmd_rmdir.c @@ -8,7 +8,11 @@ unsigned result; if (NULL == dir) { - printf(" rmdir directory\n\r"); + #if LANG_ENG + printf(" rmdir \n\r"); + #elif LANG_ENG + printf(" rmdir <¤ЁаҐЄв®аЁп>\n\r"); + #endif return FALSE; } diff --git a/programs/system/shell/cmd/cmd_touch.c b/programs/system/shell/cmd/cmd_touch.c index 3e0ff2b9ad..23298cb003 100644 --- a/programs/system/shell/cmd/cmd_touch.c +++ b/programs/system/shell/cmd/cmd_touch.c @@ -8,7 +8,11 @@ unsigned result; if (NULL == file) { - printf(" touch filename\n\r"); + #if LANG_ENG + printf(" touch \n\r"); + #elif LANG_RUS + printf(" touch <Ё¬п д ©« >\n\r"); + #endif return FALSE; } diff --git a/programs/system/shell/cmd/cmd_turnoff.c b/programs/system/shell/cmd/cmd_turnoff.c new file mode 100644 index 0000000000..cb7d07e100 --- /dev/null +++ b/programs/system/shell/cmd/cmd_turnoff.c @@ -0,0 +1,6 @@ + +int cmd_turnoff(char param[]) +{ +kol_system_end(2); +return TRUE; +} diff --git a/programs/system/shell/cmd/cmd_uptime.c b/programs/system/shell/cmd/cmd_uptime.c new file mode 100644 index 0000000000..860f8af2a2 --- /dev/null +++ b/programs/system/shell/cmd/cmd_uptime.c @@ -0,0 +1,19 @@ + +int cmd_uptime(char param[]) +{ +unsigned time_tick, up_days, up_hours, up_minutes, up_seconds, up_millisecs; + +time_tick = kol_time_tick(); +up_days = (time_tick/(24*60*60*100)); +up_hours = (time_tick/(60*60*100))%24; +up_minutes = (time_tick/(60*100))%60; +up_seconds = (time_tick/100)%60; +up_millisecs = (time_tick*10)%100; + +#if LANG_ENG + printf (" Uptime: %d day(s), %d:%d:%d.%d\n\r", up_days, up_hours, up_minutes, up_seconds, up_millisecs); +#elif LANG_RUS + printf (" Uptime: %d ¤­Ґ©, %d:%d:%d.%d\n\r", up_days, up_hours, up_minutes, up_seconds, up_millisecs); +#endif +return TRUE; +} \ No newline at end of file diff --git a/programs/system/shell/compile.bat b/programs/system/shell/compile_eng.bat similarity index 55% rename from programs/system/shell/compile.bat rename to programs/system/shell/compile_eng.bat index ef87f155a0..e845753f5a 100644 --- a/programs/system/shell/compile.bat +++ b/programs/system/shell/compile_eng.bat @@ -1,3 +1,6 @@ +@echo off +erase shell.kex lang.h +echo #define LANG_ENG 1 > lang.h fasm start.asm start.o gcc -c shell.c gcc -c system/kolibri.c @@ -5,5 +8,8 @@ gcc -c system/stdlib.c gcc -c system/string.c ld -nostdlib -T kolibri.ld -o shell.kex start.o kolibri.o stdlib.o string.o shell.o objcopy shell.kex -O binary +erase lang.h start.o shell.o kolibri.o stdlib.o string.o kpack shell.kex +move shell.kex bin\eng\ +copy locale\eng\.shell bin\eng\ pause \ No newline at end of file diff --git a/programs/system/shell/compile_rus.bat b/programs/system/shell/compile_rus.bat new file mode 100644 index 0000000000..652c676ffd --- /dev/null +++ b/programs/system/shell/compile_rus.bat @@ -0,0 +1,15 @@ +@echo off +erase shell.kex lang.h +echo #define LANG_RUS 1 > lang.h +fasm start.asm start.o +gcc -c shell.c +gcc -c system/kolibri.c +gcc -c system/stdlib.c +gcc -c system/string.c +ld -nostdlib -T kolibri.ld -o shell.kex start.o kolibri.o stdlib.o string.o shell.o +objcopy shell.kex -O binary +erase lang.h start.o shell.o kolibri.o stdlib.o string.o +kpack shell.kex +move shell.kex bin\rus\ +copy locale\rus\.shell bin\rus\ +pause \ No newline at end of file diff --git a/programs/system/shell/globals.h b/programs/system/shell/globals.h index e5c292a667..fae15d122b 100644 --- a/programs/system/shell/globals.h +++ b/programs/system/shell/globals.h @@ -1,5 +1,5 @@ -#define SHELL_VERSION "0.4.4" +#define SHELL_VERSION "0.4.5" extern char PATH[256]; extern char PARAM[256]; @@ -49,7 +49,7 @@ int cmd_clear(char arg[]); int cmd_date(char arg[]); int cmd_echo(char text[]); int cmd_exit(char arg[]); -int cmd_free(char arg[]); +int cmd_memory(char arg[]); int cmd_help(char cmd[]); int cmd_kill(char process[]); int cmd_ls(char dir[]); @@ -63,34 +63,17 @@ int cmd_rmdir(char dir[]); int cmd_touch(char file[]); int cmd_ver(char arg[]); int cmd_sleep(char arg[]); +int cmd_turnoff(char arg[]); +int cmd_kerver(char arg[]); +int cmd_uptime(char param[]); /// =========================================================== -const command_t COMMANDS[]= -{ - {"about", " Displays information about the program\n\r", &cmd_about}, - {"alias", " Allows the user view the current aliases\n\r", &cmd_alias}, - {"ccpuid"," Displays CPU information\n\r", &cmd_ccpuid}, - {"cd", " Changes directories\n\r", &cmd_cd}, - {"clear", " Clears the display\n\r", &cmd_clear}, - {"date", " Returns the date and time\n\r", &cmd_date}, - {"echo", " Echoes the data to the screen\n\r", &cmd_echo}, - {"exit", " Exits program\n\r", &cmd_exit}, - {"free", " Displays total, free and used memory\n\r", &cmd_free}, - {"help", " Gives help\n\r", &cmd_help}, - {"kill", " Stops a running process\n\r", &cmd_kill}, - {"ls", " Lists the files in a directory\n\r", &cmd_ls}, - {"mkdir", " Makes directory\n\r", &cmd_mkdir}, - {"more", " Displays a data file to the screen\n\r", &cmd_more}, - {"ps", " Lists the current processes running\n\r", &cmd_ps}, - {"pwd", " Displays the name of the working directory\n\r", &cmd_pwd}, - {"reboot"," Reboots the computer\n\r", &cmd_reboot}, - {"rm", " Removes files\n\r", &cmd_rm}, - {"rmdir", " Removes directories\n\r", &cmd_rmdir}, - {"sleep", " Stops the shell for the desired period\n\r", &cmd_sleep}, - {"touch", " Creates an empty file or updates the time/date stamp on a file\n\r", &cmd_touch}, - {"ver", " Displays version\n\r", &cmd_ver}, -}; +#if LANG_ENG + #include "locale/eng/globals.h" +#elif LANG_RUS + #include "locale/rus/globals.h" +#endif /// =========================================================== diff --git a/programs/system/shell/bin/.shell b/programs/system/shell/locale/eng/.shell similarity index 100% rename from programs/system/shell/bin/.shell rename to programs/system/shell/locale/eng/.shell diff --git a/programs/system/shell/locale/eng/globals.h b/programs/system/shell/locale/eng/globals.h new file mode 100644 index 0000000000..08524e153b --- /dev/null +++ b/programs/system/shell/locale/eng/globals.h @@ -0,0 +1,28 @@ +const command_t COMMANDS[]= +{ + {"about", " Displays information about Shell\n\r", &cmd_about}, + {"alias", " Allows the user view the current aliases\n\r", &cmd_alias}, + {"ccpuid", " Displays CPU information\n\r", &cmd_ccpuid}, + {"cd", " Changes current directory. Usage:\n\r cd \n\r", &cmd_cd}, + {"clear", " Clears the screen\n\r", &cmd_clear}, + {"date", " Returns the current date and time\n\r", &cmd_date}, + {"echo", " Echoes the data to the screen. Usage:\n\r echo \n\r", &cmd_echo}, + {"exit", " Exits from Shell\n\r", &cmd_exit}, + {"memory", " Displays total, free and used memory\n\r", &cmd_memory}, + {"help", " Gives help on commands. Usage:\n\r help ;it lists all builtins\n\r help ;help on command\n\r", &cmd_help}, + {"kerver", " Displays the information about a version of KoOS kernel\n\r", &cmd_kerver}, + {"kill", " Stops a running process. Usage:\n\r kill \n\r", &cmd_kill}, + {"ls", " Lists the files in a directory. Usage:\n\r ls ;lists the files in current directory\n\r ls ;lists the files at specified folder\n\r", &cmd_ls}, + {"mkdir", " Makes directory. Usage:\n\r mkdir ;creates the folder in working directory\n\r mkdir ;create folder by specified path\n\r", &cmd_mkdir}, + {"more", " Displays a file data to the screen. Usage:\n\r more \n\r", &cmd_more}, + {"ps", " Lists the current processes running\n\r", &cmd_ps}, + {"pwd", " Displays the name of the working directory\n\r", &cmd_pwd}, + {"reboot", " Reboots the computer or KoOS kernel. Usage:\n\r reboot ;reboot a PC\n\r reboot kernel ;reboot the KoOS kernel\n\r", &cmd_reboot}, + {"rm", " Removes a file. Usage:\n\r rm file name>\n\r", &cmd_rm}, + {"rmdir", " Removes a folder. Usage:\n\r rmdir \n\r", &cmd_rmdir}, + {"sleep", " Stops the shell for the desired period. Usage:\n\r sleep