Advertisement
Guest User

dlapiotrka2

a guest
Dec 20th, 2018
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.64 KB | None | 0 0
  1. /*
  2. * To change this license header, choose License Headers in Project Properties.
  3. * To change this template file, choose Tools | Templates
  4. * and open the template in the editor.
  5. */
  6. package interfejs_so;
  7.  
  8. import java.util.ArrayList;
  9. import java.util.Scanner;
  10. /**
  11. *
  12. * @author Konrad
  13. */
  14. public class Shell {
  15. Boolean system;
  16. Boolean session;
  17. String command;
  18. ArrayList<String> parts;
  19. String user;
  20. Shell()
  21. {
  22. system = false;
  23. session = false;
  24. command = null;
  25. parts = new ArrayList<>();
  26. user = null;
  27. }
  28. void system()
  29. {
  30. system=true;
  31. start();
  32. FileManagement filemanagement = new FileManagement();
  33. Process_container procmen = new Process_container();
  34. Scheduler scheduler = new Scheduler(procmen.get_by_PID(0));
  35. Memory memory = new Memory();
  36. while(system)
  37. {
  38.  
  39. login();
  40. while(session)
  41. {
  42. Scanner sc = new Scanner(System.in);
  43. System.out.print("bigOS:\\User>");
  44. command=sc.nextLine();
  45. for(int i=0;i<command.length();i++)
  46. {
  47. if((int)command.charAt(i)<=90&&(int)command.charAt(i)>=65)
  48. {
  49. int help = (int)command.charAt(i);
  50. help=help+32;
  51. String newCommand = command.substring(0,i)+(char)help+command.substring(i+1);
  52. command=newCommand;
  53. }
  54. }
  55. cut();
  56. execute(procmen, filemanagement);
  57. }
  58. }
  59. }
  60. void cut()
  61. {
  62. parts.clear();
  63. String help="";
  64. for(int i=0;i<command.length();i++)
  65. {
  66. if(command.charAt(i)!=' ')
  67. {
  68. help=help+command.charAt(i);
  69. }
  70. else
  71. {
  72. parts.add(help);
  73. help="";
  74. }
  75. if(i==command.length()-1)
  76. {
  77. parts.add(help);
  78. }
  79.  
  80. }
  81.  
  82. }
  83. void start()
  84. {
  85. System.out.println("Tu jest logo bigOS");
  86. }
  87. void login()
  88. {
  89. while(true)
  90. {
  91. Scanner sc = new Scanner(System.in);
  92. System.out.printf("User: ");
  93. user = sc.nextLine();
  94. System.out.printf("Password: ");
  95. String password = sc.nextLine();
  96. // Zabezpieczeniowiec sprawdza poprawnosc i laczy
  97. // Jezeli polaczyl jest return i session=true
  98. // Jezeli nie, pytanie czy chce zakonczyc prace systemu
  99. session=true;
  100. return;
  101. }
  102. }
  103. void execute(Process_container procmen, FileManagement filemanagement)
  104. {
  105. switch(parts.get(0))
  106. {
  107.  
  108. case "help":
  109. {
  110. if(parts.size()==1)
  111. System.out.println("help");
  112. else
  113. System.out.println("dir, shutdown, cp, cf, wf, df, tasklist, type");
  114. break;
  115. }
  116. case "dir":
  117. {
  118. if(parts.size()==1)
  119. // Zabezpieczeniowiec sprawdza
  120. filemanagement.readall();
  121. else
  122. System.out.println("Bledne argumenty");
  123. break;
  124. }
  125. case "shutdown":
  126. {
  127. if(parts.size()==1)
  128. {
  129. session=false;
  130. system = false;
  131. }
  132. else if(parts.size()==2 && parts.get(1).equals("-l"))
  133. session=false;
  134. else
  135. System.out.println("Bledne argumenty");
  136. break;
  137. }
  138. case "df":
  139. {
  140. if(parts.size()==2)
  141. {
  142. // Zabezpieczeniowiec -> sprawdza
  143. int blad = filemanagement.delete(parts.get(1));
  144. if(blad==0)
  145. System.out.println("Usunieto "+parts.get(1));
  146. else
  147. {
  148. System.out.println("Blad "+blad);
  149. }
  150.  
  151. }
  152. else
  153. System.out.println("Bledne argumenty");
  154.  
  155. break;
  156. }
  157. case "cf":
  158. {
  159. if(parts.size()==2)
  160. {
  161.  
  162. int blad = filemanagement.create(parts.get(1),user);
  163. if(blad==0)
  164. {
  165. System.out.println("Stworzono "+parts.get(1));
  166. // Zabezpieczeniowiec wpisuje
  167. }
  168. else
  169. {
  170. System.out.println("Blad "+blad);
  171. }
  172.  
  173. }
  174. else
  175. System.out.println("Bledne argumenty");
  176.  
  177. break;
  178. }
  179. case "wf":
  180. {
  181. if(parts.size()>2)
  182. {
  183. String buffor="";
  184. for(int i=2;i<parts.size();i++)
  185. buffor=buffor+parts.get(i);
  186. // Zabezpieczeniowiec sprawdza czy mozna wpisac
  187. int blad = filemanagement.write(parts.get(1),buffor);
  188. if(blad==0)
  189. {
  190. System.out.println("Dopisano "+buffor);
  191.  
  192. }
  193. else
  194. {
  195. System.out.println("Blad "+blad);
  196. }
  197.  
  198. }
  199. else
  200. System.out.println("Bledne argumenty");
  201. break;
  202. }
  203. case "tasklist":
  204. {
  205. if(parts.size()==1)
  206. {
  207. System.out.println("Wyswietla procesy");
  208. procmen.show_all_processes();
  209. }
  210. else
  211. System.out.println("Bledne argumenty");
  212. break;
  213. }
  214. case "cp":
  215. {
  216. if(parts.size()==4)
  217. {
  218. for(int i=0;i<parts.get(3).length();i++)
  219. if(Character.isDigit(parts.get(3).charAt(i)));
  220. else
  221. {
  222. System.out.println("Bledne argumenty");
  223. }
  224. procmen.create_process(parts.get(1),parts.get(2),Integer.parseInt(parts.get(3)));
  225. System.out.println("Tworze proces");
  226. }
  227. else if(parts.size()==5)
  228. {
  229. for(int i=0;i<parts.get(3).length();i++)
  230. if(Character.isDigit(parts.get(3).charAt(i)));
  231. else
  232. {
  233. System.out.println("Bledne argumenty");
  234. }
  235. for(int i=0;i<parts.get(4).length();i++)
  236. if(Character.isDigit(parts.get(4).charAt(i)));
  237. else
  238. {
  239. System.out.println("Bledne argumenty");
  240. }
  241. procmen.create_process(parts.get(1),parts.get(2),Integer.parseInt(parts.get(3)),Integer.parseInt(parts.get(4)));
  242. System.out.println("Tworze proces");
  243. }
  244. else
  245. System.out.println("Bledne argumenty");
  246. break;
  247. }
  248. case "type":
  249. {
  250. if(parts.size()==2)
  251. {
  252. //Wypisanie zawartosci pliku parts[2]
  253. }
  254. else if(parts.size()==4)
  255. {
  256. if((int)parts.get(2).charAt(0)==62)
  257. if(parts.get(2).length()== 2)
  258. {
  259. if((int)parts.get(2).charAt(1)==62)
  260. {
  261. // utworzenie nowego pliku parts[4] z zawartoscia pliku parts[2]
  262. }
  263. else
  264. System.out.println("Bledne argumenty");
  265. }
  266. else if (parts.get(2).length()==1)
  267. {
  268. // wpisanie zawartosci pliku parts[2] do istniejacego pliku parts[4]
  269. }
  270. else
  271. System.out.println("Bledne argumenty");
  272. else {
  273. System.out.println("Bledne argumenty");
  274. }
  275. }
  276. else
  277. {
  278. System.out.println("Bledne argumenty");
  279. }
  280. break;
  281. }
  282. case "net":
  283. {
  284. if(parts.size()>1)
  285. {
  286.  
  287. if("user".equals(parts.get(1)))
  288. {
  289. if(parts.size()==3)
  290. {
  291. //Wypisanie info o uzytkowniku parts[2]
  292. }
  293. else if(parts.size()==4)
  294. {
  295. if("/delete".equals(parts.get(3)))
  296. {
  297. //usuwa uzytkownika parts[2]
  298. }
  299. else
  300. {
  301. System.out.println("Bledne argumenty");
  302. }
  303. }
  304. else if(parts.size()==5)
  305. {
  306. if("/add".equals(parts.get(4)))
  307. {
  308. //Dodaje uzytkownika o nazwie parts[2] i hasle parts[3]
  309. }
  310. else
  311. {
  312. System.out.println("Bledne argumenty");
  313. }
  314. }
  315. else
  316. {
  317. System.out.println("Bledne argumenty");
  318. }
  319.  
  320. }
  321. else
  322. {
  323. System.out.println("Bledne argumenty");
  324. }
  325. }
  326. else
  327. {
  328.  
  329. }
  330. break;
  331. }
  332. default:
  333. {
  334.  
  335. System.out.println("'"+command+ "' jest nieznana komenda.");
  336. break;
  337. }
  338. }
  339.  
  340. }
  341.  
  342.  
  343.  
  344. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement