#!/usr/bin/env python
# Copyright 2016 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

from os import path as os_path


NODE_MODULES = os_path.join(os_path.dirname(__file__), 'node_modules')


def _path_in_node_modules(*args):
  return os_path.join(NODE_MODULES, *args)


def PathToVulcanize():
  return _path_in_node_modules('vulcanize', 'bin', 'vulcanize')


def PathToCrisper():
  return _path_in_node_modules('crisper', 'bin', 'crisper')


def PathToPolymerCssBuild():
  return _path_in_node_modules('polymer-css-build', 'bin', 'polymer-css-build')


def PathToUglifyJs():
 return _path_in_node_modules('uglifyjs', 'bin', 'uglifyjs')
