#!/bin/sh

usage()
{
	echo "usage: ${0##*/} file.html ID [ user@mysite.xxx ]"
	echo "file.html 	- исходная статья (будет использован текст между тегами <body></body>"
	echo "ID		- идентификатор статьи на сайте"
	echo "user@mysite.xxx - сайт на котором обновляется статья. Необязательный параметр, по умолчанию берётся из настроек(USER@HOST)."
	echo "Используйте --help для получения подробной информации"
}

help()
{
	cat <<EOF

usage: ${0##*/} file.html ID [ user@mysite.xxx ]"

ВНИМАНИЕ! 
ОБНОВЛЯТЬ МОЖНО ТОЛЬКО УЖЕ СОЗДАННЫЕ СТАТЬИ!!!
СТАРАЯ СТАТЬЯ БУДЕТ БЕЗВОЗВРАТНО УТЕРЯНА!!!
(если предварительно не сделать dump базы данных)

Общая часть
===========
Для доступа к сайту используются настройки из файла /usr/local/etc/mambo-publish.cfg
Там пропичсаны общие(глобальные) настройки.
Вам нужно дополнительно задать ещё несколько параметров.
Для это необходимо создать у себя в домашнем каталоге 
файл '.mambo-publish.cfg' и в нём определить следующие параметры:

USER=your name	# Можно не задавать. По умолчанию используется ваше системное имя.
HOST=site host	# Имя хоста на котором размещён сайт. По умолчанию будет использован localhost.
PORT=ssh port	# Задавать не обязательно. Если не задан используется порт по умолчанию.

Так же можно переопределить общие настройки:
DESTSIR - куда копировать исходный файл на сервере. По умолчанию копируется в tmp.
BINDIR  - путь до скрипта обновления. По умолчанию используется '/usr/local/bin'.

ПРИМЕЧАНИЕ: На сайте срипт обовления иметет свой конфигурационный файл. 
			Который должен быть предварительно настроен. 

Создание статьи
===============
(пока) Создание статьи возможно только непосредственно на сайте
через web-интерфес мамбы...

Обновление статьи
=================
Для обновления необходимо запустить скрипт указать ему исходный html-файл
и ID статьи. При успешном обновлении в конце будет выдано сообщение
'ПОздравляю. Статья успешно обновлена'
(к сожалению текст будет в html-тегах).

Для того чтобы узнать ID статьи можно воспользоватся одним из вариантов:

Вариант 1:
Зайти на сайт в зону администратора (http://xxx.mysite.xxx/administrator) 
и в разделе "Материалы"(Content) найти раздел в котором размещена ваша статья.
Выбрав это раздел высветится список всех статей в данном разделе и в этом же
списке будет колонка "ID". 

Вариант 2:
Найти на сайте свою статью. При этом в браузере строка адреса 
будет иметь примерно следующий вид
http://www.mysite.xxx/content/view/85/
или
http://www.mysite.xxx/index.php?xxx=yyy&view=85&zzz=...

Цифра идущая после поля 'view' и есть идентификатор данной статьи!

EOF
}

[ "$1" == "--help" ] && help && exit 0;
[ "$1" == "-h" ] && help && exit 0;


[ -z "$1" ] && usage && exit 0 || file=$1
[ -z "$2" ] && usage && exit 0 || cid=$2

# Вставляем глобальные настройки
[ -a /etc/etersoft/mambo-publish.cfg ] && . /etc/etersoft/mambo-publish.cfg

# локальные настройки пользователя (если есть)
[ -a $HOME/.mambo-publish.cfg ] && . $HOME/.mambo-publish.cfg

[ -n "$USER" ] && SITE=$USER@$HOST || SITE=$HOST

[ -n "$3" ] && SITE=$3

# проверка настроек
#[ -z "$USER" ] && echo "В настройках не задан параметр USER" && exit 1;
[ -z "$DESTDIR" ] && echo "В настройках не задан параметр DESTDIR" && exit 1;
[ -z "$SITE" ] && echo "Не задан параметр HOST." && exit 1;

# Если задан порт, о формируем соответствующий параметр...
scp_cfgPORT=
ssh_cfgPORT=
[ -n "$PORT" ] && scp_cfgPORT="-P $PORT" && ssh_cfgPORT="-p $PORT";

iconv -t utf8 <$file >$file.tmp.utf8 || exit 1

#  Выполнение команды
scp $scp_cfgPORT $file.tmp.utf8 $SITE:$DESTDIR/$file && \
ssh $ssh_cfgPORT $SITE chmod 'a+r' $DESTDIR/$file && \
ssh $ssh_cfgPORT $SITE ${BINDIR}publisher $DESTDIR/$file $cid 1>/dev/null && echo "OK.." || echo "FAILED..."

rm -f $file.tmp.utf8
# | grep -v 'Notice'
