Packages

fnord

0.5.0

AI code archaeology

Current section

Files

Jump to
fnord lib store.ex
Raw

lib/store.ex

defmodule Store do
require Logger
@non_project_paths MapSet.new([
"prompts"
])
def store_home() do
home = Settings.home()
File.mkdir_p!(home)
home
end
def get_project(nil), do: get_project()
def get_project(project_name) do
home = store_home()
store_path = Path.join(home, project_name)
Store.Project.new(project_name, store_path)
end
def get_project() do
project = Settings.get_selected_project!()
get_project(project)
end
def list_projects() do
home = Settings.home()
home
|> Path.join("*")
|> Path.wildcard()
|> Enum.filter(&File.dir?/1)
|> Enum.map(&Path.basename/1)
|> Enum.reject(&MapSet.member?(@non_project_paths, &1))
|> Enum.map(&Store.Project.new(&1, home))
end
def list_conversations() do
get_project()
|> Store.Project.conversations()
end
end