Check the filesystem for the existence of a .plist file matching the job label.
    Optionally specify one or more scopes to search (default all).

    :param label: string
    :param scope: tuple or list or oneOf(USER, USER_ADMIN, DAEMON_ADMIN, USER_OS, DAEMON_OS)

def discover_filename(label, scopes=None):
    '''
    Check the filesystem for the existence of a .plist file matching the job label.
    Optionally specify one or more scopes to search (default all).

    :param label: string
    :param scope: tuple or list or oneOf(USER, USER_ADMIN, DAEMON_ADMIN, USER_OS, DAEMON_OS)
    '''
    if scopes is None:
        scopes = [k for k in PLIST_LOCATIONS]
    elif not isinstance(scopes, (list, tuple)):
        scopes = (scopes, )
    for thisscope in scopes:
        plistfilename = compute_filename(label, thisscope)
        if os.path.isfile(plistfilename):
            return plistfilename
    return None