Workflow - roubles/macmounter GitHub Wiki

The actual workflow is pretty simple:

macmounter first runs MOUNT_TEST_CMD
    we run MOUNT_TEST_CMD:
    if MOUNT_TEST_CMD returns 0: we do nothing, we assume the mount is active.
    if MOUNT_TEST_CMD returns 1 (or no MOUNT_TEST_CMD) specified : we see if the server is 
                                                                   accessible. For this, macmounter runs PING_CMD
        if PING_CMD returns 0 (or no PING_CMD specified): we start the mount process
            we run PRE_MOUNT_CMD, we aren't really interested in the success or failure of this command
            we run MOUNT_CMD
            if MOUNT_CMD returns 0:
                we will run MOUNT_SUCCESS_CMD (if this is the first time we succeeded mounting)
                we will run POST_MOUNT_CMD, we aren't really interested in the success or failure of this command
                we back off for RECHECK_INTERVAL_SECONDS_MOUNT_SUCCESS seconds
            if MOUNT_CMD returns 1:
                we will run LOST_MOUNT_CMD (if we were previously mounted)
                we will run MOUNT_FAILURE_CMD (if this is the first time we failed)
                we will run POST_MOUNT_CMD, we aren't really interested in the success or failure of this command
                we backoff for RECHECK_INTERVAL_SECONDS_MOUNT_FAILURE seconds
        if PING_CMD returns 1: we check if there is a wake up command
            if there is a wakeup command (WAKE_CMD) we try that and retry the PING_CMD
                We will retry the wakeup command WAKE_ATTEMPTS times
                Finally, after waking up, if ping still fails, we back off for 
                RECHECK_INTERVAL_SECONDS_PING_FAILURE seconds
            if there is no wakeup command, we back off for RECHECK_INTERVAL_SECONDS_PING_FAILURE seconds