dewetblomerus
Modifying Phoenix Generator and Failing to Maintain Old Behavior
@victorbjorklund thanks for your @ThinkingElixir #167 on Phoenix Generators.
This would solve a problem at work where we want all new services to have certain observability libraries installed and to respond to a health check without logging, etc.
I tried your article Build your custom Phoenix phx.new generator
I can not get into a state where my modified generator and the original generator both work. I need this because it would be bad if someone goes to make a side-project on their work laptop and ends up with the company’s setup.
Here are the steps I took:
- Make a copy of the
installerdir with my own name. - Rename the file and module name for
/lib/mix/tasks/phx.new_project.ex - Edit
/templates/phx_single/mix.exs
Now I can run mix phx.new_dw foo and I get the modified mix.exs. But if I run mix phx.new foo I also get the modified mix.exs.
I tried renaming the app: :phx_new in the installer/mix.exs. This really made it seem like I found the correct thing, because it generated a differently named file in ~/.asdf/installs/elixir/1.15.4-otp-26/.mix/archives/ but still, both commands generate the modified code.
I tried deleting and re-generating the files in ~/.asdf/installs/elixir/1.15.4-otp-26/.mix/archives/, this produced the same result.
Do you have an example of a GitHub project where you have a modified version of the generator that still allows you to call the official Phoenix generator when you want to?
Most Liked
dimitarvp
Oh man, if you succeed in this and even open-source it, I am definitely buying you a pizza and a beer!
dewetblomerus
I will at least open source a toy version of this if I got it working. No pizza or beer required.
For personal projects, my only need is that mix_test_watch is included on every Elixir project ever ![]()
Popular in Questions
Other popular topics
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #deployment
- #library
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #channels
- #elixirconf
- #exunit
- #discussion
- #code-sync
- #javascript
- #podcasts
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixir-ls
- #phoenix_html
- #iex
- #blog-post
- #graphql
- #genstage
- #ai
- #websockets
- #supervisor
- #advent-of-code
- #elixirconf-us
- #distillery
- #processes
- #forms
- #api
- #metaprogramming
- #security
- #performance









