Added directory-surfing to Terminal.

Added cd, ls/dir, and mkdir commands to the Terminal.
This commit is contained in:
TheUltimateHacker 2015-05-17 11:47:42 -04:00
parent 26e89066d4
commit ac564b6e77
10 changed files with 94 additions and 11 deletions

View file

@ -1,11 +1,12 @@
Public Class Terminal Public Class Terminal
Public currentdir As String = root
Dim trackpos As Integer = 0 Dim trackpos As Integer = 0
Public Sub terminal_Innitiate(sender As Object, e As EventArgs) Handles MyBase.Load Public Sub terminal_Innitiate(sender As Object, e As EventArgs) Handles MyBase.Load
Me.FormBorderStyle = Windows.Forms.FormBorderStyle.None Me.FormBorderStyle = Windows.Forms.FormBorderStyle.None
Me.WindowState = FormWindowState.Maximized Me.WindowState = FormWindowState.Maximized
AddLine("user@shiftos ~$> ") AddLine("user@shiftos " & currentdir.ToLower.Replace("c:\shiftos", "~") & "$> ")
SelectBottom() SelectBottom()
End Sub End Sub
@ -17,12 +18,49 @@
command = command.ToLower command = command.ToLower
If command Like "help" Then If command Like "help" Then
ShowHelp() ShowHelp()
ElseIf command Like "cd *" Then
Dim folder As String = command.Replace("cd ", "")
If folder = ".." Then
If currentdir.ToLower = "c:\shiftos" Then
AddLine("cd: Error! You are at the root of your drive.")
Else
currentdir = IO.Directory.GetParent(currentdir).ToString
End If
Else
If IO.Directory.Exists(currentdir + "\" + folder) Then
currentdir = currentdir & "\" & folder
ElseIf IO.Directory.Exists(folder) Then
currentdir = folder
Else
AddLine("cd: Directory """ & folder & """ doesn't exist.")
End If
End If
ElseIf command = "dir" Or command = "ls" Then
AddLine("Type | Name ")
AddLine("-------+-------------------------------------------")
For Each Dir As String In IO.Directory.GetDirectories(currentdir)
Dim dirinf As New IO.DirectoryInfo(Dir)
AddLine("[DIR] | " & dirinf.Name)
Next
For Each file As String In IO.Directory.GetFiles(currentdir)
Dim filinf As New IO.FileInfo(file)
AddLine(filinf.Extension & " | " & filinf.Name)
Next
ElseIf command Like "mkdir *" Then
Dim foldertomake As String = command.Replace("mkdir ", "")
If IO.Directory.Exists(currentdir + "\" + foldertomake) Then
AddLine("Directory already exists!")
Else
IO.Directory.CreateDirectory(currentdir + "\" + foldertomake)
AddLine("mkdir: Directory created successfully.")
End If
ElseIf command Like "shutdown" Then ElseIf command Like "shutdown" Then
Me.Close() Me.Close()
ElseIf command Like "" Then ElseIf command Like "" Then
'This is here to make it so that the Terminal doesn't say "Wrong Command" if the user doesn't input anything. 'This is here to make it so that the Terminal doesn't say "Wrong Command" if the user doesn't input anything.
Else Else
AddLine("Invalid command! Type ""help"" for a list of commands.") AddLine("Invalid command! Type ""help"" for a list of commands.")
End If End If
End Sub End Sub
@ -35,6 +73,9 @@
AddLine(" - Terminal commands are case-insensitive.") AddLine(" - Terminal commands are case-insensitive.")
AddLine(" - The screen can only display Black and White." & vbNewLine) AddLine(" - The screen can only display Black and White." & vbNewLine)
AddLine("Commands: " & vbNewLine) AddLine("Commands: " & vbNewLine)
AddLine(" - cd: Change to the specified directory.")
AddLine(" - mkdir: Create a directory inside the current directory (marked before the %)")
AddLine(" - ls, dir: View the contents of the current directory.")
AddLine(" - shutdown: Shuts the system down.") AddLine(" - shutdown: Shuts the system down.")
AddLine(" - help: Shows this screen.") AddLine(" - help: Shows this screen.")
@ -109,25 +150,25 @@
If e.KeyCode = Keys.Enter Then If e.KeyCode = Keys.Enter Then
e.SuppressKeyPress = True e.SuppressKeyPress = True
Dim command As String = txtterm.Lines(txtterm.Lines.Length - 1).Replace("user@shiftos ~$> ", "").ToLower Dim command As String = txtterm.Lines(txtterm.Lines.Length - 1).Replace("user@shiftos " & currentdir.ToLower.Replace("c:\shiftos", "~") & "$> ", "").ToLower
Interpret(command) Interpret(command)
If command = "clear" Then If command = "clear" Then
txtterm.Text = "user@shiftos ~$> " txtterm.Text = "user@shiftos " & currentdir.ToLower.Replace("c:\shiftos", "~") & "$> "
txtterm.Select(txtterm.Text.Length, 0) txtterm.Select(txtterm.Text.Length, 0)
Else Else
AddLine("user@shiftos ~$> ") AddLine("user@shiftos " & currentdir.ToLower.Replace("c:\shiftos", "~") & "$> ")
txtterm.Select(txtterm.Text.Length, 0) txtterm.Select(txtterm.Text.Length, 0)
End If End If
trackpos = 0 trackpos = 0
Else
If e.KeyCode = Keys.Back Then
Else Else
trackpos = trackpos + 1 If e.KeyCode = Keys.Back Then
Else
trackpos = trackpos + 1
End If
End If End If
End If
If e.KeyCode = Keys.Back Then If e.KeyCode = Keys.Back Then
If trackpos < 1 Then If trackpos < 1 Then

View file

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
<requestedExecutionLevel level="asInvoker" uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>

View file

@ -0,0 +1,19 @@
Module filesystem
'This module represents the folder structure of the ShiftFS Filesystem.
Public root As String = "C:\ShiftOS"
Public home As String = root + "\Home\" 'Inconsistent to fix terminal glitch.
Public documents As String = home + "Documents\"
Public pictures As String = home + "Pictures\"
Public music As String = home + "Music\"
Public systemdir As String = root + "Shiftum42\"
Public drivers As String = systemdir + "Drivers\"
Public save As String = drivers + "HDD.dri"
End Module

View file

@ -9,3 +9,14 @@ c:\users\the ultimate hacker\documents\github\ORION\project-orion\shiftos_next\s
c:\users\the ultimate hacker\documents\github\ORION\project-orion\shiftos_next\shiftos_next\obj\Debug\shiftos_next.exe c:\users\the ultimate hacker\documents\github\ORION\project-orion\shiftos_next\shiftos_next\obj\Debug\shiftos_next.exe
c:\users\the ultimate hacker\documents\github\ORION\project-orion\shiftos_next\shiftos_next\obj\Debug\shiftos_next.xml c:\users\the ultimate hacker\documents\github\ORION\project-orion\shiftos_next\shiftos_next\obj\Debug\shiftos_next.xml
c:\users\the ultimate hacker\documents\github\ORION\project-orion\shiftos_next\shiftos_next\obj\Debug\shiftos_next.pdb c:\users\the ultimate hacker\documents\github\ORION\project-orion\shiftos_next\shiftos_next\obj\Debug\shiftos_next.pdb
C:\Users\The Ultimate Hacker\Documents\shiftos-next\shiftos_next\bin\Debug\shiftos_next.exe.config
C:\Users\The Ultimate Hacker\Documents\shiftos-next\shiftos_next\obj\Debug\shiftos_next.exe
C:\Users\The Ultimate Hacker\Documents\shiftos-next\shiftos_next\obj\Debug\shiftos_next.xml
C:\Users\The Ultimate Hacker\Documents\shiftos-next\shiftos_next\obj\Debug\shiftos_next.pdb
C:\Users\The Ultimate Hacker\Documents\shiftos-next\shiftos_next\obj\Debug\shiftos_next.HijackScreen.resources
C:\Users\The Ultimate Hacker\Documents\shiftos-next\shiftos_next\obj\Debug\shiftos_next.Resources.resources
C:\Users\The Ultimate Hacker\Documents\shiftos-next\shiftos_next\obj\Debug\shiftos_next.Terminal.resources
C:\Users\The Ultimate Hacker\Documents\shiftos-next\shiftos_next\obj\Debug\shiftos_next.vbproj.GenerateResource.Cache
C:\Users\The Ultimate Hacker\Documents\shiftos-next\shiftos_next\bin\Debug\shiftos_next.exe
C:\Users\The Ultimate Hacker\Documents\shiftos-next\shiftos_next\bin\Debug\shiftos_next.pdb
C:\Users\The Ultimate Hacker\Documents\shiftos-next\shiftos_next\bin\Debug\shiftos_next.xml

View file

@ -70,6 +70,7 @@
<Import Include="System.Threading.Tasks" /> <Import Include="System.Threading.Tasks" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Compile Include="filesystem.vb" />
<Compile Include="Hijack.Designer.vb"> <Compile Include="Hijack.Designer.vb">
<DependentUpon>Hijack.vb</DependentUpon> <DependentUpon>Hijack.vb</DependentUpon>
</Compile> </Compile>