diff --git a/.gitignore b/.gitignore index 4e1a91b..fe8d532 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ *.dwarf *.db .env.* +url-shortener diff --git a/README.md b/README.md index 3910786..1f05283 100644 --- a/README.md +++ b/README.md @@ -4,15 +4,28 @@ TODO: Write a description here ## Installation +```bash +brew tap amberframework/micrate +brew install micrate crystal +``` + TODO: Write installation instructions here ## Usage +```bash +crystal build url-shortener.cr --release --progress +ENV=production ./url-shortener +``` + TODO: Write usage instructions here ## Development -TODO: Write development instructions here +```bash +DATABASE_URL=sqlite3://./sqlite/data.db micrate up +crystal run url-shortener.cr +``` ## Contributing diff --git a/app/config/env.cr b/app/config/env.cr new file mode 100644 index 0000000..ba167e9 --- /dev/null +++ b/app/config/env.cr @@ -0,0 +1,6 @@ +ENV["ENV"] ||= "development" + +{% if env("ENV") != "production" %} + require "dotenv" + Dotenv.load ".env.#{ENV["ENV"]}" # File must exist in non-production! +{% end %} diff --git a/src/config/kemal.cr b/app/config/kemal.cr similarity index 100% rename from src/config/kemal.cr rename to app/config/kemal.cr diff --git a/src/controllers/link.cr b/app/controllers/link.cr similarity index 100% rename from src/controllers/link.cr rename to app/controllers/link.cr diff --git a/src/controllers/ping.cr b/app/controllers/ping.cr similarity index 100% rename from src/controllers/ping.cr rename to app/controllers/ping.cr diff --git a/src/lib/controller.cr b/app/lib/controller.cr similarity index 100% rename from src/lib/controller.cr rename to app/lib/controller.cr diff --git a/src/lib/database.cr b/app/lib/database.cr similarity index 100% rename from src/lib/database.cr rename to app/lib/database.cr diff --git a/src/lib/errors.cr b/app/lib/errors.cr similarity index 100% rename from src/lib/errors.cr rename to app/lib/errors.cr diff --git a/src/models/link.cr b/app/models/link.cr similarity index 100% rename from src/models/link.cr rename to app/models/link.cr diff --git a/src/routes.cr b/app/routes.cr similarity index 100% rename from src/routes.cr rename to app/routes.cr diff --git a/src/serializers/link.cr b/app/serializers/link.cr similarity index 100% rename from src/serializers/link.cr rename to app/serializers/link.cr diff --git a/src/version.cr b/app/version.cr similarity index 100% rename from src/version.cr rename to app/version.cr diff --git a/src/config/env.cr b/src/config/env.cr deleted file mode 100644 index 9b944b8..0000000 --- a/src/config/env.cr +++ /dev/null @@ -1,6 +0,0 @@ -ENV["APP_ENV"] ||= "development" - -{% if env("APP_ENV") != "production" %} - require "dotenv" - Dotenv.load ".env.#{ENV["APP_ENV"]}" # File must exist in non-production! -{% end %} diff --git a/src/url-shortener.cr b/url-shortener.cr similarity index 72% rename from src/url-shortener.cr rename to url-shortener.cr index 1ccdfef..eaf1604 100644 --- a/src/url-shortener.cr +++ b/url-shortener.cr @@ -1,11 +1,11 @@ require "kemal" -require "./config/*" -require "./lib/*" -require "./models/*" -require "./serializers/*" +require "./app/config/*" +require "./app/lib/*" +require "./app/models/*" +require "./app/serializers/*" -require "./routes" +require "./app/routes" error 500 { |env| {"status" => 500, "error" => "Internal Server Error"}.to_json } error 401 { |env| {"status" => 401, "error" => "Unauthorized"}.to_json }