Silence pushd and popd output The output of pushd and popd can confuse drin users making them think that the output is relevant to Drupal when instead the usage of pushd and popd is just an implementation detail. Silence the output to avoid the confusion.
create-profile.sh: make detection of the default_content module more robust Do not just grep on "$ENABLED_MODULES" which is a comma-separated list on which is harder to match for the exact module name. Use instead the output of pm-list which has one module name for each line, this way it is easier to match for the exact name of "default_content" and avoid picking up other modules which may contain the string "default_content" in their names.
bootstrap.sh: fix sites subdir when specifying options.uri Drush 9 tries too hard to get the sites subdir from the options.uri setting. This is wrong IMHO because options.uri is something relative to the *web* root and can be subject to web server aliases and whatnot, while sites-dir is something relative to the local filesystem; mixing the two is counter-intuitive, TO be on the safe side, pass the --sites-subdir option explicitly to "drush site-install", to avoid a possible error when options.uri is something valid but not expected by drush, like http://localhost/~user/drupal/web Fix the following error emitted in such cases: [error] Could not determine target sites directory for site to install. Use --sites-subdir to specify.
create-profile.sh: copy more stuff from the current profile to the new one The "drupal generate:profile" command only provides a stub implementation for the .install and .profile files which are only fine when writing a new installation profile from scratch. When creating a profile form an installed one, it is appropriate to preserve as much as possible of the original profile, so copy code and data from the currently installed profile to the newly created one, adjusting them to the new profile name.
clean.sh: make sudo always ask for the password Passing the --reset-timestamp option to sudo makes it ignore the cached credentials and always ask for a password. This is done to provide the user a second chance to think about what they are doing, as the removal can be fairly destructive for a development site.