I several folders containing symlinks to my drupal sites. I’d like to use this folder structure to create an alias so I can run commands on each group of sites.
I’m trying to do what “drush @sites status” will do, but on a smaller subset.
I wrote the following based on the docs
// List the instances from the OU instances folder $full_path = "/opt/drupal/sites/instances"; if ($handle = opendir("$full_path")) {     while (false !== ($file = readdir($handle))) {         if(is_dir($full_path."/".$file)) {           if ($file != '.' && $file != '..')             $instances[] = $file;         }     } }  // Turn them into aliases so we just have to type @instance foreach ($instances as $instance) {      $site_list = [];      // Look at each instance     $site_paths = $full_path . "/" . $instance;      if ($file_handle = opendir("$site_paths")) {       // List out the folders in this instance       while (false !== ($site_folder = readdir($file_handle))) {          if(is_dir($site_paths."/".$site_folder)) {           // If the folder represents a drupal site           if ($site_folder != '.' && $site_folder != '..')             // Add it to this instances list             $site_list[] = '@' . $site_folder;         }       }     }      $aliases[$instance] = array(             'site-list' => $site_list,         ); } print_r($aliases); 
The cheeky print_r on the end shows my array as
 [partnership] => Array         (             [site-list] => Array                 (                     [0] => @www.1.co.uk                     [1] => @www.2.org                     [2] => @www.3.org.uk                     [3] => @www.4.org                     [4] => @www.5.eu                     [5] => @www.6.net                     [6] => @www.7.com                     [7] => @www.8-ri-2020.eu                     [8] => @www.9.edu                     [9] => @www.10.ac.uk                     [10] => @www.11.org                     [11] => @www.12.ac.uk                     [12] => @www.13.co.uk                     [13] => @www.14.org.uk                     [14] => @www.15.ac.uk                 )          ) 
I’ve changed the names to protect the innocent, but they are valid aliases.
When I run “drush @partnership status” I get
drush @partnership status You are about to execute 'status' non-interactively (--yes forced) on all of the following targets: Continue?  (y/n): y Invalid argument supplied for foreach() backend.inc:661  
How do I get drush to actually run through this alias list telling me the status of each site?
Sponsored by SupremePR