New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

drush make --overwrite should respect --projects=? #1269

Closed
hanoii opened this Issue Mar 19, 2015 · 2 comments

Comments

Projects
None yet
3 participants
@hanoii
Copy link
Contributor

hanoii commented Mar 19, 2015

I like the fact that --overwrite removes files that are no longer in the modules, as opposed to the default merge, however, I just found out that if you run --overwrite with some specific --projects=.. it also removes everything else from your contrib destinations, like if you do --projects=rules --overwrite, it will properly process the makefile for rules, but removes everything else. Is it by design or a bug? If the former, is there a way for me to make sure the new download removes anything that's not there?

@weitzman weitzman added the area-make label Mar 24, 2015

@hanoii

This comment has been minimized.

Copy link
Contributor Author

hanoii commented May 9, 2015

Hello, just wondering if there's any idea on this or if can be put in a roadmap.

I am now manually removing directories before running make of projects but I would rather rely on drush.

I tried to work on this tu submit a PR but I couldn't find a way to only overwrite what was download and also making sure that it won't break existing functionality. At one point, I had an idea of storing downloaded paths right on DrushMakeProject::make(), which is where the download_location is being resolved, and then use than info in make_move_build() only to overwrite those directories. I don't think it's a bad idea, but I was first storing it in a context only to realize I was storing it in a different drush process, so the context in make_move_build() was above the context in DrushMakeProject::make().

I then tried to rely on a temp file but all "drush" ways of storing data on a temp file rely on passing data to child processes, not to parent processes. I could hack my way around it by custom code but probably not the way to go.

While I am writing this, I thought of another alternative, which is to have DrushMakeProject::make() put a hidden file in the project top level dir, like .drush-make-toplevel or something like that, then make_move_build() can recursively scan directories until it reach a top-level one and move that one with the overwrite option. This might even work for every case.

I might try to give that idea a try, but if you share any points, ideas, etc. will be greatly appreciated.

@greg-1-anderson

This comment has been minimized.

Copy link
Member

greg-1-anderson commented Jul 16, 2018

Make is maintenance only; closing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment