summaryrefslogtreecommitdiffstats
path: root/linhes/linhes-dev/chk_aur_pkg.py
blob: 0594e746b50a24e3692a6ec8a551fcdd4c7a1c6d (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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
#!/usr/bin/python
#Checks the aur version and compares it to the /data/dev/linhes_pkgbuild/linhes directory.


import os,sys
import shutil
import urllib.request, urllib.error, urllib.parse
import re
import subprocess
import glob

def getArchVer():
    try:
        archVer = subprocess.check_output(["package-query", "-A", "-i", "-f %v", "--nocolor", currDirName])
        archVer = archVer.strip().decode('utf-8')
        return archVer
    except:
        return "None"

def getLHVer():
    pkgfile = currDir + "/PKGBUILD"
    if not os.path.isfile(pkgfile):
        print(currDirName + " version in LH PKGBUILD is:   Unknown")
        print("    Can't find",pkgfile)
        #sys.exit(2)
    else:
        LHVer=""
        variables=["pkgbase", "pkgname", "pkgver", "pkgrel", "epoch"]
        # Loop over contents to get our variables
        # Use bash to do it because PKGBUILDs are very loose with their format
        for item in variables:
            v = subprocess.Popen(['/bin/bash','-c', 'source ' +
                                 pkgfile +
                                 '; echo ${' + item + '[@]}'],
                                 stdout = subprocess.PIPE,)
            value = v.communicate()[0].strip(b'\n')
            value = value.decode('utf-8')
            if item == "pkgbase":
                pkgbase = value
            elif item == "pkgname":
                pkgname = value
                pkglist = list(value.split())
            elif item == "epoch":
                if value:
                    epoch = "%s:" %value
                    LHVer=epoch
            elif item == "pkgver":
                pkgver = value
            elif item == "pkgrel":
                pkgrel = value
        LHVer=LHVer + pkgver + "-" + pkgrel
        return LHVer
#        print(currDirName + " version in LH PKGBUILD is:   " + LHVer)

def main():
    global currDirName
    global currDir

    LHdir="/data/dev/linhes_pkgbuild/linhes/*"

    for currDir in glob.glob(LHdir):
        if os.path.isdir(currDir):
            currDirName = os.path.basename(currDir)
            if currDirName == "mythtv":
                continue
            archVer = getArchVer()
            if archVer == "None":
                continue
            #print("Searching for " + currDirName + " on archlinux.org...")
            #print("AUR:",archVer)
            LHVer = getLHVer()
            #print("LH:",LHVer)
            archNewer = subprocess.run(['/bin/vercmp', archVer , LHVer], capture_output=True, text=True)
            if archNewer.stdout == "1\n":
                print(currDirName,"needs update: [AUR]:",archVer,"[LH]:",LHVer)

if __name__ == "__main__":
    print("--------------------------")
    main()
    print("--------------------------")