code: def run_command(nova_creds, nova_args, supernova_args):
      
      nova_env = supernova_args['nova_env']
      # (gtmanfred) make a copy of this object.  If we don't copy it, the insert
      # to 0 happens multiple times because it is the same object in memory.
      nova_args = copy.copy(nova_args)
  
      # Get the environment variables ready
      env_vars = os.environ.copy()
      env_vars.update(credentials.prep_shell_environment(nova_env,
                                                         nova_creds))
  
      # BYPASS_URL is a weird one, so we need to send it as an argument,
      # not an environment variable.
      nova_args = check_for_bypass_url(nova_creds[nova_env], nova_args)
  
      # Check for OS_EXECUTABLE
      supernova_args = check_for_executable(supernova_args, env_vars)
  
      # Check for a debug override
      nova_args = check_for_debug(supernova_args, nova_args)
  
      # Print a small message for the user (very helpful for groups)
      msg = "Running %s against %s..." % (supernova_args.get('executable'),
                                          nova_env)
      if not supernova_args.get('quiet'):
          click.echo("[%s] %s " % (click.style('SUPERNOVA', fg='green'), msg))
  
      # Call executable and connect stdout to the current terminal
      # so that any unicode characters from the executable's list will be
      # displayed appropriately.
      #
      # In other news, I hate how python 2.6 does unicode.
      nova_args.insert(0, supernova_args['executable'])
      nova_args = [nova_arg.strip() for nova_arg in nova_args]
      process = execute_executable(nova_args, env_vars)
  
      # If the user asked us to be quiet, then let's not print stderr
      if not supernova_args.get('quiet'):
          handle_stderr(process.stderr)
  
      return process.returncode
docs: Sets the environment variables for the executable, runs the executable,
      and handles the output.