From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) by finch.gentoo.org (Postfix) with ESMTP id 87D03138200 for ; Tue, 16 Jul 2013 23:09:48 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 11620E0A83; Tue, 16 Jul 2013 23:09:48 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) (using TLSv1 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 815F6E0A89 for ; Tue, 16 Jul 2013 23:09:42 +0000 (UTC) Received: from hornbill.gentoo.org (hornbill.gentoo.org [94.100.119.163]) (using TLSv1 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 2AFE933E68A for ; Tue, 16 Jul 2013 23:09:41 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by hornbill.gentoo.org (Postfix) with ESMTP id 015B0E5468 for ; Tue, 16 Jul 2013 23:09:38 +0000 (UTC) From: "Jauhien Piatlicki" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Jauhien Piatlicki" Message-ID: <1373994691.91605f417bd7c912cbb5502a91da3872ed3e88d2.jauhien@gentoo> Subject: [gentoo-commits] proj/g-sorcery:master commit in: /, g_sorcery/, gs_ctan/ X-VCS-Repository: proj/g-sorcery X-VCS-Files: g_sorcery/g_sorcery.py gs-ctan-overlays.xml gs-ctan.json gs_ctan/__init__.py gs_ctan/backend.py gs_ctan/ctan_db.py X-VCS-Directories: / g_sorcery/ gs_ctan/ X-VCS-Committer: jauhien X-VCS-Committer-Name: Jauhien Piatlicki X-VCS-Revision: 91605f417bd7c912cbb5502a91da3872ed3e88d2 X-VCS-Branch: master Date: Tue, 16 Jul 2013 23:09:38 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Archives-Salt: 8167b332-ba44-47ad-acca-1b15b4746ab0 X-Archives-Hash: 0fa30c7f0d2f235c89c37e5e17199884 commit: 91605f417bd7c912cbb5502a91da3872ed3e88d2 Author: Jauhien Piatlicki gmail com> AuthorDate: Tue Jul 16 17:11:31 2013 +0000 Commit: Jauhien Piatlicki gmail com> CommitDate: Tue Jul 16 17:11:31 2013 +0000 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/g-sorcery.git;a=commit;h=91605f41 gs-ctan: initial commit --- g_sorcery/g_sorcery.py | 4 +++- gs-ctan-overlays.xml | 14 ++++++++++++++ gs-ctan.json | 8 ++++++++ gs_ctan/__init__.py | 2 ++ gs_ctan/backend.py | 32 ++++++++++++++++++++++++++++++++ gs_ctan/ctan_db.py | 36 ++++++++++++++++++++++++++++++++++++ 6 files changed, 95 insertions(+), 1 deletion(-) diff --git a/g_sorcery/g_sorcery.py b/g_sorcery/g_sorcery.py index 690f4cf..6beb565 100644 --- a/g_sorcery/g_sorcery.py +++ b/g_sorcery/g_sorcery.py @@ -70,9 +70,11 @@ def main(): def get_backend(package): + logger = Logger() try: module = importlib.import_module(package + '.backend') - except ImportError: + except ImportError as error: + logger.error("error importing backend: " + str(error)) return None return module diff --git a/gs-ctan-overlays.xml b/gs-ctan-overlays.xml new file mode 100644 index 0000000..0faceb6 --- /dev/null +++ b/gs-ctan-overlays.xml @@ -0,0 +1,14 @@ + + + + + ctan + CTAN packages + http://www.ctan.org/ + + piatlicki@gmail.com + Jauhien Piatlicki + + gs-ctan ctan + + diff --git a/gs-ctan.json b/gs-ctan.json new file mode 100644 index 0000000..0bee1a2 --- /dev/null +++ b/gs-ctan.json @@ -0,0 +1,8 @@ +{ + "package": "gs_ctan", + "repositories": { + "ctan": { + "repo_uri": "http://mirror.ctan.org/systems/texlive/tlnet/" + } + } +} diff --git a/gs_ctan/__init__.py b/gs_ctan/__init__.py new file mode 100644 index 0000000..cf529d7 --- /dev/null +++ b/gs_ctan/__init__.py @@ -0,0 +1,2 @@ +#!/usr/bin/env python + diff --git a/gs_ctan/backend.py b/gs_ctan/backend.py new file mode 100644 index 0000000..a9d0581 --- /dev/null +++ b/gs_ctan/backend.py @@ -0,0 +1,32 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +""" + backend.py + ~~~~~~~~~~ + + CTAN backend + + :copyright: (c) 2013 by Jauhien Piatlicki + :license: GPL-2, see LICENSE for more details. +""" + +import os + +from g_sorcery.backend import Backend +from g_sorcery.metadata import MetadataGenerator +from g_sorcery.ebuild import EbuildGenerator +from g_sorcery.eclass import EclassGenerator +from g_sorcery.fileutils import get_pkgpath + +from .ctan_db import CtanDB + + +class CtanEclassGenerator(EclassGenerator): + def __init__(self): + super(CtanEclassGenerator, self).__init__(os.path.join(get_pkgpath(__file__), 'data')) + + +instance = Backend(CtanDB, + EbuildGenerator, EbuildGenerator, + CtanEclassGenerator, MetadataGenerator, sync_db=False) diff --git a/gs_ctan/ctan_db.py b/gs_ctan/ctan_db.py new file mode 100644 index 0000000..0014c6c --- /dev/null +++ b/gs_ctan/ctan_db.py @@ -0,0 +1,36 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +""" + ctan_db.py + ~~~~~~~~~~ + + CTAN package database + + :copyright: (c) 2013 by Jauhien Piatlicki + :license: GPL-2, see LICENSE for more details. +""" + +import os + +from g_sorcery.compatibility import TemporaryDirectory +from g_sorcery.g_collections import Package +from g_sorcery.package_db import PackageDB +from g_sorcery.fileutils import wget +from g_sorcery.exceptions import SyncError + +class CtanDB(PackageDB): + def __init__(self, directory, repo_uri="", db_uri=""): + super(CtanDB, self).__init__(directory, repo_uri, db_uri) + + def generate_tree(self): + tempdir = TemporaryDirectory() + + print(self.repo_uri) + tlpdb_uri = self.repo_uri + '/tlpkg/texlive.tlpdb.xz' + if wget(tlpdb_uri, tempdir.name): + raise SyncError('sync failed: ' + self.repo_uri) + + del tempdir + + print("works")