#!/bin/sh
### BEGIN INIT INFO
# Provides:          ec2-init-user-data
# Required-Start:    $network $local_fs ec2-init
# Required-Stop:
# Should-Start:      $named
# Should-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Consumes info given to instance in user-data
# Description:       If user data is given to instance, and it appears to be
#                    executable, this will run it (see ec2-run-user-data)
### END INIT INFO

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
NAME=ec2-init

. /lib/lsb/init-functions

run_once() {
    per_id=$1
    action_id=$2

    semaphore="/var/lib/ec2/$action_id.$per_id"

    if ! [ -e "$semaphore" ]
    then
        touch "$semaphore"
        return 0
    fi
    return 1
}

run_once_per_ami() {
    action_id=$1
    ami=`ec2-get-info --ami-id | cut -f2 -d\ `
    run_once $ami $action_id
}

case "$1" in
    start)
        if ! ec2-is-compat-env --quiet; then
           log_daemon_msg "ec2-init disabled, not running EC2 user data"
           log_end_msg 0
           exit 0
        fi
        if run_once_per_ami user-data
        then
            log_daemon_msg "Running EC2 user data"
            if ec2-run-user-data 2>&1 | logger -t "user-data"
            then
                log_end_msg 0
            else
                log_end_msg 1
            fi
        fi
        ;;
    stop)
        exit 0
        ;;
    restart|force-reload)
        exec $0 start
        ;;
    *)
        N=/etc/init.d/$NAME
        echo "Usage: $N {start|stop|restart|force-reload|status}" >&2
        exit 1
        ;;
esac

exit 0
