~doctormo/apt-cat/trunk

« back to all changes in this revision

Viewing changes to bin/apt-cat

  • Committer: Martin Owens
  • Date: 2010-10-31 19:49:17 UTC
  • Revision ID: doctormo@gmail.com-20101031194917-07y6w88mkcbsnuge
Inital commit.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#!/usr/bin/python
 
2
#
 
3
# Copyright 2010 Martin Owens
 
4
#
 
5
# This program is free software: you can redistribute it and/or modify
 
6
#  it under the terms of the GNU General Public License as published by
 
7
#  the Free Software Foundation, either version 3 of the License, or
 
8
#  (at your option) any later version.
 
9
#
 
10
#  This program is distributed in the hope that it will be useful,
 
11
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
 
12
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
13
#  GNU General Public License for more details.
 
14
#
 
15
#  You should have received a copy of the GNU General Public License
 
16
#  along with this program.  If not, see <http://www.gnu.org/licenses/>
 
17
#
 
18
"""
 
19
List categories and packages in category.
 
20
"""
 
21
 
 
22
import sys
 
23
sys.path.insert(1, '../')
 
24
sys.path.insert(1, './')
 
25
 
 
26
from ThemeFinding import (
 
27
    iterate_packages, iterate_categories,
 
28
    NoCategoriesError, NoPackagesError, NoCategoryError
 
29
)
 
30
 
 
31
if len(sys.argv) < 2 or sys.argv[1] == '':
 
32
    sys.stderr.write("Usage:\n\n%s list|[category]\n" % sys.argv[0])
 
33
    sys.exit(1)
 
34
 
 
35
if sys.argv[1] == 'list':
 
36
    try:
 
37
        for cat in iterate_categories():
 
38
            if cat.is_installed():
 
39
                print cat.cid
 
40
            else:
 
41
                print cat.cid + "*"
 
42
    except NoCategoriesError:
 
43
        sys.stderr.write("No apt categories are yet installed.\n")
 
44
        sys.exit(1)
 
45
else:
 
46
    category = sys.argv[1]
 
47
    try:
 
48
        for package in iterate_packages([category]):
 
49
            if package.is_installed():
 
50
                print package.pid
 
51
            else:
 
52
                print package.pid + "*"
 
53
    except NoPackagesError:
 
54
        sys.stderr.write("No packages in category %s\n")
 
55
        sys.exit(2)
 
56
    except NoCategoryError:
 
57
        sys.stderr.write("Category %s is not installed\n")
 
58
        sys.exit(3)
 
59
 
 
60
sys.exit(0)
 
61