Packages

password app

Retired package: test hex.pm package, useless

Current section

Files

Jump to
password_lock lib password_logger.ex
Raw

lib/password_logger.ex

defmodule PasswordLogger do
@moduledoc """
Documentation for PasswordLogger
logs password errors
"""
use GenServer
# -----------
# Client API
# -----------
@doc """
Initiate with given filename
"""
def start_link do
GenServer.start_link(__MODULE__, "tmp/password_logs", [])
end
@doc """
cast log message
"""
def log_incorrect(pid, msg) do
GenServer.cast(pid, {:log, msg})
end
# -----------
# Server API
# -----------
def init(logfile) do
{:ok, logfile}
end
def handle_cast({:log, msg}, filename) do
ensure_file(filename)
{:ok, file} = File.open(filename, [:append])
IO.binwrite(file, msg <> "\n")
File.close(file)
{:noreply, filename}
end
defp ensure_file(filename) do
File.exists?(filename) || File.touch(filename)
File.chmod!(filename, 0o755)
end
end