The introduction of the same conditional across a number of methods makes me think this shouldn't be a "cook" command but rather some new command. Actually thinking that "sync" should probably get broken out cook would call that. Then your case should be a little simpler to implement as a "sync --local".

Though I'm still unclear what we're doing here beyond what `berks install -p some/other/path` would do. I guess inclusion of the roles and databags? Including the search cookbook could easily be done via Berkshelf if that's your main need.