diff --git a/.gitignore b/.gitignore index c116b92..d4713a9 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,19 @@ erl_crash.dump config.exs /data + +# Configs +config/*.exs + +# Static artifacts +/node_modules +/bower_components + +# Since we are building js and css from web/static, +# we ignore priv/static/{css,js}. You may want to +# comment this depending on your deployment strategy. +/priv/static/ + +# Custom templates should be ignored +/web/templates/custom/ + diff --git a/apps/mebe_engine/.gitignore b/apps/mebe_engine/.gitignore deleted file mode 100644 index 9607671..0000000 --- a/apps/mebe_engine/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -/_build -/deps -erl_crash.dump -*.ez diff --git a/apps/mebe_engine/README.md b/apps/mebe_engine/README.md deleted file mode 100644 index cf50361..0000000 --- a/apps/mebe_engine/README.md +++ /dev/null @@ -1,4 +0,0 @@ -MebeEngine -========== - -** TODO: Add description ** diff --git a/apps/mebe_engine/config/config.exs.dist b/apps/mebe_engine/config/config.exs.dist deleted file mode 100644 index 4dc3fb5..0000000 --- a/apps/mebe_engine/config/config.exs.dist +++ /dev/null @@ -1,29 +0,0 @@ -# This file is responsible for configuring your application -# and its dependencies with the aid of the Mix.Config module. -use Mix.Config - -# This configuration is loaded before any dependency and is restricted -# to this project. If another project depends on this project, this -# file won't be loaded nor affect the parent project. For this reason, -# if you want to provide default values for your application for third- -# party users, it should be done in your mix.exs file. - -# Sample configuration: -# -# config :logger, :console, -# level: :info, -# format: "$date $time [$level] $metadata$message\n", -# metadata: [:user_id] - -# It is also possible to import configuration files, relative to this -# directory. For example, you can emulate configuration per environment -# by uncommenting the line below and defining dev.exs, test.exs and such. -# Configuration from the imported file will override the ones defined -# here (which is why it is important to import them last). -# -# import_config "#{Mix.env}.exs" - -config :mebe_engine, - - # The path to crawl post and page data from. No trailing slash, use an absolute path. - data_path: "/path/to/data" diff --git a/apps/mebe_engine/lib/mebe_engine.ex b/apps/mebe_engine/lib/mebe_engine.ex deleted file mode 100644 index b0357e2..0000000 --- a/apps/mebe_engine/lib/mebe_engine.ex +++ /dev/null @@ -1,20 +0,0 @@ -defmodule MebeEngine do - use Application - - def worker_name, do: :mebe_db_worker - - # See http://elixir-lang.org/docs/stable/elixir/Application.html - # for more information on OTP Applications - def start(_type, _args) do - import Supervisor.Spec, warn: false - - children = [ - worker(MebeEngine.Worker, [[name: worker_name]]) - ] - - # See http://elixir-lang.org/docs/stable/elixir/Supervisor.html - # for other strategies and supported options - opts = [strategy: :one_for_one, name: MebeEngine.Supervisor] - Supervisor.start_link(children, opts) - end -end diff --git a/apps/mebe_engine/mix.exs b/apps/mebe_engine/mix.exs deleted file mode 100644 index 7595293..0000000 --- a/apps/mebe_engine/mix.exs +++ /dev/null @@ -1,41 +0,0 @@ -defmodule MebeEngine.Mixfile do - use Mix.Project - - def project do - [app: :mebe_engine, - version: "0.0.1", - deps_path: "../../deps", - lockfile: "../../mix.lock", - elixir: "~> 1.1.0", - build_embedded: Mix.env == :prod, - start_permanent: Mix.env == :prod, - deps: deps] - end - - # Configuration for the OTP application - # - # Type `mix help compile.app` for more information - def application do - [applications: [:logger], - mod: {MebeEngine, []}] - end - - # Dependencies can be Hex packages: - # - # {:mydep, "~> 0.3.0"} - # - # Or git/path repositories: - # - # {:mydep, git: "https://github.com/elixir-lang/mydep.git", tag: "0.1.0"} - # - # To depend on another app inside the umbrella: - # - # {:myapp, in_umbrella: true} - # - # Type `mix help deps` for more examples and options - defp deps do - [ - {:earmark, "~> 0.1.16"} - ] - end -end diff --git a/apps/mebe_engine/test/mebe_engine_test.exs b/apps/mebe_engine/test/mebe_engine_test.exs deleted file mode 100644 index 0f50423..0000000 --- a/apps/mebe_engine/test/mebe_engine_test.exs +++ /dev/null @@ -1,7 +0,0 @@ -defmodule MebeEngineTest do - use ExUnit.Case - - test "the truth" do - assert 1 + 1 == 2 - end -end diff --git a/apps/mebe_engine/test/test_helper.exs b/apps/mebe_engine/test/test_helper.exs deleted file mode 100644 index 869559e..0000000 --- a/apps/mebe_engine/test/test_helper.exs +++ /dev/null @@ -1 +0,0 @@ -ExUnit.start() diff --git a/apps/mebe_web/.bowerrc b/apps/mebe_web/.bowerrc deleted file mode 100644 index e69de29..0000000 diff --git a/apps/mebe_web/.gitignore b/apps/mebe_web/.gitignore deleted file mode 100644 index d10dd00..0000000 --- a/apps/mebe_web/.gitignore +++ /dev/null @@ -1,22 +0,0 @@ -# Mix artifacts -/_build -/deps -/*.ez - -# Generate on crash by the VM -erl_crash.dump - -# Configs -/config/*.exs - -# Static artifacts -/node_modules -/bower_components - -# Since we are building js and css from web/static, -# we ignore priv/static/{css,js}. You may want to -# comment this depending on your deployment strategy. -/priv/static/ - -# Custom templates should be ignored -/web/templates/custom/ diff --git a/apps/mebe_web/README.md b/apps/mebe_web/README.md deleted file mode 100644 index 30edca3..0000000 --- a/apps/mebe_web/README.md +++ /dev/null @@ -1,8 +0,0 @@ -# MebeWeb - -To start your new Phoenix application: - -1. Install dependencies with `mix deps.get` -2. Start Phoenix endpoint with `mix phoenix.server` - -Now you can visit `localhost:4000` from your browser. diff --git a/apps/mebe_web/mix.exs b/apps/mebe_web/mix.exs deleted file mode 100644 index d83220f..0000000 --- a/apps/mebe_web/mix.exs +++ /dev/null @@ -1,41 +0,0 @@ -defmodule MebeWeb.Mixfile do - use Mix.Project - - def project do - [app: :mebe_web, - version: "1.0.0", - deps_path: "../../deps", - lockfile: "../../mix.lock", - elixir: "~> 1.1.0", - elixirc_paths: elixirc_paths(Mix.env), - compilers: [:phoenix] ++ Mix.compilers, - build_embedded: Mix.env == :prod, - start_permanent: Mix.env == :prod, - deps: deps] - end - - # Configuration for the OTP application - # - # Type `mix help compile.app` for more information - def application do - [mod: {MebeWeb, []}, - applications: [:phoenix, :cowboy, :logger]] - end - - # Specifies which paths to compile per environment - defp elixirc_paths(:test), do: ["lib", "web", "test/support"] - defp elixirc_paths(_), do: ["lib", "web"] - - # Specifies your project dependencies - # - # Type `mix help deps` for examples and options - defp deps do - [ - {:phoenix, "~> 1.0"}, - {:phoenix_live_reload, "~> 1.0", only: :dev}, - {:phoenix_html, "~> 2.2"}, - {:cowboy, "~> 1.0"}, - {:mebe_engine, in_umbrella: true} - ] - end -end diff --git a/apps/mebe_web/web/templates/custom/README.md b/apps/mebe_web/web/templates/custom/README.md deleted file mode 100644 index 2e22f3b..0000000 --- a/apps/mebe_web/web/templates/custom/README.md +++ /dev/null @@ -1,7 +0,0 @@ -This directory is for your custom templates. Should you wish to use a custom template -for a view, copy the corresponding view's directory from the templates directory -and modify the files as you see fit. - -Note that if a view uses custom templates, each template must have a custom version. -This means you need to copy over every template file. Naturally you can just leave -the templates you do not want to modify untouched. diff --git a/apps/mebe_web/bower.json b/bower.json similarity index 100% rename from apps/mebe_web/bower.json rename to bower.json diff --git a/config/config.exs b/config/config.exs deleted file mode 100644 index fd9eb7e..0000000 --- a/config/config.exs +++ /dev/null @@ -1,40 +0,0 @@ -# This file is responsible for configuring your application -# and its dependencies with the aid of the Mix.Config module. -use Mix.Config - -# This configuration is loaded before any dependency and is restricted -# to this project. If another project depends on this project, this -# file won't be loaded nor affect the parent project. For this reason, -# if you want to provide default values for your application for third- -# party users, it should be done in your mix.exs file. - -# Sample configuration: -# -# config :logger, :console, -# level: :info, -# format: "$date $time [$level] $metadata$message\n", -# metadata: [:user_id] - -# It is also possible to import configuration files, relative to this -# directory. For example, you can emulate configuration per environment -# by uncommenting the line below and defining dev.exs, test.exs and such. -# Configuration from the imported file will override the ones defined -# here (which is why it is important to import them last). -# -# import_config "#{Mix.env}.exs" -# This file is responsible for configuring your application -# and its dependencies with the aid of the Mix.Config module. -use Mix.Config - -# The configuration defined here will only affect the dependencies -# in the apps directory when commands are executed from the umbrella -# project. For this reason, it is preferred to configure each child -# application directly and import its configuration, as done below. -import_config "../apps/*/config/config.exs" - -# Sample configuration (overrides the imported configuration above): -# -# config :logger, :console, -# level: :info, -# format: "$date $time [$level] $metadata$message\n", -# metadata: [:user_id] diff --git a/apps/mebe_web/config/config.exs.dist b/config/config.exs.dist similarity index 94% rename from apps/mebe_web/config/config.exs.dist rename to config/config.exs.dist index 2013533..aee05c5 100644 --- a/apps/mebe_web/config/config.exs.dist +++ b/config/config.exs.dist @@ -15,7 +15,10 @@ config :mebe_web, MebeWeb.Endpoint, adapter: Phoenix.PubSub.PG2] # Custom blog configs -config :mebe_web, +config :mebe_web,, + # The path to crawl post and page data from. No trailing slash, use an absolute path. + data_path: "/path/to/mebe/data", + blog_name: "My awesome blog", blog_author: "Author McAuthor", absolute_url: "http://localhost:4000", # Absolute URL to the site without trailing slash, including protocol diff --git a/apps/mebe_web/config/dev.exs.dist b/config/dev.exs.dist similarity index 100% rename from apps/mebe_web/config/dev.exs.dist rename to config/dev.exs.dist diff --git a/apps/mebe_web/config/prod.exs.dist b/config/prod.exs.dist similarity index 100% rename from apps/mebe_web/config/prod.exs.dist rename to config/prod.exs.dist diff --git a/apps/mebe_web/config/prod.secret.exs.dist b/config/prod.secret.exs.dist similarity index 100% rename from apps/mebe_web/config/prod.secret.exs.dist rename to config/prod.secret.exs.dist diff --git a/apps/mebe_web/config/test.exs.dist b/config/test.exs.dist similarity index 100% rename from apps/mebe_web/config/test.exs.dist rename to config/test.exs.dist diff --git a/apps/mebe_web/gulpfile.js b/gulpfile.js similarity index 100% rename from apps/mebe_web/gulpfile.js rename to gulpfile.js diff --git a/lib/mebe_engine.ex b/lib/mebe_engine.ex new file mode 100644 index 0000000..b56f053 --- /dev/null +++ b/lib/mebe_engine.ex @@ -0,0 +1,4 @@ +defmodule MebeEngine do + # Name of the database worker + def worker_name, do: :mebe_db_worker +end diff --git a/apps/mebe_engine/lib/crawler.ex b/lib/mebe_engine/crawler.ex similarity index 100% rename from apps/mebe_engine/lib/crawler.ex rename to lib/mebe_engine/crawler.ex diff --git a/apps/mebe_engine/lib/db.ex b/lib/mebe_engine/db.ex similarity index 100% rename from apps/mebe_engine/lib/db.ex rename to lib/mebe_engine/db.ex diff --git a/apps/mebe_engine/lib/models.ex b/lib/mebe_engine/models.ex similarity index 100% rename from apps/mebe_engine/lib/models.ex rename to lib/mebe_engine/models.ex diff --git a/apps/mebe_engine/lib/parser.ex b/lib/mebe_engine/parser.ex similarity index 100% rename from apps/mebe_engine/lib/parser.ex rename to lib/mebe_engine/parser.ex diff --git a/apps/mebe_engine/lib/worker.ex b/lib/mebe_engine/worker.ex similarity index 96% rename from apps/mebe_engine/lib/worker.ex rename to lib/mebe_engine/worker.ex index b0c64c9..edcb672 100644 --- a/apps/mebe_engine/lib/worker.ex +++ b/lib/mebe_engine/worker.ex @@ -8,7 +8,7 @@ defmodule MebeEngine.Worker do alias MebeEngine.Crawler alias MebeEngine.DB - @data_path Application.get_env(:mebe_engine, :data_path) + @data_path Application.get_env(:mebe_web, :data_path) def start_link(opts \\ []) do GenServer.start_link(__MODULE__, :ok, opts) diff --git a/apps/mebe_web/lib/mebe_web.ex b/lib/mebe_web.ex similarity index 87% rename from apps/mebe_web/lib/mebe_web.ex rename to lib/mebe_web.ex index ddc4aac..2641107 100644 --- a/apps/mebe_web/lib/mebe_web.ex +++ b/lib/mebe_web.ex @@ -7,8 +7,10 @@ defmodule MebeWeb do import Supervisor.Spec, warn: false children = [ + worker(MebeEngine.Worker, [[name: MebeEngine.worker_name]]), + # Start the endpoint when the application starts - supervisor(MebeWeb.Endpoint, []), + supervisor(MebeWeb.Endpoint, []) ] # See http://elixir-lang.org/docs/stable/elixir/Supervisor.html diff --git a/apps/mebe_web/lib/mebe_web/endpoint.ex b/lib/mebe_web/endpoint.ex similarity index 100% rename from apps/mebe_web/lib/mebe_web/endpoint.ex rename to lib/mebe_web/endpoint.ex diff --git a/apps/mebe_web/lib/plugs/request_start_time.ex b/lib/plugs/request_start_time.ex similarity index 100% rename from apps/mebe_web/lib/plugs/request_start_time.ex rename to lib/plugs/request_start_time.ex diff --git a/mix.exs b/mix.exs index f2fbc12..8b3d889 100644 --- a/mix.exs +++ b/mix.exs @@ -1,26 +1,41 @@ -defmodule Mebe.Mixfile do +defmodule MebeWeb.Mixfile do use Mix.Project def project do - [apps_path: "apps", + [app: :mebe_web, + version: "1.0.0", + deps_path: "../../deps", + lockfile: "../../mix.lock", + elixir: "~> 1.1.0", + elixirc_paths: elixirc_paths(Mix.env), + compilers: [:phoenix] ++ Mix.compilers, build_embedded: Mix.env == :prod, start_permanent: Mix.env == :prod, deps: deps] end - # Dependencies can be Hex packages: + # Configuration for the OTP application # - # {:mydep, "~> 0.3.0"} + # Type `mix help compile.app` for more information + def application do + [mod: {MebeWeb, []}, + applications: [:phoenix, :cowboy, :logger]] + end + + # Specifies which paths to compile per environment + defp elixirc_paths(:test), do: ["lib", "web", "test/support"] + defp elixirc_paths(_), do: ["lib", "web"] + + # Specifies your project dependencies # - # Or git/path repositories: - # - # {:mydep, git: "https://github.com/elixir-lang/mydep.git", tag: "0.1.0"} - # - # Type `mix help deps` for more examples and options. - # - # Dependencies listed here are available only for this project - # and cannot be accessed from applications inside the apps folder + # Type `mix help deps` for examples and options defp deps do - [] + [ + {:phoenix, "~> 1.0"}, + {:phoenix_live_reload, "~> 1.0", only: :dev}, + {:phoenix_html, "~> 2.2"}, + {:cowboy, "~> 1.0"}, + {:earmark, "~> 0.1.16"} + ] end end diff --git a/apps/mebe_web/package.json b/package.json similarity index 100% rename from apps/mebe_web/package.json rename to package.json diff --git a/apps/mebe_web/test/controllers/page_controller_test.exs b/test/controllers/page_controller_test.exs similarity index 100% rename from apps/mebe_web/test/controllers/page_controller_test.exs rename to test/controllers/page_controller_test.exs diff --git a/apps/mebe_web/test/support/conn_case.ex b/test/support/conn_case.ex similarity index 100% rename from apps/mebe_web/test/support/conn_case.ex rename to test/support/conn_case.ex diff --git a/apps/mebe_web/test/test_helper.exs b/test/test_helper.exs similarity index 100% rename from apps/mebe_web/test/test_helper.exs rename to test/test_helper.exs diff --git a/apps/mebe_web/web/controllers/controller_utils.ex b/web/controllers/controller_utils.ex similarity index 100% rename from apps/mebe_web/web/controllers/controller_utils.ex rename to web/controllers/controller_utils.ex diff --git a/apps/mebe_web/web/controllers/feed_controller.ex b/web/controllers/feed_controller.ex similarity index 100% rename from apps/mebe_web/web/controllers/feed_controller.ex rename to web/controllers/feed_controller.ex diff --git a/apps/mebe_web/web/controllers/page_controller.ex b/web/controllers/page_controller.ex similarity index 100% rename from apps/mebe_web/web/controllers/page_controller.ex rename to web/controllers/page_controller.ex diff --git a/apps/mebe_web/web/router.ex b/web/router.ex similarity index 100% rename from apps/mebe_web/web/router.ex rename to web/router.ex diff --git a/apps/mebe_web/web/static/css/_bootswatch.scss b/web/static/css/_bootswatch.scss similarity index 100% rename from apps/mebe_web/web/static/css/_bootswatch.scss rename to web/static/css/_bootswatch.scss diff --git a/apps/mebe_web/web/static/css/_variables.scss b/web/static/css/_variables.scss similarity index 100% rename from apps/mebe_web/web/static/css/_variables.scss rename to web/static/css/_variables.scss diff --git a/apps/mebe_web/web/static/css/app.scss b/web/static/css/app.scss similarity index 100% rename from apps/mebe_web/web/static/css/app.scss rename to web/static/css/app.scss diff --git a/apps/mebe_web/web/static/js/app.js b/web/static/js/app.js similarity index 100% rename from apps/mebe_web/web/static/js/app.js rename to web/static/js/app.js diff --git a/apps/mebe_web/web/static/js/old_hash_redirector.js b/web/static/js/old_hash_redirector.js similarity index 100% rename from apps/mebe_web/web/static/js/old_hash_redirector.js rename to web/static/js/old_hash_redirector.js diff --git a/apps/mebe_web/web/templates/error/not_found.html.eex b/web/templates/error/not_found.html.eex similarity index 100% rename from apps/mebe_web/web/templates/error/not_found.html.eex rename to web/templates/error/not_found.html.eex diff --git a/apps/mebe_web/web/templates/feed/postlist.xml.eex b/web/templates/feed/postlist.xml.eex similarity index 100% rename from apps/mebe_web/web/templates/feed/postlist.xml.eex rename to web/templates/feed/postlist.xml.eex diff --git a/apps/mebe_web/web/templates/layout/app.html.eex b/web/templates/layout/app.html.eex similarity index 100% rename from apps/mebe_web/web/templates/layout/app.html.eex rename to web/templates/layout/app.html.eex diff --git a/apps/mebe_web/web/templates/layout/feed.xml.eex b/web/templates/layout/feed.xml.eex similarity index 100% rename from apps/mebe_web/web/templates/layout/feed.xml.eex rename to web/templates/layout/feed.xml.eex diff --git a/apps/mebe_web/web/templates/page/index.html.eex b/web/templates/page/index.html.eex similarity index 100% rename from apps/mebe_web/web/templates/page/index.html.eex rename to web/templates/page/index.html.eex diff --git a/apps/mebe_web/web/templates/page/month.html.eex b/web/templates/page/month.html.eex similarity index 100% rename from apps/mebe_web/web/templates/page/month.html.eex rename to web/templates/page/month.html.eex diff --git a/apps/mebe_web/web/templates/page/page.html.eex b/web/templates/page/page.html.eex similarity index 100% rename from apps/mebe_web/web/templates/page/page.html.eex rename to web/templates/page/page.html.eex diff --git a/apps/mebe_web/web/templates/page/post.html.eex b/web/templates/page/post.html.eex similarity index 100% rename from apps/mebe_web/web/templates/page/post.html.eex rename to web/templates/page/post.html.eex diff --git a/apps/mebe_web/web/templates/page/post_elem.html.eex b/web/templates/page/post_elem.html.eex similarity index 100% rename from apps/mebe_web/web/templates/page/post_elem.html.eex rename to web/templates/page/post_elem.html.eex diff --git a/apps/mebe_web/web/templates/page/postlist.html.eex b/web/templates/page/postlist.html.eex similarity index 100% rename from apps/mebe_web/web/templates/page/postlist.html.eex rename to web/templates/page/postlist.html.eex diff --git a/apps/mebe_web/web/templates/page/tag.html.eex b/web/templates/page/tag.html.eex similarity index 100% rename from apps/mebe_web/web/templates/page/tag.html.eex rename to web/templates/page/tag.html.eex diff --git a/apps/mebe_web/web/templates/page/year.html.eex b/web/templates/page/year.html.eex similarity index 100% rename from apps/mebe_web/web/templates/page/year.html.eex rename to web/templates/page/year.html.eex diff --git a/apps/mebe_web/web/views/error_view.ex b/web/views/error_view.ex similarity index 100% rename from apps/mebe_web/web/views/error_view.ex rename to web/views/error_view.ex diff --git a/apps/mebe_web/web/views/feed_view.ex b/web/views/feed_view.ex similarity index 100% rename from apps/mebe_web/web/views/feed_view.ex rename to web/views/feed_view.ex diff --git a/apps/mebe_web/web/views/layout_view.ex b/web/views/layout_view.ex similarity index 100% rename from apps/mebe_web/web/views/layout_view.ex rename to web/views/layout_view.ex diff --git a/apps/mebe_web/web/views/page_view.ex b/web/views/page_view.ex similarity index 100% rename from apps/mebe_web/web/views/page_view.ex rename to web/views/page_view.ex diff --git a/apps/mebe_web/web/web.ex b/web/web.ex similarity index 100% rename from apps/mebe_web/web/web.ex rename to web/web.ex