From: "Jauhien Piatlicki" <piatlicki@gmail.com>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/g-sorcery:master commit in: /, g_sorcery/, gs_ctan/
Date: Tue, 16 Jul 2013 17:11:51 +0000 (UTC) [thread overview]
Message-ID: <1373994691.e5e7caaf05b14567fe851a3fb2655546d8dfef9c.jauhien@gentoo> (raw)
commit: e5e7caaf05b14567fe851a3fb2655546d8dfef9c
Author: Jauhien Piatlicki <jpiatlicki <AT> zertisa <DOT> com>
AuthorDate: Tue Jul 16 17:11:31 2013 +0000
Commit: Jauhien Piatlicki <piatlicki <AT> gmail <DOT> 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=e5e7caaf
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 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE repositories SYSTEM "/dtd/repositories.dtd">
+<repositories xmlns="" version="1.0">
+<repo quality="experimental" status="unofficial">
+ <name>ctan</name>
+ <description>CTAN packages</description>
+ <homepage>http://www.ctan.org/</homepage>
+ <owner>
+ <email>piatlicki@gmail.com</email>
+ <name>Jauhien Piatlicki</name>
+ </owner>
+ <source type="g-sorcery">gs-ctan ctan</source>
+</repo>
+</repositories>
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")
next reply other threads:[~2013-07-16 17:11 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-07-16 17:11 Jauhien Piatlicki [this message]
-- strict thread matches above, loose matches on Subject: below --
2013-07-16 23:09 [gentoo-commits] proj/g-sorcery:master commit in: /, g_sorcery/, gs_ctan/ Jauhien Piatlicki
2013-07-19 16:20 Jauhien Piatlicki
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1373994691.e5e7caaf05b14567fe851a3fb2655546d8dfef9c.jauhien@gentoo \
--to=piatlicki@gmail.com \
--cc=gentoo-commits@lists.gentoo.org \
--cc=gentoo-dev@lists.gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox