#!/bin/sh

# $Id:$

# completion для zsh:
# function what_to_do_with_beta { reply=($(direct-mk-quasi LIST) ); }
# compctl -K what_to_do_with_beta mk

# запоминаем путь в переменной окружения, вдруг пригодится потом
export DIRECT_MK_ORIG_DIR=`pwd`

# переходим в корень рабочей копии
# первым позиционным параметром может быть путь к рабочей копии
# во избежание путаницы между именами поддиректорий и существующих целей для quasi-make воспринимаем первый параметр как путь только если он абсолютный
if [ ! -z $1 ] && [ -d $1 ] && [ `echo $1 | grep -c '^/'` -eq 1 ]
then
    cd $1
    shift
else
    [ `hostname |grep ppcdev` ] && [ `pwd|grep "beta"` ] && c=`pwd|sed "s/\<\(beta\>[^\/]*\)\/.*/\1/"` && cd $c
    [ `hostname |grep ppcmoddev` ] && [ `pwd|grep "mod"` ] && c=`pwd|sed "s/\<\(mod\>[^\/]*\)\/.*/\1/"` && cd $c
fi

# персональные правила
my_rules=~/MyDirectMkRules.pm
if [ -f $my_rules ]
then
    additional_files="-f $my_rules"
fi

# глобальные правила
global_rules=/etc/quasi-make/GlobalRules.pm
if [ -f $global_rules ]
then
    additional_files="-f $global_rules "$additional_files
fi

# правила из рабочей копии 
if [ ! -d ./.svn  -a ! -d ./store -a ! -d ./arcadia ]
then
    action_files=''
elif [ -d ./.svn ] 
then
    # svn-рабочая копия с perl-Директом
    action_files='-f ./etc/quasi-make/General.pm -f ./etc/quasi-make/Beta.pm'
elif [ -d ./arcadia -a -d ./arcadia/.svn ]
then
    # svn-рабочая копия Аркадии, без perl-Директа снаружи
    if [ -d ./arcadia/direct/perl/etc/quasi-make ]
    then
        action_files='-f ./etc/quasi-make/General.pm -f ./etc/quasi-make/Beta.pm'
        quasi_make_path_param="-C arcadia/direct/perl"
    fi
elif [ -d ./store -a -d ./arcadia ]
then
    # arc-рабочая копия
    # arc определеяем по наличию каталогов store и arcadia. Это не 100% метод, но для начала пойдет. Какой способ самый правильный -- еще вопрос. 
    action_files='-f ./etc/quasi-make/General.pm -f ./etc/quasi-make/Beta.pm'
    # Если arc, то в quasi-make передадим параметр "сделай cd внутрь каталога perl" -- это самый простой способ, чтобы quasi-make нашел модули
    quasi_make_path_param="-C arcadia/direct/perl"
else 
    # невозможное состояние
    echo "Can't recognize type of working copy, stop"
    exit 2
fi


to_run="quasi-make.pl $quasi_make_path_param $action_files $additional_files $@"
echo to run: $to_run
$to_run

