commit 1e6a5fa8a9192f6f39ff1c59acbd57fdf649d49b Author: Adam Mohammed Date: Tue May 30 13:55:28 2023 -0400 initial commit diff --git a/.envrc b/.envrc new file mode 100644 index 0000000..6de8a8a --- /dev/null +++ b/.envrc @@ -0,0 +1,3 @@ +source_url "https://raw.githubusercontent.com/cachix/devenv/d1f7b48e35e6dee421cfd0f51481d17f77586997/direnvrc" "sha256-YBzqskFZxmNb3kYVoKD9ZixoPXJh1C9ZvTLGFRkauZ0=" + +use devenv \ No newline at end of file diff --git a/.formatter.exs b/.formatter.exs new file mode 100644 index 0000000..d2cda26 --- /dev/null +++ b/.formatter.exs @@ -0,0 +1,4 @@ +# Used by "mix format" +[ + inputs: ["{mix,.formatter}.exs", "{config,lib,test}/**/*.{ex,exs}"] +] diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..bbf1f3d --- /dev/null +++ b/.gitignore @@ -0,0 +1,31 @@ +# The directory Mix will write compiled artifacts to. +/_build/ + +# If you run "mix test --cover", coverage assets end up here. +/cover/ + +# The directory Mix downloads your dependencies sources to. +/deps/ + +# Where third-party dependencies like ExDoc output generated docs. +/doc/ + +# Ignore .fetch files in case you like to edit your project deps locally. +/.fetch + +# If the VM crashes, it generates a dump, let's ignore it too. +erl_crash.dump + +# Also ignore archive artifacts (built via "mix archive.build"). +*.ez + +# Ignore package tarball (built via "mix hex.build"). +resource_owner-*.tar + +# Temporary files, for example, from tests. +/tmp/ + + +# Devenv +.devenv* +devenv.local.nix diff --git a/README.md b/README.md new file mode 100644 index 0000000..cc9671f --- /dev/null +++ b/README.md @@ -0,0 +1,21 @@ +# ResourceOwner + +**TODO: Add description** + +## Installation + +If [available in Hex](https://hex.pm/docs/publish), the package can be installed +by adding `resource_owner` to your list of dependencies in `mix.exs`: + +```elixir +def deps do + [ + {:resource_owner, "~> 0.1.0"} + ] +end +``` + +Documentation can be generated with [ExDoc](https://github.com/elixir-lang/ex_doc) +and published on [HexDocs](https://hexdocs.pm). Once published, the docs can +be found at . + diff --git a/devenv.lock b/devenv.lock new file mode 100644 index 0000000..aa3b763 --- /dev/null +++ b/devenv.lock @@ -0,0 +1,138 @@ +{ + "nodes": { + "devenv": { + "locked": { + "dir": "src/modules", + "lastModified": 1685458650, + "narHash": "sha256-QbhHZ13NM5YjEOT9FxVP1mZON5OvZr80/BNKaVqoRRo=", + "owner": "cachix", + "repo": "devenv", + "rev": "8d6d129b666778538b76bcb069ab82f813094e5c", + "type": "github" + }, + "original": { + "dir": "src/modules", + "owner": "cachix", + "repo": "devenv", + "type": "github" + } + }, + "flake-compat": { + "flake": false, + "locked": { + "lastModified": 1673956053, + "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-utils": { + "locked": { + "lastModified": 1667395993, + "narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "gitignore": { + "inputs": { + "nixpkgs": [ + "pre-commit-hooks", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1660459072, + "narHash": "sha256-8DFJjXG8zqoONA1vXtgeKXy68KdJL5UaXR8NtVMUbx8=", + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "a20de23b925fd8264fd7fad6454652e142fd7f73", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "gitignore.nix", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1685399834, + "narHash": "sha256-Lt7//5snriXSdJo5hlVcDkpERL1piiih0UXIz1RUcC4=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "58c85835512b0db938600b6fe13cc3e3dc4b364e", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-stable": { + "locked": { + "lastModified": 1678872516, + "narHash": "sha256-/E1YwtMtFAu2KUQKV/1+KFuReYPANM2Rzehk84VxVoc=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "9b8e5abb18324c7fe9f07cb100c3cd4a29cda8b8", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-22.11", + "repo": "nixpkgs", + "type": "github" + } + }, + "pre-commit-hooks": { + "inputs": { + "flake-compat": "flake-compat", + "flake-utils": "flake-utils", + "gitignore": "gitignore", + "nixpkgs": [ + "nixpkgs" + ], + "nixpkgs-stable": "nixpkgs-stable" + }, + "locked": { + "lastModified": 1685361114, + "narHash": "sha256-4RjrlSb+OO+e1nzTExKW58o3WRwVGpXwj97iCta8aj4=", + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "rev": "ca2fdbf3edda2a38140184da6381d49f8206eaf4", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "type": "github" + } + }, + "root": { + "inputs": { + "devenv": "devenv", + "nixpkgs": "nixpkgs", + "pre-commit-hooks": "pre-commit-hooks" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/devenv.nix b/devenv.nix new file mode 100644 index 0000000..beed5fe --- /dev/null +++ b/devenv.nix @@ -0,0 +1,46 @@ +{ pkgs, lib, ... }: + +{ + # https://devenv.sh/packages/ + packages = [ + pkgs.bash + pkgs.elixir + pkgs.erlang + pkgs.postgresql + pkgs.hex + pkgs.rebar3 + ] ++ lib.optionals pkgs.stdenv.isLinux [ pkgs.inotify-tools pkgs.libnotify ]; + + + env = { + PGHOST = "localhost"; + PGPORT = "5432"; + PGUSER= "postgres"; + PGPASSWORD = "postgres"; + ERL_AFLAGS = "-kernel shell_history enabled"; + MIX_REBAR3 = "${pkgs.rebar3.outPath}/bin/rebar3"; + }; + + enterShell = '' + export MIX_HOME="$PWD/.nix-mix" + export HEX_HOME="$PWD/.nix-hex" + mkdir -p "$MIX_HOME" + mkdir -p "$HEX_HOME" + export ESBUILD_PATH=${pkgs.esbuild}/bin/esbuild + [[ "$PATH" =~ "$MIX_HOME/bin" ]] || export PATH="$MIX_HOME/bin:$PATH" + [[ "$PATH" =~ "$HEX_HOME/bin" ]] || export PATH="$HEX_HOME/bin:$PATH" + ''; + + + # https://devenv.sh/languages/ + languages.elixir.enable = true; + # languages.nix.enable = true; + + # https://devenv.sh/pre-commit-hooks/ + # pre-commit.hooks.shellcheck.enable = true; + + # https://devenv.sh/processes/ + # processes.ping.exec = "ping example.com"; + + # See full reference at https://devenv.sh/reference/options/ +} diff --git a/devenv.yaml b/devenv.yaml new file mode 100644 index 0000000..c7cb5ce --- /dev/null +++ b/devenv.yaml @@ -0,0 +1,3 @@ +inputs: + nixpkgs: + url: github:NixOS/nixpkgs/nixpkgs-unstable diff --git a/lib/resource_owner.ex b/lib/resource_owner.ex new file mode 100644 index 0000000..91280e0 --- /dev/null +++ b/lib/resource_owner.ex @@ -0,0 +1,18 @@ +defmodule ResourceOwner do + @moduledoc """ + Documentation for `ResourceOwner`. + """ + + @doc """ + Hello world. + + ## Examples + + iex> ResourceOwner.hello() + :world + + """ + def hello do + :world + end +end diff --git a/mix.exs b/mix.exs new file mode 100644 index 0000000..de85cab --- /dev/null +++ b/mix.exs @@ -0,0 +1,28 @@ +defmodule ResourceOwner.MixProject do + use Mix.Project + + def project do + [ + app: :resource_owner, + version: "0.1.0", + elixir: "~> 1.14", + start_permanent: Mix.env() == :prod, + deps: deps() + ] + end + + # Run "mix help compile.app" to learn about applications. + def application do + [ + extra_applications: [:logger] + ] + end + + # Run "mix help deps" to learn about dependencies. + defp deps do + [ + # {:dep_from_hexpm, "~> 0.3.0"}, + # {:dep_from_git, git: "https://github.com/elixir-lang/my_dep.git", tag: "0.1.0"} + ] + end +end diff --git a/test/resource_owner_test.exs b/test/resource_owner_test.exs new file mode 100644 index 0000000..630050c --- /dev/null +++ b/test/resource_owner_test.exs @@ -0,0 +1,8 @@ +defmodule ResourceOwnerTest do + use ExUnit.Case + doctest ResourceOwner + + test "greets the world" do + assert ResourceOwner.hello() == :world + end +end diff --git a/test/test_helper.exs b/test/test_helper.exs new file mode 100644 index 0000000..869559e --- /dev/null +++ b/test/test_helper.exs @@ -0,0 +1 @@ +ExUnit.start()