#!/bin/bash

## Should be executable N time in a row with same result.

. lib/common

set -e

uid=$(docker_get_uid "$SERVICE_NAME" "rsync")


LOGS=/var/log/rsync
mkdir -p "$SERVICE_DATASTORE/$LOGS"
touch "$SERVICE_DATASTORE/$LOGS/ssh-cmd-validate.log"
chown -v "$uid" "$SERVICE_DATASTORE/$LOGS" "$SERVICE_DATASTORE/$LOGS/ssh-cmd-validate.log"

rotated_count=$(relation-get rotated-count 2>/dev/null) || true
rotated_count=${rotated_count:-52}


## XXXvlab: a lot of this intelligence should be moved away into ``logrotate`` charm
DST="$CONFIGSTORE/$TARGET_SERVICE_NAME/etc/logrotate.d/$SERVICE_NAME"
file_put "$DST" <<EOF
/var/log/docker/$SERVICE_NAME/ssh-cmd-validate.log
{
    weekly
    missingok
    dateext
    dateyesterday
    dateformat _%Y-%m-%d
    extension .log
    rotate $rotated_count
    compress
    delaycompress
    notifempty
    create 640 $uid
    sharedscripts
}

/var/log/docker/$SERVICE_NAME/ssh-admin-cmd-validate.log
{
    weekly
    missingok
    dateext
    dateyesterday
    dateformat _%Y-%m-%d
    extension .log
    rotate $rotated_count
    compress
    delaycompress
    notifempty
    create 660 $uid
    sharedscripts
}

/var/log/docker/$SERVICE_NAME/target_*_rsync.log
{
    weekly
    missingok
    dateext
    dateyesterday
    dateformat _%Y-%m-%d
    extension .log
    rotate $rotated_count
    compress
    delaycompress
    notifempty
    create 640
    sharedscripts
}
EOF

config-add "\
services:
  $MASTER_TARGET_SERVICE_NAME:
    volumes:
      - $DST:/etc/logrotate.d/docker-${SERVICE_NAME}:ro
      - $SERVICE_DATASTORE$LOGS:/var/log/docker/$SERVICE_NAME:rw
  $MASTER_BASE_SERVICE_NAME:
    volumes:
      - $SERVICE_DATASTORE$LOGS:$LOGS:rw

"