#!/usr/bin/env python3

import os
import sys

def svn_checkout():
    print("\033[1m\033[37mChecking out repositories\033[0m")
    os.system("cd /tmp && svn checkout --depth=empty svn://svn.archlinux.org/packages")
    os.system("cd /tmp && svn checkout --depth=empty svn://svn.archlinux.org/community")

def svn_checkout_package(package):
    prepo,pname = package.split('/')
    repo = "packages"
    if prepo in ["community", "multilib"]:
        repo = "community"

    print("\n\033[1m\033[37mChecking out package {0} of repository {1}\033[0m".format(pname, repo))
    os.system("cd /tmp/{0} && svn update {1}".format(repo, pname))

def makepkg_build(package):
    prepo, pname = package.split('/')
    repo = "packages"
    if prepo in ["community", "multilib"]:
        repo = "community"

    print("\n\033[1m\033[37mBuilding {0}\033[0m".format(package))
    os.system("cd /tmp/{0}/{1}/trunk && makepkg -c -C -f -s --noconfirm --noprogressbar".format(repo, pname)) 

def cleanup():
    os.system("rm -rf /tmp/packages /tmp/community")

def load_packages():
    f = None
    if len(sys.argv) < 2:
        sys.exit(0)
    if sys.argv[1] == "-":
        f = sys.stdin
    else
        f = open(sys.argv[1])
    ret = [l.rstrip('\n') for l in f]
    f.close()
    return ret

packages = load_packages()

svn_checkout()

for package in packages:
    svn_checkout_package(package)

for package in packages:
    makepkg_build(package)

cleanup()
