blob: f8eb23749f0284c162b5ad11041093315b7c3a43 [file] [log] [blame]
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
# Resolve our absolute path
# resolve links - $0 may be a softlink
import os.path
import sys
# Find the config file
def findCfgFile():
defaultConfDir = None
if 'HCAT_PREFIX' in os.environ and os.path.exists(os.environ['HCAT_PREFIX'] + \
os.path.sep + buildPath(["etc","hcatalog"])):
defaultConfDir = os.environ['HCAT_PREFIX'] + os.path.sep + \
buildPath(["etc", "hcatalog"])
else:
defaultConfDir = buildAbsPath(["etc", "hcatalog"])
if 'HCAT_CONF_DIR' not in os.environ:
os.environ['HCAT_CONF_DIR'] = defaultConfDir
def findHadoop():
if 'HADOOP_HOME' in os.environ and os.path.exists(os.environ['HADOOP_HOME'] \
+ os.path.sep + buildPath(["bin", "hadoop"])):
os.environ['HADOOP_PREFIX'] = os.environ['HADOOP_HOME']
elif 'HCAT_PREFIX' in os.environ and os.path.exists(os.environ['HCAT_PREFIX'] \
+ os.path.sep + buildPath(["bin", "hadoop"])):
os.environ['HADOOP_PREFIX'] = os.environ['HCAT_PREFIX']
elif not ('HADOOP_PREFIX' in os.environ and \
os.path.exists(os.environ['HADOOP_PREFIX'] + os.path.sep + \
buildPath(["bin", "hadoop"]))):
sys.exit("Hadoop not found. Set HADOOP_HOME to the directory containing Hadoop.")
def concatPath(x, y):
return x + os.path.sep + y
def buildPath(pathElements):
return reduce(concatPath, pathElements)
def buildAbsPath(pathElements):
return os.path.sep + buildPath(pathElements)
def findHive():
# TODO, check for Hive in path. For now, just look in known locations and
# HIVE_HOME
# No need to be OS independent checkinf for /usr/bin/hive since this is an
# RPM specific path
# If HIVE_HOME is set it overrides default locations
if os.path.exists("/usr/bin/hive") and ('HIVE_HOME' not in os.environ):
os.environ['HIVE_HOME'] = buildAbsPath(["usr", "lib", "hive"]);
if 'HIVE_HOME' not in os.environ:
# the api user determines how to handle the non-existence of HIVE_HOME
return
if os.path.exists(os.path.join(os.environ['HIVE_HOME'], 'lib')):
os.environ['HIVE_LIB_DIR'] = os.path.join(os.environ['HIVE_HOME'], 'lib')
else:
return
if os.path.exists(os.path.join(os.environ['HIVE_HOME'], 'conf')):
os.environ['HIVE_CONF_DIR'] = os.path.join(os.environ['HIVE_HOME'], 'conf')
else:
return
return
def findHCatPrefix(binDir):
os.environ['HCAT_PREFIX'] = binDir + '..' + os.path.sep
return os.environ['HCAT_PREFIX']
def getHCatLogDir(binDir):
return os.path.join(binDir, '..', 'var', 'log')