Here is my first ever program (Elixir or otherwise).
defmodule ShowTech do
#version 0.0.1
def search do
value = IO.gets """
What would you like to search for?
1. mac address
2. ip address
3. arp address
4. string
"""
response = String.first(value)
case response do
"1" -> search_mac
"2" -> search_ip
"3" -> search_arp
"4" -> search_str
end
end
def search_mac do
value = IO.gets "enter mac address: "
mac = String.strip(value)
case File.read("sh-tech.txt") do
{:ok, result} -> mac_addr(mac, result)
{:error, reason} -> IO.puts reason
end
end
def mac_addr(mac, result) do
IO.puts Regex.scan ~r{.*#{mac}.*}m, result
end
def search_ip do
value = IO.gets "enter ip address: "
ip = String.strip(value)
case File.read("sh-tech.txt") do
{:ok, result} -> ip_addr(ip, result)
{:error, reason} -> IO.puts reason
end
end
def ip_addr(ip, result) do
IO.puts Regex.scan ~r{.*#{ip}.*}m, result
end
def search_arp do
value = IO.gets "enter mac or ip address: "
arp = String.strip(value)
case File.read("sh-tech.txt") do
{:ok, result} -> arp_addr(arp, result)
{:error, reason} -> IO.puts reason
end
end
def arp_addr(arp, result) do
IO.puts Regex.scan ~r{.*#{arp}.*}m, result
end
def search_str do
value = IO.gets "enter string: "
string = String.strip(value)
case File.read("sh-tech.txt") do
{:ok, result} -> string(string, result)
{:error, reason} -> IO.puts reason
end
end
def string(string, result) do
IO.puts Regex.scan ~r{.*#{string}.*}m, result
end
end