]> git.ipfire.org Git - people/stevee/pakfire.git/blame - python/pakfire/packages/__init__.py
Add experimental support for package signatures.
[people/stevee/pakfire.git] / python / pakfire / packages / __init__.py
CommitLineData
47a4cb89 1#!/usr/bin/python
b792d887
MT
2###############################################################################
3# #
4# Pakfire - The IPFire package management system #
5# Copyright (C) 2011 Pakfire development team #
6# #
7# This program is free software: you can redistribute it and/or modify #
8# it under the terms of the GNU General Public License as published by #
9# the Free Software Foundation, either version 3 of the License, or #
10# (at your option) any later version. #
11# #
12# This program is distributed in the hope that it will be useful, #
13# but WITHOUT ANY WARRANTY; without even the implied warranty of #
14# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
15# GNU General Public License for more details. #
16# #
17# You should have received a copy of the GNU General Public License #
18# along with this program. If not, see <http://www.gnu.org/licenses/>. #
19# #
20###############################################################################
47a4cb89 21
8276111d
MT
22import tarfile
23
68c0e769 24from file import BinaryPackage, FilePackage, InnerTarFile, SourcePackage
fa6d335b 25from installed import DatabasePackage, InstalledPackage
c605d735 26from solv import SolvPackage
47a4cb89 27
47a4cb89 28from make import Makefile
677ff42a
MT
29
30from pakfire.constants import *
31
32def open(pakfire, repo, filename):
33 """
34 Function to open all packages and return the right object.
35
36 Abstractly, this detects if a package is a source package or
37 not.
38 """
39 # XXX We should make this check much better...
8276111d
MT
40
41 # Simply check if the given file is a tarfile.
42 if tarfile.is_tarfile(filename):
43 if filename.endswith(".src.%s" % PACKAGE_EXTENSION):
44 return SourcePackage(pakfire, repo, filename)
45
46 return BinaryPackage(pakfire, repo, filename)
677ff42a 47
7c8f2953
MT
48 elif filename.endswith(".%s" % MAKEFILE_EXTENSION):
49 return Makefile(pakfire, filename)