¿Cómo cambiar suavemente el nombre de un Proyecto Phoenix?

He clonado un repository git y necesito comenzar un nuevo proyecto basado en él.

¿Cómo cambio el nombre, asegurándome de que todo está resuelto?

Estoy usando macOS .

No sé de ninguna manera para hacer esto automáticamente con exactitud perfecta, pero estos son los pasos que sigo a mano cuando necesito cambiar el nombre de los proyectos de Phoenix.

Los siguientes commands suponen que su código está en un repository git y la aplicación anterior es my_app / MyApp y la nueva es my_new_app / MyNewApp . El process es frágil: si la aplicación o el nombre del module pueden aparecer en muchos lugares (por ejemplo, es una sola letra A o algo así), esto no funcionará.

 # search replace both the application name and module name in all files indexed by git $ git ls-files -z | xargs -0 perl -p -i -e 's/my_app/my_new_app/g; s/MyApp/MyNewApp/g;' # rename `lib/my_app` $ mv lib/my_app lib/my_new_app 

Después de eso, ejecuto la mix test y corrijo cualquier error de compilation o falla de testing.

Finalmente hago una revisión rápida de git diff para asegurarme de que todo se ve bien.

Basado en el rename.sh de nerdyworm , que usa ack lo he adaptado para usar git grep y ejecutar macOS fácilmente.

OTP NAME : nombre de Snake Case (snake_case) para la Aplicación.

NOMBRE : nombre de la aplicación regular.

 $ git grep -l $CURRENT_OTP | xargs sed -i '' -e "s/$CURRENT_OTP/$NEW_OTP/g" $ git grep -l $CURRENT_NAME | xargs sed -i '' -e "s/$CURRENT_NAME/$NEW_NAME/g" $ mv lib/$CURRENT_OTP lib/$NEW_OTP $ mv lib/$CURRENT_OTP.ex lib/$NEW_OTP.ex 
    Intereting Posts