My first ever 'program'!

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

17 Likes

Congratulations and welcome!

10 Likes

Welcome aboard the programming train!

3 Likes