anchor.diff:              rebar_file_utils:consult_config_terms(State, Terms)
       end.
   
  +maybe_set_env_vars(State) ->
  +    EnvFile =debug_get_value(env_file, rebar_state:get(State, shell, []), undefined,
  +                             "Found env_file from config."),
  +    {Opts, _} = rebar_state:command_parsed_args(State),
  +    EnvFile1 = debug_get_value(env_file, Opts, EnvFile,
  +                               "Found env_file from command line option."),
  +
  +    case maybe_read_file(EnvFile1) of
  +        ignore ->
  +            ok;
  +        {error, _} ->
  +            ?WARN("Failed to read file with environment variables: ~p", [EnvFile1]);
  +        {ok, Bin} ->
  +            Lines = string:split(unicode:characters_to_list(Bin), "\n", all),
  +            [handle_env_var_line(Line) || Line <- Lines]
  +    end.
  +
  +handle_env_var_line(Line) ->
  +    Trimmed = string:trim(Line, both, [$ ]),
  +    %% ignore lines starting with # and
  +    %% fail if there are spaces around =
  +    case re:run(Trimmed, "^(?<key>[^#][^\s=]*)=(?<value>[^\s]\.*)",
  +                [{capture, [key, value], list}, unicode]) of
  +        {match, [Key, Value]} ->
  +            os:putenv(Key, Value);
  +        _ ->
  +            case Trimmed of
  +                [$# | _] -> ignore;
  +                [] -> ignore;
  +                Other ->
  +                    ?WARN("Unable to parse environment variable from this line: ~ts", [Other])
  +            end
  +    end.
  +
  +maybe_read_file(undefined) ->
  +    ignore;
  +maybe_read_file(EnvFile) ->
  +    file:read_file(EnvFile).
  +
   %% @doc quick and simple variable substitution writeup.
   %% Supports `${varname}' but not `$varname' nor nested
   %% values such as `${my_${varname}}'.
  
positive.code:     Result.
  
  maybe_boot_apps(State) ->
      case find_apps_to_boot(State) of
          undefined ->
              %% try to read in sys.config file
  
negative.code:                         {start_clean, undefined, "start-clean", boolean,
                           "Cancel any applications in the 'apps' list "
                           "or release."},
                          {env_file, undefined, "env-file", string,
                           "Path to file of os environment variables to setup "
                           "before expanding vars in config files."},
                          {user_drv_args, undefined, "user_drv_args", string,
                           "Arguments passed to user_drv start function for "
                           "creating custom shells."}]}
  