#!/bin/bash

# Copyright (c) 2011-2014 Benjamin Fleischer
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
#
# 1. Redistributions of source code must retain the above copyright notice, this
#    list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright notice,
#    this list of conditions and the following disclaimer in the documentation
#    and/or other materials provided with the distribution.
# 3. Neither the name of osxfuse nor the names of its contributors may be used
#    to endorse or promote products derived from this software without specific
#    prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.


function preinstall_main
{
    # Source libraries

    local library_path=""
    for library_path in "${BASH_SOURCE[0]%/*}/lib"/*.sh
    do
        if [[ -f "${library_path}" ]]
        then
            source "${library_path}" || return 1
        fi
    done

    common_log_initialize
    common_signal_trap_initialize

    # Uninstall previous version

    local version=""
    version="`installer_package_get_info com.google.macfuse.core version`"

    if [[ ${?} -ne 0 && "`macos_get_version`" = "10.5" && -e "/Library/Receipts/MacFUSE Core.pkg" ]]
    then
        # Note: Mac OS X 10.4 style packages like MacFUSE are not added to the
        # Mac OS X 10.5 installer database.

        version="2.0"
    fi

    if [[ -n "${version}" ]]
    then
        common_assert "version_is_version `string_escape "${version}"`"

        version_compare "${version}" 2.3
        if (( ${?} ==  1 ))
        then
            macos_unload_kext "com.google.filesystems.fusefs"
            osxfuse_uninstall_macfuse
        else
            osxfuse_uninstall_osxfuse_2_macfuse
        fi
    fi

    return 0
}

preinstall_main "${@}"
