'  
'   Rebex Sample Code License
' 
'   Copyright 2025, REBEX CR s.r.o.
'   All rights reserved.
'   https://www.rebex.net/
' 
'   Permission to use, copy, modify, and/or distribute this software for any
'   purpose with or without fee is hereby granted.
' 
'   THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
'   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
'   OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
'   NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
'   HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
'   WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
'   FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
'   OTHER DEALINGS IN THE SOFTWARE.
' 

Imports Rebex.TerminalEmulation
Imports System.Collections.Generic
Imports System.ComponentModel
Imports System.Text
Imports System.Windows.Forms

Namespace Scripts
    <Description("04: Matching events")> _
    Public Class MatchingEvents
        Public Shared Sub Execute(scripting As Scripting)
            ' detect remote shell's prompt
            scripting.DetectPrompt()

            ' send 'ls -l' command to display a list of files and directories
            scripting.SendCommand("ls -l")

            ' process the response line-by-line until the prompt is encountered

            Dim lines As Integer = 0
            Dim match As ScriptMatch
            Do
                match = scripting.WaitFor(ScriptEvent.Line Or ScriptEvent.Prompt)

                        ' process the line
                        'Process(line);
                If Not match.IsPrompt Then
                End If

                Dim line As String = scripting.ReceivedData


                lines += 1
            Loop While Not match.IsPrompt

            MessageBox.Show("Received " & lines & " lines.")

            ' end of script
        End Sub

    End Class
End Namespace
