Determine if the specified resource is remote or local.

    We can handle three remote resource types from the command line,
    remote RPMs, directory indexes, and input files. They're
    classified by matching the following patterns:

    - Remote RPMS start with http[s] and end with .RPM
    - Directory indexes start with http[s] and don't end in .RPM
    - Input files don't match above, exist() on local filesystem

def classify_resource_type(resource):
    """
    Determine if the specified resource is remote or local.

    We can handle three remote resource types from the command line,
    remote RPMs, directory indexes, and input files. They're
    classified by matching the following patterns:

    - Remote RPMS start with http[s] and end with .RPM
    - Directory indexes start with http[s] and don't end in .RPM
    - Input files don't match above, exist() on local filesystem
    """
    if is_remote_package(resource):
        juicer.utils.Log.log_debug("Classified %s as a remote package" % resource)
        return REMOTE_PKG_TYPE
    elif is_directory_index(resource):
        juicer.utils.Log.log_debug("Classified %s as a directory index" % resource)
        return REMOTE_INDEX_TYPE
    elif exists(expanduser(resource)):
        juicer.utils.Log.log_debug("Classified %s as an input file" % resource)
        return REMOTE_INPUT_FILE_TYPE
    else:
        juicer.utils.Log.log_debug("Classified %s as unclassifiable" % resource)
        return None