forked from Bananymous/banan-os
				
			Userspace: Start work on shell
This commit is contained in:
		
							parent
							
								
									1658e925f2
								
							
						
					
					
						commit
						27147790fd
					
				| 
						 | 
					@ -180,7 +180,7 @@ static void init2(void* tty1)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	((TTY*)tty1)->initialize_device();
 | 
						((TTY*)tty1)->initialize_device();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	MUST(Process::create_userspace("/usr/bin/cat"sv));
 | 
						MUST(Process::create_userspace("/usr/bin/Shell"sv));
 | 
				
			||||||
	return;
 | 
						return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	Process::create_kernel(
 | 
						Process::create_kernel(
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -3,6 +3,7 @@ cmake_minimum_required(VERSION 3.26)
 | 
				
			||||||
project(userspace CXX)
 | 
					project(userspace CXX)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
set(USERSPACE_PROJECTS
 | 
					set(USERSPACE_PROJECTS
 | 
				
			||||||
 | 
						Shell
 | 
				
			||||||
	cat
 | 
						cat
 | 
				
			||||||
	test
 | 
						test
 | 
				
			||||||
	yes
 | 
						yes
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,18 @@
 | 
				
			||||||
 | 
					cmake_minimum_required(VERSION 3.26)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					project(Shell CXX)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					set(SOURCES
 | 
				
			||||||
 | 
						main.cpp
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					add_executable(Shell ${SOURCES})
 | 
				
			||||||
 | 
					target_compile_options(Shell PUBLIC -O2 -g)
 | 
				
			||||||
 | 
					add_dependencies(Shell libc-install)
 | 
				
			||||||
 | 
					target_link_options(Shell PUBLIC -nodefaultlibs)
 | 
				
			||||||
 | 
					target_link_libraries(Shell PUBLIC ${BANAN_LIB}/libc.a)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					add_custom_target(Shell-install
 | 
				
			||||||
 | 
						COMMAND cp ${CMAKE_CURRENT_BINARY_DIR}/Shell ${BANAN_BIN}/
 | 
				
			||||||
 | 
						DEPENDS Shell
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,27 @@
 | 
				
			||||||
 | 
					#include <stdio.h>
 | 
				
			||||||
 | 
					#include <termios.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct termios old_termios, new_termios;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int main(int argc, char** argv)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						for (int i = 0; i < argc; i++)
 | 
				
			||||||
 | 
							printf("%s\n", argv[i]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						tcgetattr(0, &old_termios);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						new_termios = old_termios;
 | 
				
			||||||
 | 
						new_termios.c_lflag &= ~(ECHO | ICANON);
 | 
				
			||||||
 | 
						tcsetattr(0, TCSANOW, &new_termios);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						while (true)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							char c;
 | 
				
			||||||
 | 
							fread(&c, 1, sizeof(char), stdin);
 | 
				
			||||||
 | 
							fputc(c, stdout);
 | 
				
			||||||
 | 
							fflush(stdout);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						tcsetattr(0, TCSANOW, &old_termios);
 | 
				
			||||||
 | 
						return 0;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -21,10 +21,6 @@ int main(int argc, char** argv)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	int ret = 0;
 | 
						int ret = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	printf("argc %d, argv %p\n", argc, argv);
 | 
					 | 
				
			||||||
	for (int i = 0; i < argc; i++)
 | 
					 | 
				
			||||||
		printf("%s\n", argv[i]);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if (argc > 1)
 | 
						if (argc > 1)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		for (int i = 1; i < argc; i++)
 | 
							for (int i = 1; i < argc; i++)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue