Skip to content

Commit fc62bd5

Browse files
committed
feat: add cli flag for custom output directory
1 parent baae4a7 commit fc62bd5

File tree

1 file changed

+12
-6
lines changed

1 file changed

+12
-6
lines changed

dbt2looker/cli.py

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
from . import generator
1616

1717
MANIFEST_PATH = './manifest.json'
18-
LOOKML_OUTPUT_DIR = './lookml'
18+
DEFAULT_LOOKML_OUTPUT_DIR = './lookml'
1919

2020

2121
def get_manifest(prefix: str):
@@ -82,6 +82,12 @@ def run():
8282
type=str,
8383
default='INFO',
8484
)
85+
argparser.add_argument(
86+
'--output-dir',
87+
help='Path to a directory that will contain the generated lookml files',
88+
default=DEFAULT_LOOKML_OUTPUT_DIR,
89+
type=str,
90+
)
8591
args = argparser.parse_args()
8692
logging.basicConfig(
8793
level=getattr(logging, args.log_level),
@@ -104,20 +110,20 @@ def run():
104110
generator.lookml_view_from_dbt_model(model, adapter_type)
105111
for model in typed_dbt_models
106112
]
107-
pathlib.Path(os.path.join(LOOKML_OUTPUT_DIR, 'views')).mkdir(parents=True, exist_ok=True)
113+
pathlib.Path(os.path.join(args.output_dir, 'views')).mkdir(parents=True, exist_ok=True)
108114
for view in lookml_views:
109-
with open(os.path.join(LOOKML_OUTPUT_DIR, 'views', view.filename), 'w') as f:
115+
with open(os.path.join(args.output_dir, 'views', view.filename), 'w') as f:
110116
f.write(view.contents)
111117

112-
logging.info(f'Generated {len(lookml_views)} lookml views in {os.path.join(LOOKML_OUTPUT_DIR, "views")}')
118+
logging.info(f'Generated {len(lookml_views)} lookml views in {os.path.join(args.output_dir, "views")}')
113119

114120
# Generate Lookml models
115121
lookml_models = [
116122
generator.lookml_model_from_dbt_model(model, dbt_project_config.name)
117123
for model in typed_dbt_models
118124
]
119125
for model in lookml_models:
120-
with open(os.path.join(LOOKML_OUTPUT_DIR, model.filename), 'w') as f:
126+
with open(os.path.join(args.output_dir, model.filename), 'w') as f:
121127
f.write(model.contents)
122-
logging.info(f'Generated {len(lookml_models)} lookml models in {LOOKML_OUTPUT_DIR}')
128+
logging.info(f'Generated {len(lookml_models)} lookml models in {args.output_dir}')
123129
logging.info('Success')

0 commit comments

Comments
 (0)