Skip to content

Commit

Permalink
Merge pull request #1049 from mikekaminsky/feature/profile-env-var
Browse files Browse the repository at this point in the history
Allows the profile directory to be set with an environment var
  • Loading branch information
drewbanin authored Oct 17, 2018
2 parents a829da5 + e0de86e commit 6d66ab0
Show file tree
Hide file tree
Showing 5 changed files with 15 additions and 9 deletions.
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -73,3 +73,6 @@ target/
*.sw*

.python-version

# Vim
*.sw*
11 changes: 7 additions & 4 deletions dbt/config.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import os.path
import os
from copy import deepcopy
import hashlib
import pprint
Expand All @@ -23,7 +24,9 @@
DEFAULT_SEND_ANONYMOUS_USAGE_STATS = True
DEFAULT_USE_COLORS = True
DEFAULT_PROFILES_DIR = os.path.join(os.path.expanduser('~'), '.dbt')

PROFILES_DIR = os.path.expanduser(
os.environ.get('DBT_PROFILES_DIR', DEFAULT_PROFILES_DIR)
)

INVALID_PROFILE_MESSAGE = """
dbt encountered an error while trying to read your profiles.yml file.
Expand All @@ -43,7 +46,7 @@
defined in your profiles.yml file. You can find profiles.yml here:
{profiles_file}/profiles.yml
""".format(profiles_file=DEFAULT_PROFILES_DIR)
""".format(profiles_file=PROFILES_DIR)


UNUSED_RESOURCE_CONFIGURATION_PATH_MESSAGE = """\
Expand Down Expand Up @@ -71,7 +74,7 @@ def read_profile(profiles_dir):
def read_profiles(profiles_dir=None):
"""This is only used in main, for some error handling"""
if profiles_dir is None:
profiles_dir = DEFAULT_PROFILES_DIR
profiles_dir = PROFILES_DIR

raw_profiles = read_profile(profiles_dir)

Expand Down Expand Up @@ -678,7 +681,7 @@ def from_args(cls, args, project_profile_name=None, cli_vars=None):

threads_override = getattr(args, 'threads', None)
# TODO(jeb): is it even possible for this to not be set?
profiles_dir = getattr(args, 'profiles_dir', DEFAULT_PROFILES_DIR)
profiles_dir = getattr(args, 'profiles_dir', PROFILES_DIR)
target_override = getattr(args, 'target', None)
raw_profiles = read_profile(profiles_dir)
profile_name = cls._pick_profile_name(args.profile,
Expand Down
6 changes: 3 additions & 3 deletions dbt/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@

from dbt.utils import ExitCodes
from dbt.config import Project, RuntimeConfig, DbtProjectError, \
DbtProfileError, DEFAULT_PROFILES_DIR, read_config, \
DbtProfileError, PROFILES_DIR, read_config, \
send_anonymous_usage_stats, colorize_output, read_profiles
from dbt.exceptions import DbtProfileError, DbtProfileError, RuntimeException

Expand Down Expand Up @@ -306,11 +306,11 @@ def parse_args(args):

base_subparser.add_argument(
'--profiles-dir',
default=DEFAULT_PROFILES_DIR,
default=PROFILES_DIR,
type=str,
help="""
Which directory to look in for the profiles.yml file. Default = {}
""".format(DEFAULT_PROFILES_DIR)
""".format(PROFILES_DIR)
)

base_subparser.add_argument(
Expand Down
2 changes: 1 addition & 1 deletion dbt/task/debug.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
class DebugTask(BaseTask):
def path_info(self):
open_cmd = dbt.clients.system.open_dir_cmd()
profiles_dir = dbt.config.DEFAULT_PROFILES_DIR
profiles_dir = dbt.config.PROFILES_DIR

message = PROFILE_DIR_MESSAGE.format(
open_cmd=open_cmd,
Expand Down
2 changes: 1 addition & 1 deletion dbt/task/init.py
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ def get_addendum(self, project_name, profiles_path):
def run(self):
project_dir = self.args.project_name

profiles_dir = dbt.config.DEFAULT_PROFILES_DIR
profiles_dir = dbt.config.PROFILES_DIR
profiles_file = os.path.join(profiles_dir, 'profiles.yml')

self.create_profiles_dir(profiles_dir)
Expand Down

0 comments on commit 6d66ab0

Please sign in to comment.