* Arc version (mix deps): `arc 0.11.0 (Hex package) (mix)`
* Arc dependencies when applicable (mix deps): `arc_ecto 0.11.1 (Hex package) (mix)` (not applicable however)
* Operating system: RedHat Linux
### Expected behavior
Compiles cleanly
### Actual behavior
Gives these warnings:
```elixir
==> arc
Compiling 14 files (.ex)
warning: variable "asset_host" is unused (if the variable is not meant to be used, prefix it with an underscore)
lib/arc/storage/s3.ex:9
warning: System.cwd/0 is deprecated. Use File.cwd/0 instead
Found at 2 locations:
lib/mix/tasks/g.ex:49
lib/mix/tasks/g.ex:55
warning: function ExAws.request/1 is undefined (module ExAws is not available)
Found at 3 locations:
lib/arc/storage/s3.ex:30
lib/arc/storage/s3.ex:45
lib/arc/storage/s3.ex:57
warning: function ExAws.Config.new/2 is undefined (module ExAws.Config is not available)
lib/arc/storage/s3.ex:82
warning: function ExAws.S3.delete_object/2 is undefined (module ExAws.S3 is not available)
lib/arc/storage/s3.ex:29
warning: function ExAws.S3.presigned_url/5 is undefined (module ExAws.S3 is not available)
lib/arc/storage/s3.ex:85
warning: function ExAws.S3.put_object/4 is undefined (module ExAws.S3 is not available)
lib/arc/storage/s3.ex:44
warning: function ExAws.S3.upload/4 is undefined (module ExAws.S3 is not available)
lib/arc/storage/s3.ex:56
warning: function ExAws.S3.Upload.stream_file/1 is undefined (module ExAws.S3.Upload is not available)
lib/arc/storage/s3.ex:55
Generated arc app
First it seems that when the S3 functionality is not needed then it shouldn't be compiled in. Simply wrapping the modules with an if test of if the ExAws module is found or not along with an optional dependency on it so ExAws gets compiled first will fix 'most' of those. Another is an unused binding big and a deprecation.
Environment
Elixir 1.8.0 (compiled with Erlang/OTP 21)
First it seems that when the S3 functionality is not needed then it shouldn't be compiled in. Simply wrapping the modules with an
if
test of if theExAws
module is found or not along with an optional dependency on it soExAws
gets compiled first will fix 'most' of those. Another is an unused binding big and a deprecation.