aboutsummaryrefslogtreecommitdiff
blob: 132231529f061c8d34882bfcdbe53607d0d94b03 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import os

""" Helper functions used in tatt"""

## Getting unique elements of a list ##
def unique(seq, idfun=None):
    """Returns the unique elements in a list
    order preserving"""
    if idfun is None:
        def idfun(x): return x
        seen = {}
        result = []
        for item in seq:
            marker = idfun(item)
            # in old Python versions:
            # if seen.has_key(marker)
            # but in new ones:
            if marker in seen: continue
            seen[marker] = 1
            result.append(item)
    return result

def get_repo_dir(repodir):
    # Prefer the repo dir in the config
    if repodir:
        if os.path.isdir(repodir):
            return repodir
        else:
            raise ValueError("Repo dir does not seem to be a directory")

    # No path given in config
    if os.path.isdir("/var/db/repos/gentoo/"):
        print("Using /var/db/repos/gentoo/ as fallback")
        return "/var/db/repos/gentoo"
    elif os.path.isdir("/usr/portage/"):
        print("Using /usr/portage/ as fallback")
        return "/usr/portage/"

    raise ValueError("Repo dir not given and fallbacks failed")