code: public function run( XML\Node $configuration, Logger $logger )
      {
          if ( !isset( $configuration->src ) )
          {
              $logger->log( 'No source provided.', Logger::ERROR );
              return Executor::ERROR;
          }
          $src = (string) $configuration->src;
  
          if ( !isset( $configuration->dst ) )
          {
              $logger->log( 'No destination provided.', Logger::ERROR );
              return Executor::ERROR;
          }
          $dst = (string) $configuration->dst;
  
          $depth = -1;
          if ( isset( $configuration->depth ) &&
               is_numeric( (string) $configuration->depth ) )
          {
              $depth = (int) (string) $configuration->depth;
          }
  
          $this->copyRecursive( $src, $dst, $depth, $logger );
          return Executor::SUCCESS;
      }
docs: Run command
  
  Execute the actual bits.
  
  Should return one of the status constant values, defined as class
  constants in Executor.
  
  @param XML\Node $configuration
  @param Logger $logger
  @return int