#!/bin/sh
#
# 2010 Nico Schottelius (nico-cdist at schottelius.org)
#
# This file is part of cdist.
#
# cdist is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# cdist is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
#
#
# Print configuration directories - helper for all other scripts
#

# Values can be overriden from outside, so you can
# customise paths as you like (for distributors, geeks and hackers)
: ${__cdist_config:=/etc/cdist}
: ${__cdist_manifest_dir:=$__cdist_config/manifests}
: ${__cdist_manifest_init:=$__cdist_manifest_dir/init}

: ${__cdist_type_dir:=$__cdist_config/types}

: ${__cdist_cache_dir:=$__cdist_config/cache}
: ${__cdist_cache_hosts:=$__cdist_cache_dir/hosts}
: ${__cdist_cache_bin:=$__cdist_cache_dir/bin}

: ${__cdist_explorer_dir:=$__cdist_config/explorers}

# Paths used on the target - must be kind of secure....
: ${__cdist_remote_base_dir:=/var/lib/cdist}
: ${__cdist_remote_explorer_dir:=$__cdist_remote_base/explorers}
: ${__cdist_remote_cache_dir:=$__cdist_remote_base/cache}
: ${__cdist_remote_cache_explorer:=$__cdist_remote_base/cache}
: ${__cdist_remote_cache_bin:=$__cdist_remote_base/bin}

# create basedir + tempfile for direct usage
# FIXME: remove on exit
: ${__cdist_tmp_dir:=$(mktemp -d "/tmp/cdist.XXXXXXXXXXXX")}
: ${__cdist_tmp_file:=$(mktemp "$__cdist_tmp_dir/cdist.XXXXXXXXXXXX")}

################################################################################
# cconf standard vars prefixed with cdist
__cdist_pwd="$(pwd -P)"
__cdist_mydir="${0%/*}";
__cdist_abs_mydir="$(cd "$__cdist_mydir" && pwd -P)"
__cdist_myname=${0##*/};
__cdist_abs_myname="$__cdist_abs_mydir/$__cdist_myname"


################################################################################
# Other constants

# Used for generating binaries in cdist-build-bin
__cdist_bin_prefix="__"

# Used for IDs
__cdist_sane_regexp='[A-Za-z0-9]*[-A-Za-z0-9_]*'

# Used to mark file that created a specific type
__cdist_object_source=".source"

################################################################################
# Function list
#
__cdist_debug_echo()
{
   if [ "$__cdist_debug" ]; then
      echo "Debug: $@"
   fi
}

__cdist_exit_err()
{
   echo "$@"
   exit 1
}

__cdist_usage()
{
   __cdist_exit_err "$__cdist_myname: $@"
}

__cdist_cache_host()
{
   echo "${__cdist_cache_hosts}/${__cdist_target_host}"
}