Online editor for MIST

Interactive IDE:

Execute!
(Use ctrl+Enter as execution shortcut)

Output results

Language Basics 3

  • print
    Print a text into screen
    print "hello"
    data MyData {
        ip
    }
    print "hello"
    print MyData.ip
    
    }
  • exec
    Execute a shell command
    exec "bash -c ls {hidden} -1 {filter}" {...}
    exec "bash -c ls {hidden} -1 {filter}" {
        input {
            filter = "*"
            hidden = "-a"
        }
        output {
            result
            resultCode
            consoleOutput
            consoleError
        }
        then {
            print resultCode
        }
    }
  • put
    Put information into information bucket
    put "hello" => myData
    data myHosts {
        Host
        Status
    }
    
    # ip is a variable form before executions
    put ip 'Up' => myHosts
    put ip 'Up' => myHosts(Host, Status)
    put 'Up' => myHosts(Status)
    
  • searchInJSON
    Search into JSON document by using JSON Path
    searchInJSON "[JSON PATH QUERY]" myData.JSONtext {...}
    
    data myData {
        JSONtext
    }
    
    put '''
    {
      "employees": [
        {
          "id": 1,
          "name": "Pankaj",
          "salary": "10000"
        },
        {
          "name": "David",
          "salary": "5000",
          "id": 2
        }
      ]
    }
    ''' => myData
    
    searchInJSON "employees[1].name" myData.JSONtext {
        output {
            result
            found
            value
        }
        then {
            print result
            print found
            print value
        }
    }
    
  • searchInText
    Search into Text by using Regex expression
    searchInText "[REGEX]" myData.text {...}
    data myData {
        text
    }
    
    put "Hello, my name is Peter and I like Mist!" => myData
    
    searchInText "Peter" myData.text {
        output {
            result
            found
        }
        then {
            check found is True {
                print "Peter found"
            }
        }
    }
    
  • searchInXML
    Search into XML document by using XPath
    searchInXML "[XPATH QUERY]" myData.XMLtext {...}
    
    data myData {
        XMLtext
    }
    
    put '''<?xml version="1.0" encoding="UTF-8"?>
    <bookstore>
        <book category="cooking">
            <title lang="en">Everyday Italian</title>
            <author>Giada De Laurentiis</author>
            <year>2005</year>
            <price>30.00</price>
        </book>
        <book category="children">
            <title lang="en">Harry Potter</title>
            <author>J K. Rowling</author>
            <year>2005</year>
            <price>29.99</price>
        </book>
    </bookstore>
    ''' => myData
    
    searchInXML "./book[2]/title" myData.XMLtext {
        output {
            result
            found
            value
        }
        then {
            print result
            print found
            print value
        }
    }
    
  • CSVPut
    Find open ports at some specific host
    CSVput "[FILE]" => [DATA STRUCTURE]
    data myHostsChecked {
        Host
        OpenPorts
    }
    
    CSVput "examples/myhosts.csv" => myHosts
    
  • CSVdump
    Write a data structure of the knowledge base into a CSV file
    CSVdump [DATA STRUCTURE] => "[FILE]"
    data myHostsChecked {
        Host
        OpenPorts
    }
    
    put "127.0.0.1" "21,22,8080" => myHostsChecked
    
    CSVdump myHostsChecked => "myHostsChecked.csv"
    

Commands Cheatsheet 3