Closed elaine-jackson closed 5 years ago
looks like this is crashing: https://github.com/amberframework/amber/blob/master/src/amber/environment/loader.cr#L21
looks like this is crashing: https://github.com/amberframework/amber/blob/master/src/amber/environment/loader.cr#L21
Interesting. Amber crashes using the snap for Crystal "edge" and the snap for Crystal "stable"
root@panel-staging:~# amber -v
Invalid memory access (signal 11) at address 0x4
[0x55cd1feae736] *CallStack::print_backtrace:Int32 +118
[0x55cd1fe80d70] __crystal_sigfault_handler +192
[0x7f388d3a5730] ???
[0x55cd1feb4305] *String#to_slice:Slice(UInt8) +21
[0x55cd1feb42b8] *String#to_s<String::Builder>:Nil +24
[0x55cd1fed1311] *String::Builder +17
[0x55cd20097c6e] *Amber::Environment::Loader#yml_settings_file:String +62
[0x55cd20097be3] *Amber::Environment::Loader#settings_file_exist?:Bool +19
[0x55cd20097ba9] *Amber::Environment::Loader#initialize<String, String>:Nil +25
[0x55cd20097b80] *Amber::Environment::Loader::new<String, String>:Amber::Environment::Loader +112
[0x55cd200977a3] *Amber::CLI::settings:Amber::Environment::Settings +147
[0x55cd20097706] *Amber::CLI::logger:Amber::Environment::Logger +6
[0x55cd1fe6683a] __crystal_main +9754
[0x55cd20240626] *Crystal::main_user_code<Int32, Pointer(Pointer(UInt8))>:Nil +6
[0x55cd20240589] *Crystal::main<Int32, Pointer(Pointer(UInt8))>:Int32 +41
[0x55cd1fe788c6] main +6
[0x7f388cf7509b] __libc_start_main +235
[0x55cd1fe6415a] _start +42
[0x0] ???
root@panel-staging:~# crystal -v
Crystal 0.30.1 [5e6a1b672] (2019-08-12)
LLVM: 4.0.0
Default target: x86_64-unknown-linux-gnu
Any ideas on a fix?
Interesting to note that Crystal on macOS isn't affected by this bug and Amber works as expected.
╭─nathanielsuchy@Nathaniels-MacBook-Pro ~/Code/ulayer ‹master›
╰─$ crystal -v
Crystal 0.30.1 (2019-08-13)
LLVM: 8.0.1
Default target: x86_64-apple-macosx
╭─nathanielsuchy@Nathaniels-MacBook-Pro ~/Code/ulayer ‹master›
╰─$ amber watch
08:03:06 Watch run | (INFO) Building...
08:03:12 Watch run | (INFO) Compiled in 00:00:06.685964570
08:03:12 Watch npm | (INFO) Building...
[2019-08-14T20:03:12.705213000Z] main.INFO: Amber 0.30.0 serving application "Universial layer panel" at http://0.0.0.0:8080
[2019-08-14T20:03:12.705903000Z] main.INFO: Server started in development.
[2019-08-14T20:03:12.705940000Z] main.INFO: Startup Time 00:00:00.000739000
⸨ ░░░░░░░░░⸩ ⠧ prepare:ulayer: info lifecycle ulayer@0.1
Maybe this is an LLVM 4 bug?
I would dig into this deeper: @yml_settings ||= File.expand_path("#{@path}/#{@environment}.yml")
See if you can verify the @path
and @environment
variables are properly being set.
@yml_settings ||= File.expand_path("#{@path}/#{@environment}.yml")
Tried putting it into a script but unfortunately instance variables can't be accessed at the top level.
Information of interest:
root@panel-staging:~/ulayerpanel# crystal env
CRYSTAL_CACHE_DIR="/root/snap/crystal/common/.cache/crystal"
CRYSTAL_PATH="/snap/crystal/71/bin/../share/crystal/src:lib"
CRYSTAL_VERSION="0.30.1"
CRYSTAL_LIBRARY_PATH="/snap/crystal/71/bin/../lib/crystal/lib"
root@panel-staging:~/ulayerpanel# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin
Running the application through Crystal seems to work fine randomly:
root@panel-staging:~/ulayerpanel# crystal src/ulayer.cr --error-trace
[2019-08-14T20:14:48.514529000Z] main.INFO: Amber 0.30.0 serving application "Universial layer panel" at http://0.0.0.0:8080
[2019-08-14T20:14:48.514641000Z] main.INFO: Server started in development.
[2019-08-14T20:14:48.514656000Z] main.INFO: Startup Time 00:00:00.000132000
But if we go back to Amber
root@panel-staging:~/ulayerpanel# amber
Invalid memory access (signal 11) at address 0x4
[0x55e2ee2df736] *CallStack::print_backtrace:Int32 +118
[0x55e2ee2b1d70] __crystal_sigfault_handler +192
[0x7fefa2f42730] ???
[0x55e2ee2e5305] *String#to_slice:Slice(UInt8) +21
[0x55e2ee2e52b8] *String#to_s<String::Builder>:Nil +24
[0x55e2ee302311] *String::Builder +17
[0x55e2ee4c8c6e] *Amber::Environment::Loader#yml_settings_file:String +62
[0x55e2ee4c8be3] *Amber::Environment::Loader#settings_file_exist?:Bool +19
[0x55e2ee4c8ba9] *Amber::Environment::Loader#initialize<String, String>:Nil +25
[0x55e2ee4c8b80] *Amber::Environment::Loader::new<String, String>:Amber::Environment::Loader +112
[0x55e2ee4c87a3] *Amber::CLI::settings:Amber::Environment::Settings +147
[0x55e2ee4c8706] *Amber::CLI::logger:Amber::Environment::Logger +6
[0x55e2ee29783a] __crystal_main +9754
[0x55e2ee671626] *Crystal::main_user_code<Int32, Pointer(Pointer(UInt8))>:Nil +6
[0x55e2ee671589] *Crystal::main<Int32, Pointer(Pointer(UInt8))>:Int32 +41
[0x55e2ee2a98c6] main +6
[0x7fefa2b1209b] __libc_start_main +235
[0x55e2ee29515a] _start +42
[0x0] ???
But after removing the bins and reinstalling Amber
root@panel-staging:~/amber# amber -v
Invalid memory access (signal 11) at address 0x4
[0x55674b112736] *CallStack::print_backtrace:Int32 +118
[0x55674b0e4d70] __crystal_sigfault_handler +192
[0x7fb3ef5bb730] ???
[0x55674b118305] *String#to_slice:Slice(UInt8) +21
[0x55674b1182b8] *String#to_s<String::Builder>:Nil +24
[0x55674b135311] *String::Builder +17
[0x55674b2fbc6e] *Amber::Environment::Loader#yml_settings_file:String +62
[0x55674b2fbbe3] *Amber::Environment::Loader#settings_file_exist?:Bool +19
[0x55674b2fbba9] *Amber::Environment::Loader#initialize<String, String>:Nil +25
[0x55674b2fbb80] *Amber::Environment::Loader::new<String, String>:Amber::Environment::Loader +112
[0x55674b2fb7a3] *Amber::CLI::settings:Amber::Environment::Settings +147
[0x55674b2fb706] *Amber::CLI::logger:Amber::Environment::Logger +6
[0x55674b0ca83a] __crystal_main +9754
[0x55674b4a4626] *Crystal::main_user_code<Int32, Pointer(Pointer(UInt8))>:Nil +6
[0x55674b4a4589] *Crystal::main<Int32, Pointer(Pointer(UInt8))>:Int32 +41
[0x55674b0dc8c6] main +6
[0x7fb3ef18b09b] __libc_start_main +235
[0x55674b0c815a] _start +42
[0x0] ???
Still no luck here
Conclusion? Something is very wrong with how my Amber binary is built. But running my app as Crystal seems to be okay. So now onto how to fix Amber.
Last few changes
root@panel-staging:~/amber# git log
commit 621a073492d4259db6313547509b61d644c6fc24 (HEAD -> master, origin/master, origin/HEAD)
Author: Isaac Sloan <isaac@isaacsloan.com>
Date: Wed Aug 14 09:10:43 2019 -0700
updated crystal version to the version amber was just updated for (#1128)
commit 8c7f2affb64647299fb5f0caea8b30d533dc6117
Author: Dru Jensen <drujensen@gmail.com>
Date: Wed Aug 7 23:16:33 2019 -0700
Setting amber version lock back to master after release of v0.30.0
commit e39d6384caa2a4ef831183231fa906154aa1b9e1 (tag: v0.30.0, origin/stable)
Author: Dru Jensen <drujensen@gmail.com>
Date: Wed Aug 7 23:16:21 2019 -0700
Crystal 0.30.0 suppport
commit 1259f5843ecfa794f341b87045d6062a60a7eb93
Author: Dru Jensen <drujensen@gmail.com>
Date: Wed Aug 7 23:15:13 2019 -0700
Crystal v0.30.0 changes (#1126)
:
Okay so after a complete reinstall:
root@panel-staging:~# wget https://github.com/amberframework/amber/archive/v0.30.0.zip
--2019-08-14 20:30:16-- https://github.com/amberframework/amber/archive/v0.30.0.zip
Resolving github.com (github.com)... 140.82.114.4
Connecting to github.com (github.com)|140.82.114.4|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://codeload.github.com/amberframework/amber/zip/v0.30.0 [following]
--2019-08-14 20:30:16-- https://codeload.github.com/amberframework/amber/zip/v0.30.0
Resolving codeload.github.com (codeload.github.com)... 140.82.114.9
Connecting to codeload.github.com (codeload.github.com)|140.82.114.9|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [application/zip]
Saving to: ‘v0.30.0.zip’
v0.30.0.zip [ <=> ] 268.91K 622KB/s in 0.4s
2019-08-14 20:30:17 (622 KB/s) - ‘v0.30.0.zip’ saved [275367]
root@panel-staging:~# ls
snap ulayerpanel v0.30.0.zip
root@panel-staging:~# unzip v*.zip
Archive: v0.30.0.zip
e39d6384caa2a4ef831183231fa906154aa1b9e1
creating: amber-0.30.0/
extracting: amber-0.30.0/.crystal-version
creating: amber-0.30.0/.github/
inflating: amber-0.30.0/.github/AMBER_PHILOSOPHY.md
inflating: amber-0.30.0/.github/CODE_OF_CONDUCT.md
inflating: amber-0.30.0/.github/CONTRIBUTING.md
inflating: amber-0.30.0/.github/FUNDING.yml
inflating: amber-0.30.0/.github/PULL_REQUEST_TEMPLATE
inflating: amber-0.30.0/.github/issue_template.md
inflating: amber-0.30.0/.gitignore
inflating: amber-0.30.0/.gitmessage
inflating: amber-0.30.0/.travis.yml
inflating: amber-0.30.0/Backers.md
inflating: amber-0.30.0/Dockerfile
inflating: amber-0.30.0/LICENSE
inflating: amber-0.30.0/Makefile
inflating: amber-0.30.0/README.md
creating: amber-0.30.0/assets/
creating: amber-0.30.0/assets/js/
inflating: amber-0.30.0/assets/js/amber.js
inflating: amber-0.30.0/assets/js/amber.min.js
inflating: amber-0.30.0/assets/js/webpack.config.js
creating: amber-0.30.0/bin/
inflating: amber-0.30.0/bin/amber_spec
inflating: amber-0.30.0/docker-compose.yml
inflating: amber-0.30.0/package.json
inflating: amber-0.30.0/shard.yml
creating: amber-0.30.0/spec/
creating: amber-0.30.0/spec/amber/
inflating: amber-0.30.0/spec/amber/amber_spec.cr
creating: amber-0.30.0/spec/amber/cli/
creating: amber-0.30.0/spec/amber/cli/commands/
inflating: amber-0.30.0/spec/amber/cli/commands/database_spec.cr
inflating: amber-0.30.0/spec/amber/cli/commands/encrypt_spec.cr
inflating: amber-0.30.0/spec/amber/cli/commands/exec_spec.cr
creating: amber-0.30.0/spec/amber/cli/commands/generate/
inflating: amber-0.30.0/spec/amber/cli/commands/generate/error_template_spec.cr
inflating: amber-0.30.0/spec/amber/cli/commands/generator_spec.cr
inflating: amber-0.30.0/spec/amber/cli/commands/init_spec.cr
creating: amber-0.30.0/spec/amber/cli/commands/pipelines/
inflating: amber-0.30.0/spec/amber/cli/commands/pipelines/pipelines_spec.cr
creating: amber-0.30.0/spec/amber/cli/commands/routes/
inflating: amber-0.30.0/spec/amber/cli/commands/routes/routes_spec.cr
creating: amber-0.30.0/spec/amber/cli/recipes/
inflating: amber-0.30.0/spec/amber/cli/recipes/recipe_fetcher_spec.cr
inflating: amber-0.30.0/spec/amber/cli/recipes/recipe_spec.cr
creating: amber-0.30.0/spec/amber/cli/templates/
inflating: amber-0.30.0/spec/amber/cli/templates/app_spec.cr
inflating: amber-0.30.0/spec/amber/cli/templates/empty_migration_spec.cr
inflating: amber-0.30.0/spec/amber/cli/templates/migration_spec.cr
inflating: amber-0.30.0/spec/amber/cli/templates/migration_spec_helper.cr
creating: amber-0.30.0/spec/amber/controller/
inflating: amber-0.30.0/spec/amber/controller/base_spec.cr
inflating: amber-0.30.0/spec/amber/controller/filters_spec.cr
inflating: amber-0.30.0/spec/amber/controller/redirect_spec.cr
inflating: amber-0.30.0/spec/amber/controller/render_spec.cr
inflating: amber-0.30.0/spec/amber/controller/respond_with_spec.cr
creating: amber-0.30.0/spec/amber/dsl/
inflating: amber-0.30.0/spec/amber/dsl/server_spec.cr
creating: amber-0.30.0/spec/amber/environment/
inflating: amber-0.30.0/spec/amber/environment/env_spec.cr
inflating: amber-0.30.0/spec/amber/environment/loader_spec.cr
inflating: amber-0.30.0/spec/amber/environment/logger_spec.cr
inflating: amber-0.30.0/spec/amber/environment/settings_spec.cr
creating: amber-0.30.0/spec/amber/extensions/
inflating: amber-0.30.0/spec/amber/extensions/http_spec.cr
inflating: amber-0.30.0/spec/amber/extensions/number_spec.cr
inflating: amber-0.30.0/spec/amber/extensions/string_spec.cr
creating: amber-0.30.0/spec/amber/pipes/
inflating: amber-0.30.0/spec/amber/pipes/client_ip_spec.cr
inflating: amber-0.30.0/spec/amber/pipes/cors_spec.cr
inflating: amber-0.30.0/spec/amber/pipes/csrf_spec.cr
inflating: amber-0.30.0/spec/amber/pipes/error_spec.cr
inflating: amber-0.30.0/spec/amber/pipes/flash_spec.cr
inflating: amber-0.30.0/spec/amber/pipes/pipeline_spec.cr
inflating: amber-0.30.0/spec/amber/pipes/powered_by_amber_spec.cr
inflating: amber-0.30.0/spec/amber/pipes/session_spec.cr
inflating: amber-0.30.0/spec/amber/pipes/static_spec.cr
creating: amber-0.30.0/spec/amber/router/
inflating: amber-0.30.0/spec/amber/router/context_spec.cr
inflating: amber-0.30.0/spec/amber/router/cookies_spec.cr
inflating: amber-0.30.0/spec/amber/router/params_spec.cr
creating: amber-0.30.0/spec/amber/router/parsers/
inflating: amber-0.30.0/spec/amber/router/parsers/json_spec.cr
inflating: amber-0.30.0/spec/amber/router/request_spec.cr
inflating: amber-0.30.0/spec/amber/router/route_spec.cr
inflating: amber-0.30.0/spec/amber/router/router_spec.cr
inflating: amber-0.30.0/spec/amber/router/scope_spec.cr
creating: amber-0.30.0/spec/amber/router/session/
inflating: amber-0.30.0/spec/amber/router/session/cookie_store_spec.cr
inflating: amber-0.30.0/spec/amber/router/session/redis_store_spec.cr
inflating: amber-0.30.0/spec/amber/router/session_spec.cr
creating: amber-0.30.0/spec/amber/ssl/
inflating: amber-0.30.0/spec/amber/ssl/cert.pem
inflating: amber-0.30.0/spec/amber/ssl/key.pem
inflating: amber-0.30.0/spec/amber/ssl/ssl_spec.cr
creating: amber-0.30.0/spec/amber/support/
inflating: amber-0.30.0/spec/amber/support/file_encryptor.cr
creating: amber-0.30.0/spec/amber/validations/
inflating: amber-0.30.0/spec/amber/validations/base_rule_spec.cr
inflating: amber-0.30.0/spec/amber/validations/optional_rule_spec.cr
inflating: amber-0.30.0/spec/amber/validations/params_spec.cr
creating: amber-0.30.0/spec/amber/websockets/
inflating: amber-0.30.0/spec/amber/websockets/channel_spec.cr
inflating: amber-0.30.0/spec/amber/websockets/client_socket_spec.cr
inflating: amber-0.30.0/spec/amber/websockets/client_sockets_spec.cr
inflating: amber-0.30.0/spec/build_spec_granite.cr
inflating: amber-0.30.0/spec/build_spec_helper.cr
inflating: amber-0.30.0/spec/spec_helper.cr
creating: amber-0.30.0/spec/support/
creating: amber-0.30.0/spec/support/config/
extracting: amber-0.30.0/spec/support/config/.production.enc
inflating: amber-0.30.0/spec/support/config/development.yml
inflating: amber-0.30.0/spec/support/config/fake_env.yml
inflating: amber-0.30.0/spec/support/config/test.yml
inflating: amber-0.30.0/spec/support/config/test_with_color.yml
inflating: amber-0.30.0/spec/support/fixtures.cr
creating: amber-0.30.0/spec/support/fixtures/
inflating: amber-0.30.0/spec/support/fixtures/cli_fixtures.cr
inflating: amber-0.30.0/spec/support/fixtures/controller_fixtures.cr
inflating: amber-0.30.0/spec/support/fixtures/render_fixtures.cr
inflating: amber-0.30.0/spec/support/fixtures/tasks_fixtures.cr
inflating: amber-0.30.0/spec/support/fixtures/websockets_fixtures.cr
inflating: amber-0.30.0/spec/support/helpers.cr
creating: amber-0.30.0/spec/support/helpers/
inflating: amber-0.30.0/spec/support/helpers/cli_helper.cr
inflating: amber-0.30.0/spec/support/helpers/controller_helper.cr
inflating: amber-0.30.0/spec/support/helpers/cookie_helper.cr
inflating: amber-0.30.0/spec/support/helpers/router_helper.cr
inflating: amber-0.30.0/spec/support/helpers/session_helper.cr
inflating: amber-0.30.0/spec/support/helpers/validations_helper.cr
inflating: amber-0.30.0/spec/support/helpers/websockets_helper.cr
creating: amber-0.30.0/spec/support/sample/
inflating: amber-0.30.0/spec/support/sample/multipart.txt
creating: amber-0.30.0/spec/support/sample/public/
creating: amber-0.30.0/spec/support/sample/public/dist/
inflating: amber-0.30.0/spec/support/sample/public/dist/index.html
inflating: amber-0.30.0/spec/support/sample/public/index.html
creating: amber-0.30.0/spec/support/sample/views/
creating: amber-0.30.0/spec/support/sample/views/layouts/
extracting: amber-0.30.0/spec/support/sample/views/layouts/layout.slang
inflating: amber-0.30.0/spec/support/sample/views/layouts/layout_with_partials.slang
creating: amber-0.30.0/spec/support/sample/views/test/
inflating: amber-0.30.0/spec/support/sample/views/test/_form.slang
extracting: amber-0.30.0/spec/support/sample/views/test/_test.slang
extracting: amber-0.30.0/spec/support/sample/views/test/_test2.slang
extracting: amber-0.30.0/spec/support/sample/views/test/flash.slang
extracting: amber-0.30.0/spec/support/sample/views/test/test.slang
creating: amber-0.30.0/src/
inflating: amber-0.30.0/src/amber.cr
creating: amber-0.30.0/src/amber/
inflating: amber-0.30.0/src/amber/cli.cr
creating: amber-0.30.0/src/amber/cli/
inflating: amber-0.30.0/src/amber/cli/commands.cr
creating: amber-0.30.0/src/amber/cli/commands/
inflating: amber-0.30.0/src/amber/cli/commands/command.cr
inflating: amber-0.30.0/src/amber/cli/commands/database.cr
inflating: amber-0.30.0/src/amber/cli/commands/encrypt.cr
inflating: amber-0.30.0/src/amber/cli/commands/exec.cr
inflating: amber-0.30.0/src/amber/cli/commands/generate.cr
inflating: amber-0.30.0/src/amber/cli/commands/new.cr
inflating: amber-0.30.0/src/amber/cli/commands/pipelines.cr
inflating: amber-0.30.0/src/amber/cli/commands/routes.cr
inflating: amber-0.30.0/src/amber/cli/commands/watch.cr
inflating: amber-0.30.0/src/amber/cli/config.cr
inflating: amber-0.30.0/src/amber/cli/generators.cr
creating: amber-0.30.0/src/amber/cli/generators/
inflating: amber-0.30.0/src/amber/cli/generators/api.cr
inflating: amber-0.30.0/src/amber/cli/generators/api_controller.cr
inflating: amber-0.30.0/src/amber/cli/generators/app.cr
inflating: amber-0.30.0/src/amber/cli/generators/auth.cr
inflating: amber-0.30.0/src/amber/cli/generators/channel.cr
inflating: amber-0.30.0/src/amber/cli/generators/controller.cr
inflating: amber-0.30.0/src/amber/cli/generators/empty_migration.cr
inflating: amber-0.30.0/src/amber/cli/generators/error.cr
inflating: amber-0.30.0/src/amber/cli/generators/field.cr
inflating: amber-0.30.0/src/amber/cli/generators/generator.cr
inflating: amber-0.30.0/src/amber/cli/generators/mailer.cr
inflating: amber-0.30.0/src/amber/cli/generators/migration.cr
inflating: amber-0.30.0/src/amber/cli/generators/model.cr
inflating: amber-0.30.0/src/amber/cli/generators/scaffold.cr
inflating: amber-0.30.0/src/amber/cli/generators/scaffold_controller.cr
inflating: amber-0.30.0/src/amber/cli/generators/scaffold_view.cr
inflating: amber-0.30.0/src/amber/cli/generators/socket.cr
creating: amber-0.30.0/src/amber/cli/helpers/
inflating: amber-0.30.0/src/amber/cli/helpers/helpers.cr
inflating: amber-0.30.0/src/amber/cli/helpers/migration.cr
inflating: amber-0.30.0/src/amber/cli/helpers/process_runner.cr
inflating: amber-0.30.0/src/amber/cli/helpers/sentry.cr
creating: amber-0.30.0/src/amber/cli/recipes/
inflating: amber-0.30.0/src/amber/cli/recipes/app.cr
inflating: amber-0.30.0/src/amber/cli/recipes/controller.cr
inflating: amber-0.30.0/src/amber/cli/recipes/file_entries.cr
inflating: amber-0.30.0/src/amber/cli/recipes/model.cr
inflating: amber-0.30.0/src/amber/cli/recipes/recipe.cr
inflating: amber-0.30.0/src/amber/cli/recipes/recipe_fetcher.cr
creating: amber-0.30.0/src/amber/cli/recipes/scaffold/
inflating: amber-0.30.0/src/amber/cli/recipes/scaffold/controller.cr
inflating: amber-0.30.0/src/amber/cli/recipes/scaffold/view.cr
creating: amber-0.30.0/src/amber/cli/templates/
creating: amber-0.30.0/src/amber/cli/templates/api/
creating: amber-0.30.0/src/amber/cli/templates/api/controller/
creating: amber-0.30.0/src/amber/cli/templates/api/controller/spec/
creating: amber-0.30.0/src/amber/cli/templates/api/controller/spec/controllers/
extracting: amber-0.30.0/src/amber/cli/templates/api/controller/spec/controllers/spec_helper.cr
inflating: amber-0.30.0/src/amber/cli/templates/api/controller/spec/controllers/{{name}}_controller_spec.cr.ecr
creating: amber-0.30.0/src/amber/cli/templates/api/controller/src/
creating: amber-0.30.0/src/amber/cli/templates/api/controller/src/controllers/
inflating: amber-0.30.0/src/amber/cli/templates/api/controller/src/controllers/{{name}}_controller.cr.ecr
creating: amber-0.30.0/src/amber/cli/templates/app/
inflating: amber-0.30.0/src/amber/cli/templates/app/.amber.yml.ecr
extracting: amber-0.30.0/src/amber/cli/templates/app/.encryption_key.ecr
inflating: amber-0.30.0/src/amber/cli/templates/app/.gitignore.ecr
extracting: amber-0.30.0/src/amber/cli/templates/app/.travis.yml
inflating: amber-0.30.0/src/amber/cli/templates/app/Dockerfile.ecr
inflating: amber-0.30.0/src/amber/cli/templates/app/README.md.ecr
creating: amber-0.30.0/src/amber/cli/templates/app/config/
inflating: amber-0.30.0/src/amber/cli/templates/app/config/application.cr.ecr
inflating: amber-0.30.0/src/amber/cli/templates/app/config/database.cr.ecr
creating: amber-0.30.0/src/amber/cli/templates/app/config/environments/
inflating: amber-0.30.0/src/amber/cli/templates/app/config/environments/development.yml.ecr
inflating: amber-0.30.0/src/amber/cli/templates/app/config/environments/production.yml.ecr
inflating: amber-0.30.0/src/amber/cli/templates/app/config/environments/test.yml.ecr
inflating: amber-0.30.0/src/amber/cli/templates/app/config/i18n.cr
creating: amber-0.30.0/src/amber/cli/templates/app/config/initializers/
inflating: amber-0.30.0/src/amber/cli/templates/app/config/initializers/mailer.cr
inflating: amber-0.30.0/src/amber/cli/templates/app/config/routes.cr
inflating: amber-0.30.0/src/amber/cli/templates/app/config/settings.cr.ecr
creating: amber-0.30.0/src/amber/cli/templates/app/config/webpack/
inflating: amber-0.30.0/src/amber/cli/templates/app/config/webpack/common.js
inflating: amber-0.30.0/src/amber/cli/templates/app/config/webpack/development.js
inflating: amber-0.30.0/src/amber/cli/templates/app/config/webpack/entry.js
inflating: amber-0.30.0/src/amber/cli/templates/app/config/webpack/production.js
creating: amber-0.30.0/src/amber/cli/templates/app/db/
creating: amber-0.30.0/src/amber/cli/templates/app/db/migrations/
extracting: amber-0.30.0/src/amber/cli/templates/app/db/migrations/.gitkeep
inflating: amber-0.30.0/src/amber/cli/templates/app/db/seeds.cr
inflating: amber-0.30.0/src/amber/cli/templates/app/docker-compose.yml.ecr
inflating: amber-0.30.0/src/amber/cli/templates/app/package.json.ecr
creating: amber-0.30.0/src/amber/cli/templates/app/public/
inflating: amber-0.30.0/src/amber/cli/templates/app/public/crossdomain.xml
inflating: amber-0.30.0/src/amber/cli/templates/app/public/favicon.ico
extracting: amber-0.30.0/src/amber/cli/templates/app/public/favicon.png
creating: amber-0.30.0/src/amber/cli/templates/app/public/js/
inflating: amber-0.30.0/src/amber/cli/templates/app/public/js/client_reload.js
extracting: amber-0.30.0/src/amber/cli/templates/app/public/robots.txt
inflating: amber-0.30.0/src/amber/cli/templates/app/shard.yml.ecr
creating: amber-0.30.0/src/amber/cli/templates/app/spec/
inflating: amber-0.30.0/src/amber/cli/templates/app/spec/spec_helper.cr.ecr
creating: amber-0.30.0/src/amber/cli/templates/app/src/
creating: amber-0.30.0/src/amber/cli/templates/app/src/assets/
creating: amber-0.30.0/src/amber/cli/templates/app/src/assets/fonts/
extracting: amber-0.30.0/src/amber/cli/templates/app/src/assets/fonts/.gitkeep
creating: amber-0.30.0/src/amber/cli/templates/app/src/assets/images/
extracting: amber-0.30.0/src/amber/cli/templates/app/src/assets/images/.gitkeep
inflating: amber-0.30.0/src/amber/cli/templates/app/src/assets/images/logo.svg
creating: amber-0.30.0/src/amber/cli/templates/app/src/assets/javascripts/
inflating: amber-0.30.0/src/amber/cli/templates/app/src/assets/javascripts/main.js
creating: amber-0.30.0/src/amber/cli/templates/app/src/assets/stylesheets/
inflating: amber-0.30.0/src/amber/cli/templates/app/src/assets/stylesheets/main.scss
creating: amber-0.30.0/src/amber/cli/templates/app/src/controllers/
inflating: amber-0.30.0/src/amber/cli/templates/app/src/controllers/application_controller.cr.ecr
inflating: amber-0.30.0/src/amber/cli/templates/app/src/controllers/home_controller.cr.ecr
creating: amber-0.30.0/src/amber/cli/templates/app/src/locales/
inflating: amber-0.30.0/src/amber/cli/templates/app/src/locales/en.yml
creating: amber-0.30.0/src/amber/cli/templates/app/src/mailers/
inflating: amber-0.30.0/src/amber/cli/templates/app/src/mailers/application_mailer.cr.ecr
creating: amber-0.30.0/src/amber/cli/templates/app/src/views/
creating: amber-0.30.0/src/amber/cli/templates/app/src/views/home/
inflating: amber-0.30.0/src/amber/cli/templates/app/src/views/home/index.ecr.ecr
inflating: amber-0.30.0/src/amber/cli/templates/app/src/views/home/index.slang.ecr
creating: amber-0.30.0/src/amber/cli/templates/app/src/views/layouts/
inflating: amber-0.30.0/src/amber/cli/templates/app/src/views/layouts/_nav.ecr.ecr
inflating: amber-0.30.0/src/amber/cli/templates/app/src/views/layouts/_nav.slang.ecr
extracting: amber-0.30.0/src/amber/cli/templates/app/src/views/layouts/_session.ecr.ecr
extracting: amber-0.30.0/src/amber/cli/templates/app/src/views/layouts/_session.slang.ecr
inflating: amber-0.30.0/src/amber/cli/templates/app/src/views/layouts/application.ecr.ecr
inflating: amber-0.30.0/src/amber/cli/templates/app/src/views/layouts/application.slang.ecr
inflating: amber-0.30.0/src/amber/cli/templates/app/src/views/layouts/mailer.ecr.ecr
inflating: amber-0.30.0/src/amber/cli/templates/app/src/views/layouts/mailer.slang
inflating: amber-0.30.0/src/amber/cli/templates/app/src/{{name}}.cr
creating: amber-0.30.0/src/amber/cli/templates/auth/
creating: amber-0.30.0/src/amber/cli/templates/auth/db/
inflating: amber-0.30.0/src/amber/cli/templates/auth/db/+seeds.cr.ecr
creating: amber-0.30.0/src/amber/cli/templates/auth/db/migrations/
inflating: amber-0.30.0/src/amber/cli/templates/auth/db/migrations/{{timestamp}}_create_{{name}}.sql.ecr
creating: amber-0.30.0/src/amber/cli/templates/auth/spec/
creating: amber-0.30.0/src/amber/cli/templates/auth/spec/controllers/
extracting: amber-0.30.0/src/amber/cli/templates/auth/spec/controllers/spec_helper.cr
creating: amber-0.30.0/src/amber/cli/templates/auth/spec/models/
extracting: amber-0.30.0/src/amber/cli/templates/auth/spec/models/spec_helper.cr
inflating: amber-0.30.0/src/amber/cli/templates/auth/spec/models/{{name}}_spec.cr.ecr
creating: amber-0.30.0/src/amber/cli/templates/auth/src/
creating: amber-0.30.0/src/amber/cli/templates/auth/src/controllers/
inflating: amber-0.30.0/src/amber/cli/templates/auth/src/controllers/registration_controller.cr.ecr
inflating: amber-0.30.0/src/amber/cli/templates/auth/src/controllers/session_controller.cr.ecr
inflating: amber-0.30.0/src/amber/cli/templates/auth/src/controllers/{{name}}_controller.cr.ecr
creating: amber-0.30.0/src/amber/cli/templates/auth/src/models/
inflating: amber-0.30.0/src/amber/cli/templates/auth/src/models/{{name}}.cr.ecr
creating: amber-0.30.0/src/amber/cli/templates/auth/src/pipes/
inflating: amber-0.30.0/src/amber/cli/templates/auth/src/pipes/authenticate.cr.ecr
creating: amber-0.30.0/src/amber/cli/templates/auth/src/views/
creating: amber-0.30.0/src/amber/cli/templates/auth/src/views/layouts/
inflating: amber-0.30.0/src/amber/cli/templates/auth/src/views/layouts/+_session.ecr.ecr
inflating: amber-0.30.0/src/amber/cli/templates/auth/src/views/layouts/+_session.slang.ecr
creating: amber-0.30.0/src/amber/cli/templates/auth/src/views/registration/
inflating: amber-0.30.0/src/amber/cli/templates/auth/src/views/registration/new.ecr.ecr
inflating: amber-0.30.0/src/amber/cli/templates/auth/src/views/registration/new.slang.ecr
creating: amber-0.30.0/src/amber/cli/templates/auth/src/views/session/
inflating: amber-0.30.0/src/amber/cli/templates/auth/src/views/session/new.ecr.ecr
inflating: amber-0.30.0/src/amber/cli/templates/auth/src/views/session/new.slang.ecr
creating: amber-0.30.0/src/amber/cli/templates/auth/src/views/{{name}}/
inflating: amber-0.30.0/src/amber/cli/templates/auth/src/views/{{name}}/edit.ecr.ecr
inflating: amber-0.30.0/src/amber/cli/templates/auth/src/views/{{name}}/edit.slang.ecr
inflating: amber-0.30.0/src/amber/cli/templates/auth/src/views/{{name}}/show.ecr.ecr
inflating: amber-0.30.0/src/amber/cli/templates/auth/src/views/{{name}}/show.slang.ecr
creating: amber-0.30.0/src/amber/cli/templates/channel/
creating: amber-0.30.0/src/amber/cli/templates/channel/src/
creating: amber-0.30.0/src/amber/cli/templates/channel/src/channels/
inflating: amber-0.30.0/src/amber/cli/templates/channel/src/channels/{{name}}_channel.cr.ecr
creating: amber-0.30.0/src/amber/cli/templates/controller/
creating: amber-0.30.0/src/amber/cli/templates/controller/spec/
creating: amber-0.30.0/src/amber/cli/templates/controller/spec/controllers/
extracting: amber-0.30.0/src/amber/cli/templates/controller/spec/controllers/spec_helper.cr
inflating: amber-0.30.0/src/amber/cli/templates/controller/spec/controllers/{{name}}_controller_spec.cr.ecr
creating: amber-0.30.0/src/amber/cli/templates/controller/src/
creating: amber-0.30.0/src/amber/cli/templates/controller/src/controllers/
inflating: amber-0.30.0/src/amber/cli/templates/controller/src/controllers/{{name}}_controller.cr.ecr
creating: amber-0.30.0/src/amber/cli/templates/error/
creating: amber-0.30.0/src/amber/cli/templates/error/spec/
creating: amber-0.30.0/src/amber/cli/templates/error/spec/controllers/
inflating: amber-0.30.0/src/amber/cli/templates/error/spec/controllers/spec_helper.cr
inflating: amber-0.30.0/src/amber/cli/templates/error/spec/controllers/{{name}}_controller_spec.cr.ecr
creating: amber-0.30.0/src/amber/cli/templates/error/src/
creating: amber-0.30.0/src/amber/cli/templates/error/src/controllers/
inflating: amber-0.30.0/src/amber/cli/templates/error/src/controllers/{{name}}_controller.cr.ecr
creating: amber-0.30.0/src/amber/cli/templates/error/src/pipes/
inflating: amber-0.30.0/src/amber/cli/templates/error/src/pipes/error.cr.ecr
creating: amber-0.30.0/src/amber/cli/templates/error/src/views/
creating: amber-0.30.0/src/amber/cli/templates/error/src/views/{{name}}/
extracting: amber-0.30.0/src/amber/cli/templates/error/src/views/{{name}}/forbidden.ecr.ecr
extracting: amber-0.30.0/src/amber/cli/templates/error/src/views/{{name}}/forbidden.slang.ecr
inflating: amber-0.30.0/src/amber/cli/templates/error/src/views/{{name}}/internal_server_error.ecr.ecr
inflating: amber-0.30.0/src/amber/cli/templates/error/src/views/{{name}}/internal_server_error.slang.ecr
inflating: amber-0.30.0/src/amber/cli/templates/error/src/views/{{name}}/not_found.ecr.ecr
inflating: amber-0.30.0/src/amber/cli/templates/error/src/views/{{name}}/not_found.slang.ecr
creating: amber-0.30.0/src/amber/cli/templates/mailer/
creating: amber-0.30.0/src/amber/cli/templates/mailer/src/
creating: amber-0.30.0/src/amber/cli/templates/mailer/src/mailers/
inflating: amber-0.30.0/src/amber/cli/templates/mailer/src/mailers/{{name}}_mailer.cr.ecr
creating: amber-0.30.0/src/amber/cli/templates/mailer/src/views/
creating: amber-0.30.0/src/amber/cli/templates/mailer/src/views/mailers/
extracting: amber-0.30.0/src/amber/cli/templates/mailer/src/views/mailers/{{name}}_mailer.html.ecr.ecr
extracting: amber-0.30.0/src/amber/cli/templates/mailer/src/views/mailers/{{name}}_mailer.html.slang
extracting: amber-0.30.0/src/amber/cli/templates/mailer/src/views/mailers/{{name}}_mailer.txt.ecr.ecr
extracting: amber-0.30.0/src/amber/cli/templates/mailer/src/views/mailers/{{name}}_mailer.txt.slang
creating: amber-0.30.0/src/amber/cli/templates/migration/
creating: amber-0.30.0/src/amber/cli/templates/migration/empty/
creating: amber-0.30.0/src/amber/cli/templates/migration/empty/db/
creating: amber-0.30.0/src/amber/cli/templates/migration/empty/db/migrations/
inflating: amber-0.30.0/src/amber/cli/templates/migration/empty/db/migrations/{{timestamp}}_{{name}}.sql.ecr
creating: amber-0.30.0/src/amber/cli/templates/migration/full/
creating: amber-0.30.0/src/amber/cli/templates/migration/full/db/
creating: amber-0.30.0/src/amber/cli/templates/migration/full/db/migrations/
inflating: amber-0.30.0/src/amber/cli/templates/migration/full/db/migrations/{{timestamp}}_create_{{name}}.sql.ecr
creating: amber-0.30.0/src/amber/cli/templates/model/
creating: amber-0.30.0/src/amber/cli/templates/model/spec/
creating: amber-0.30.0/src/amber/cli/templates/model/spec/models/
extracting: amber-0.30.0/src/amber/cli/templates/model/spec/models/spec_helper.cr
inflating: amber-0.30.0/src/amber/cli/templates/model/spec/models/{{name}}_spec.cr.ecr
creating: amber-0.30.0/src/amber/cli/templates/model/src/
creating: amber-0.30.0/src/amber/cli/templates/model/src/models/
inflating: amber-0.30.0/src/amber/cli/templates/model/src/models/{{name}}.cr.ecr
creating: amber-0.30.0/src/amber/cli/templates/scaffold/
creating: amber-0.30.0/src/amber/cli/templates/scaffold/controller/
creating: amber-0.30.0/src/amber/cli/templates/scaffold/controller/spec/
creating: amber-0.30.0/src/amber/cli/templates/scaffold/controller/spec/controllers/
extracting: amber-0.30.0/src/amber/cli/templates/scaffold/controller/spec/controllers/spec_helper.cr
inflating: amber-0.30.0/src/amber/cli/templates/scaffold/controller/spec/controllers/{{name}}_controller_spec.cr.ecr
creating: amber-0.30.0/src/amber/cli/templates/scaffold/controller/src/
creating: amber-0.30.0/src/amber/cli/templates/scaffold/controller/src/controllers/
inflating: amber-0.30.0/src/amber/cli/templates/scaffold/controller/src/controllers/{{name}}_controller.cr.ecr
creating: amber-0.30.0/src/amber/cli/templates/scaffold/view/
creating: amber-0.30.0/src/amber/cli/templates/scaffold/view/src/
creating: amber-0.30.0/src/amber/cli/templates/scaffold/view/src/views/
creating: amber-0.30.0/src/amber/cli/templates/scaffold/view/src/views/layouts/
inflating: amber-0.30.0/src/amber/cli/templates/scaffold/view/src/views/layouts/+_nav.ecr.ecr
inflating: amber-0.30.0/src/amber/cli/templates/scaffold/view/src/views/layouts/+_nav.slang.ecr
creating: amber-0.30.0/src/amber/cli/templates/scaffold/view/src/views/{{name}}/
inflating: amber-0.30.0/src/amber/cli/templates/scaffold/view/src/views/{{name}}/_form.ecr.ecr
inflating: amber-0.30.0/src/amber/cli/templates/scaffold/view/src/views/{{name}}/_form.slang.ecr
inflating: amber-0.30.0/src/amber/cli/templates/scaffold/view/src/views/{{name}}/edit.ecr.ecr
extracting: amber-0.30.0/src/amber/cli/templates/scaffold/view/src/views/{{name}}/edit.slang.ecr
inflating: amber-0.30.0/src/amber/cli/templates/scaffold/view/src/views/{{name}}/index.ecr.ecr
inflating: amber-0.30.0/src/amber/cli/templates/scaffold/view/src/views/{{name}}/index.slang.ecr
inflating: amber-0.30.0/src/amber/cli/templates/scaffold/view/src/views/{{name}}/new.ecr.ecr
extracting: amber-0.30.0/src/amber/cli/templates/scaffold/view/src/views/{{name}}/new.slang.ecr
inflating: amber-0.30.0/src/amber/cli/templates/scaffold/view/src/views/{{name}}/show.ecr.ecr
inflating: amber-0.30.0/src/amber/cli/templates/scaffold/view/src/views/{{name}}/show.slang.ecr
creating: amber-0.30.0/src/amber/cli/templates/socket/
creating: amber-0.30.0/src/amber/cli/templates/socket/src/
creating: amber-0.30.0/src/amber/cli/templates/socket/src/sockets/
inflating: amber-0.30.0/src/amber/cli/templates/socket/src/sockets/{{name}}_socket.cr.ecr
creating: amber-0.30.0/src/amber/controller/
inflating: amber-0.30.0/src/amber/controller/base.cr
inflating: amber-0.30.0/src/amber/controller/error.cr
inflating: amber-0.30.0/src/amber/controller/filters.cr
creating: amber-0.30.0/src/amber/controller/helpers/
inflating: amber-0.30.0/src/amber/controller/helpers/csrf.cr
inflating: amber-0.30.0/src/amber/controller/helpers/i18n.cr
inflating: amber-0.30.0/src/amber/controller/helpers/redirect.cr
inflating: amber-0.30.0/src/amber/controller/helpers/render.cr
inflating: amber-0.30.0/src/amber/controller/helpers/responders.cr
inflating: amber-0.30.0/src/amber/controller/helpers/route.cr
inflating: amber-0.30.0/src/amber/controller/static.cr
creating: amber-0.30.0/src/amber/dsl/
inflating: amber-0.30.0/src/amber/dsl/callbacks.cr
inflating: amber-0.30.0/src/amber/dsl/router.cr
inflating: amber-0.30.0/src/amber/dsl/server.cr
inflating: amber-0.30.0/src/amber/environment.cr
creating: amber-0.30.0/src/amber/environment/
inflating: amber-0.30.0/src/amber/environment/env.cr
inflating: amber-0.30.0/src/amber/environment/loader.cr
inflating: amber-0.30.0/src/amber/environment/logger.cr
inflating: amber-0.30.0/src/amber/environment/logger_builder.cr
inflating: amber-0.30.0/src/amber/environment/logging.cr
inflating: amber-0.30.0/src/amber/environment/settings.cr
creating: amber-0.30.0/src/amber/exceptions/
inflating: amber-0.30.0/src/amber/exceptions/exceptions.cr
inflating: amber-0.30.0/src/amber/exceptions/page.cr
creating: amber-0.30.0/src/amber/extensions/
inflating: amber-0.30.0/src/amber/extensions/core.cr
inflating: amber-0.30.0/src/amber/extensions/http.cr
inflating: amber-0.30.0/src/amber/extensions/number.cr
inflating: amber-0.30.0/src/amber/extensions/string.cr
creating: amber-0.30.0/src/amber/pipes/
inflating: amber-0.30.0/src/amber/pipes/base.cr
inflating: amber-0.30.0/src/amber/pipes/client_ip.cr
inflating: amber-0.30.0/src/amber/pipes/controller.cr
inflating: amber-0.30.0/src/amber/pipes/cors.cr
inflating: amber-0.30.0/src/amber/pipes/csrf.cr
inflating: amber-0.30.0/src/amber/pipes/error.cr
inflating: amber-0.30.0/src/amber/pipes/flash.cr
inflating: amber-0.30.0/src/amber/pipes/logger.cr
inflating: amber-0.30.0/src/amber/pipes/pipeline.cr
inflating: amber-0.30.0/src/amber/pipes/powered_by_amber.cr
inflating: amber-0.30.0/src/amber/pipes/session.cr
inflating: amber-0.30.0/src/amber/pipes/static.cr
creating: amber-0.30.0/src/amber/router/
inflating: amber-0.30.0/src/amber/router/context.cr
inflating: amber-0.30.0/src/amber/router/cookies.cr
creating: amber-0.30.0/src/amber/router/cookies/
inflating: amber-0.30.0/src/amber/router/cookies/abstract_store.cr
inflating: amber-0.30.0/src/amber/router/cookies/encrypted_store.cr
inflating: amber-0.30.0/src/amber/router/cookies/permanent_store.cr
inflating: amber-0.30.0/src/amber/router/cookies/signed_store.cr
inflating: amber-0.30.0/src/amber/router/cookies/store.cr
inflating: amber-0.30.0/src/amber/router/file.cr
inflating: amber-0.30.0/src/amber/router/flash.cr
inflating: amber-0.30.0/src/amber/router/params.cr
creating: amber-0.30.0/src/amber/router/parsers/
inflating: amber-0.30.0/src/amber/router/parsers/form_data.cr
inflating: amber-0.30.0/src/amber/router/parsers/json.cr
inflating: amber-0.30.0/src/amber/router/parsers/multipart.cr
inflating: amber-0.30.0/src/amber/router/request.cr
inflating: amber-0.30.0/src/amber/router/route.cr
inflating: amber-0.30.0/src/amber/router/router.cr
inflating: amber-0.30.0/src/amber/router/scope.cr
inflating: amber-0.30.0/src/amber/router/session.cr
creating: amber-0.30.0/src/amber/router/session/
inflating: amber-0.30.0/src/amber/router/session/abstract_store.cr
inflating: amber-0.30.0/src/amber/router/session/cookie_store.cr
inflating: amber-0.30.0/src/amber/router/session/redis_store.cr
inflating: amber-0.30.0/src/amber/router/session/session_store.cr
creating: amber-0.30.0/src/amber/server/
inflating: amber-0.30.0/src/amber/server/cluster.cr
inflating: amber-0.30.0/src/amber/server/server.cr
inflating: amber-0.30.0/src/amber/server/ssl.cr
creating: amber-0.30.0/src/amber/support/
inflating: amber-0.30.0/src/amber/support/client_reload.cr
inflating: amber-0.30.0/src/amber/support/file_encryptor.cr
inflating: amber-0.30.0/src/amber/support/locale_formats.cr
inflating: amber-0.30.0/src/amber/support/message_encryptor.cr
inflating: amber-0.30.0/src/amber/support/message_verifier.cr
inflating: amber-0.30.0/src/amber/support/mime_types.cr
creating: amber-0.30.0/src/amber/validators/
inflating: amber-0.30.0/src/amber/validators/params.cr
extracting: amber-0.30.0/src/amber/version.cr
creating: amber-0.30.0/src/amber/websockets/
creating: amber-0.30.0/src/amber/websockets/adapters/
inflating: amber-0.30.0/src/amber/websockets/adapters/memory.cr
inflating: amber-0.30.0/src/amber/websockets/adapters/redis.cr
inflating: amber-0.30.0/src/amber/websockets/channel.cr
inflating: amber-0.30.0/src/amber/websockets/client_socket.cr
inflating: amber-0.30.0/src/amber/websockets/client_sockets.cr
inflating: amber-0.30.0/src/amber/websockets/server.cr
inflating: amber-0.30.0/src/amber/websockets/subscription_manager.cr
root@panel-staging:~# ls
amber-0.30.0 snap ulayerpanel v0.30.0.zip
root@panel-staging:~# cd amber*
root@panel-staging:~/amber-0.30.0# ls
assets Backers.md bin docker-compose.yml Dockerfile LICENSE Makefile package.json README.md shard.yml spec src
root@panel-staging:~/amber-0.30.0# make
Fetching https://github.com/amberframework/amber-router.git
Fetching https://github.com/drujensen/cli.git
Fetching https://github.com/drujensen/optarg.git
Fetching https://github.com/drujensen/callback.git
Fetching https://github.com/mosop/string_inflection.git
Fetching https://github.com/elorest/compiled_license.git
Fetching https://github.com/jeromegn/kilt.git
Fetching https://github.com/TechMagister/liquid.cr.git
Fetching https://github.com/phoffer/inflector.cr.git
Fetching https://github.com/amberframework/micrate.git
Fetching https://github.com/crystal-lang/crystal-db.git
Fetching https://github.com/will/crystal-pg.git
Fetching https://github.com/crystal-lang/crystal-mysql.git
Fetching https://github.com/crystal-lang/crystal-sqlite3.git
Fetching https://github.com/stefanwille/crystal-redis.git
Fetching https://github.com/ysbaddaden/pool.git
Fetching https://github.com/luckyframework/shell-table.cr.git
Fetching https://github.com/jeromegn/slang.git
Fetching https://github.com/mosop/teeplate.git
Fetching https://github.com/crystal-loot/exception_page.git
Installing amber_router (0.3.0)
Installing cli (0.8.0)
Installing optarg (0.7.0)
Installing callback (0.7.1)
Installing string_inflection (0.2.1)
Installing compiled_license (0.1.3)
Installing kilt (0.4.0)
Installing liquid (0.3.1)
Installing inflector (0.1.8)
Installing micrate (0.3.3)
Installing db (0.6.0)
Installing pg (0.18.1)
Installing mysql (0.8.0)
Installing sqlite3 (0.13.0)
Installing redis (2.2.1)
Installing pool (0.2.3)
Installing shell-table (0.9.2 at 078a04ea58ead5203bb435a3b5fff448ddabaeea)
Installing slang (1.7.1)
Installing teeplate (0.8.0)
Installing exception_page (0.1.2)
Building amber in bin/amber
root@panel-staging:~/amber-0.30.0# make install
root@panel-staging:~/amber-0.30.0# amber -v
Amber CLI (amberframework.org) - v0.30.0
root@panel-staging:~/amber-0.30.0#
The CLI works as expected, my app even launches:
root@panel-staging:~/ulayerpanel# amber watch
08:31:33 Watch run | (INFO) Building...
08:31:39 Watch run | (INFO) Compiled in 00:00:06.495654892
08:31:39 Watch npm | (INFO) Building...
[2019-08-14T20:31:40.035525000Z] main.INFO: Amber 0.30.0 serving application "Universial layer panel" at http://0.0.0.0:8080
[2019-08-14T20:31:40.035763000Z] main.INFO: Server started in development.
[2019-08-14T20:31:40.035853000Z] main.INFO: Startup Time 00:00:00.000332000
up to date in 4.309s
up to date in 4.154s
08:31:50 Watch npm | (INFO) Starting...
npm WARN npm npm does not support Node.js v10.15.2
npm WARN npm You should probably upgrade to a newer version of node as we
npm WARN npm can't make any promises that npm will work with this version.
npm WARN npm Supported releases of Node.js are the latest release of 4, 6, 7, 8, 9.
npm WARN npm You can find the latest version at https://nodejs.org/
> ulayer@0.1.0 watch /root/ulayerpanel
> webpack -w --config config/webpack/development.js
webpack is watching the files…
So then the question is why didn't things work before and will this issue come right back up.
I have a fresh install of Ubuntu 16.04. I installed crystal as a snap and downloaded amber stable. Did the make and sudo make install. I created a new amber project and verified everything is working.
We use Debian for staging and production at my organization. Ubuntu might have some extra libs available by default? Logged in as root so no sudo needed :P
Linux panel-staging.ulayer.net 4.19.0-5-amd64 #1 SMP Debian 4.19.37-5+deb10u2 (2019-08-08) x86_64 GNU/Linux
At this point the issue is resolved but I would still be interested in knowing why it worked before and why it broke.
This issue only happens if you're running amber inside of an amber project without correct environment files. amber -v
or other commands should work fine both outside of the amber project and inside of a correctly generated or new amber project.
@nsuchy can you confirm this on your end. That's the only way I've been able to replicate this.
It happened everywhere. Really wish I had backed up the amber binary for further analysis before reinstalling it.
@nsuchy Can you look into your config/environments/development.yml
file and confirm that it isn't corrupt? Also, can you confirm you are not using an encrypted version config/environments/development.enc
?
@elorest how did you replicate the issue?
@drujensen I can replicate the issue by deleting or corrupting my environment files. The binary still works just fine outside of the project folder though in my case.
@elorest I moved the environments
directory but still can't replicate this issue. I get a different error:
Unhandled exception: no driver was registered for the schema "", did you maybe forget to require the database driver? (ArgumentError)
Is this what you are seeing or can you replicate the same error?
https://github.com/amberframework/amber/issues/1129#issuecomment-521826291 We run development (amber watch) in production currently as our solution is still in beta and being constantly changed. No encrypted environment variables atm.
@nsuchy Is this still an issue?
I can’t reproduce, everything works flawlessly with my new dockerfile and aggressive commit locking.
I am unable to run the Amber CLI as Crystal (latest snap) runs into a compiler error. How would Amber advise me to proceed.
Error Output