public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
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")


             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