author | Bart Smaalders <Bart.Smaalders@Sun.COM> |
Fri, 01 Aug 2008 23:57:44 -0700 | |
changeset 443 | 5ffa5b7dac9c |
parent 409 | 713e20963dc2 |
child 1161 | 8285550f6028 |
permissions | -rw-r--r-- |
409
713e20963dc2
2314 shebang lines should use minimum python version
Shawn Walker <swalker@opensolaris.org>
parents:
239
diff
changeset
|
1 |
#!/usr/bin/python2.4 |
42
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
2 |
# |
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
3 |
# CDDL HEADER START |
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
4 |
# |
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
5 |
# The contents of this file are subject to the terms of the |
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
6 |
# Common Development and Distribution License (the "License"). |
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
7 |
# You may not use this file except in compliance with the License. |
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
8 |
# |
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
9 |
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE |
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
10 |
# or http://www.opensolaris.org/os/licensing. |
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
11 |
# See the License for the specific language governing permissions |
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
12 |
# and limitations under the License. |
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
13 |
# |
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
14 |
# When distributing Covered Code, include this CDDL HEADER in each |
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
15 |
# file and include the License file at usr/src/OPENSOLARIS.LICENSE. |
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
16 |
# If applicable, add the following below this CDDL HEADER, with the |
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
17 |
# fields enclosed by brackets "[]" replaced with your own identifying |
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
18 |
# information: Portions Copyright [yyyy] [name of copyright owner] |
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
19 |
# |
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
20 |
# CDDL HEADER END |
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
21 |
# |
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
22 |
|
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
23 |
# |
409
713e20963dc2
2314 shebang lines should use minimum python version
Shawn Walker <swalker@opensolaris.org>
parents:
239
diff
changeset
|
24 |
# Copyright 2008 Sun Microsystems, Inc. All rights reserved. |
42
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
25 |
# Use is subject to license terms. |
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
26 |
# |
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
27 |
|
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
28 |
import os |
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
29 |
import stat |
443
5ffa5b7dac9c
2589 pyc files generate lots of verify chaff
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
409
diff
changeset
|
30 |
import pkg.misc as misc |
42
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
31 |
|
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
32 |
from pkg.sysvpkg import SolarisPackage |
49
c3a70bdc4527
First cut of actions; make file transfer generic.
Danek Duvall <danek.duvall@sun.com>
parents:
42
diff
changeset
|
33 |
from pkg.actions import * |
42
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
34 |
|
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
35 |
typemap = { |
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
36 |
stat.S_IFBLK: "block-special", |
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
37 |
stat.S_IFCHR: "character-special", |
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
38 |
stat.S_IFDIR: "directory", |
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
39 |
stat.S_IFIFO: "fifo", |
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
40 |
stat.S_IFLNK: "link", |
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
41 |
stat.S_IFREG: "file", |
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
42 |
stat.S_IFSOCK: "socket" |
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
43 |
} |
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
44 |
|
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
45 |
class SolarisPackageDatastreamBundle(object): |
50 | 46 |
"""XXX Need a class comment.""" |
42
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
47 |
|
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
48 |
def __init__(self, filename): |
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
49 |
self.pkg = SolarisPackage(filename) |
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
50 |
self.pkgname = self.pkg.pkginfo["PKG"] |
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
51 |
self.filename = filename |
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
52 |
|
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
53 |
# SolarisPackage.manifest is a list. Cache it into a dictionary |
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
54 |
# based on pathname. The cpio archive contains the files as |
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
55 |
# they would be in the directory structure -- that is, under |
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
56 |
# install, reloc, or root, depending on whether they're i-type |
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
57 |
# files, relocatable files, or unrelocatable files. Make sure |
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
58 |
# we find the right object, even though the filenames in the |
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
59 |
# package map don't have these directory names. |
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
60 |
self.pkgmap = {} |
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
61 |
|
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
62 |
for p in self.pkg.manifest: |
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
63 |
if p.type in "fevd": |
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
64 |
if p.pathname.startswith("/"): |
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
65 |
dir = "root" |
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
66 |
else: |
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
67 |
dir = "reloc/" |
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
68 |
self.pkgmap[dir + p.pathname] = p |
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
69 |
elif p.type == "i": |
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
70 |
self.pkgmap["install/" + p.pathname] = p |
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
71 |
|
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
72 |
def __iter__(self): |
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
73 |
"""Iterate through the datastream. |
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
74 |
|
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
75 |
This is different than the directory-format package bundle, |
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
76 |
which iterates through the package map. We do it this way |
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
77 |
because the cpio archive might not be in the same order as |
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
78 |
the package map, and we want never to seek backwards. This |
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
79 |
implies that we're going to have to look up the meta info for |
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
80 |
each file from the package map. We could get the file type |
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
81 |
from the archive, but it's probably safe to assume that the |
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
82 |
file type in the archive is the same as the file type in the |
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
83 |
package map. |
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
84 |
""" |
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
85 |
for p in self.pkg.datastream: |
49
c3a70bdc4527
First cut of actions; make file transfer generic.
Danek Duvall <danek.duvall@sun.com>
parents:
42
diff
changeset
|
86 |
yield self.action(self.pkgmap, p, p.name) |
42
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
87 |
|
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
88 |
# for some reason, some packages may have directories specified |
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
89 |
# in the pkgmap that don't exist in the archive. They need to |
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
90 |
# be found and iterated as well. |
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
91 |
# |
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
92 |
# Some of the blastwave packages also have directories in the |
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
93 |
# archive that don't exist in the package metadata. I don't see |
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
94 |
# a whole lot of point in faking those up. |
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
95 |
for p in self.pkg.manifest: |
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
96 |
if p.pathname.startswith("/"): |
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
97 |
dir = "root" |
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
98 |
else: |
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
99 |
dir = "reloc/" |
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
100 |
if p.type == "d" and \ |
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
101 |
dir + p.pathname not in self.pkg.datastream: |
49
c3a70bdc4527
First cut of actions; make file transfer generic.
Danek Duvall <danek.duvall@sun.com>
parents:
42
diff
changeset
|
102 |
yield self.action(self.pkgmap, None, |
c3a70bdc4527
First cut of actions; make file transfer generic.
Danek Duvall <danek.duvall@sun.com>
parents:
42
diff
changeset
|
103 |
dir + p.pathname) |
c3a70bdc4527
First cut of actions; make file transfer generic.
Danek Duvall <danek.duvall@sun.com>
parents:
42
diff
changeset
|
104 |
|
c3a70bdc4527
First cut of actions; make file transfer generic.
Danek Duvall <danek.duvall@sun.com>
parents:
42
diff
changeset
|
105 |
def action(self, pkgmap, ci, path): |
c3a70bdc4527
First cut of actions; make file transfer generic.
Danek Duvall <danek.duvall@sun.com>
parents:
42
diff
changeset
|
106 |
try: |
c3a70bdc4527
First cut of actions; make file transfer generic.
Danek Duvall <danek.duvall@sun.com>
parents:
42
diff
changeset
|
107 |
mapline = pkgmap[path] |
c3a70bdc4527
First cut of actions; make file transfer generic.
Danek Duvall <danek.duvall@sun.com>
parents:
42
diff
changeset
|
108 |
except KeyError: |
c3a70bdc4527
First cut of actions; make file transfer generic.
Danek Duvall <danek.duvall@sun.com>
parents:
42
diff
changeset
|
109 |
# XXX Return an unknown instead of a missing, for now. |
443
5ffa5b7dac9c
2589 pyc files generate lots of verify chaff
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
409
diff
changeset
|
110 |
return unknown.UnknownAction(path=path) |
42
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
111 |
|
49
c3a70bdc4527
First cut of actions; make file transfer generic.
Danek Duvall <danek.duvall@sun.com>
parents:
42
diff
changeset
|
112 |
if mapline.type in "fev": |
c3a70bdc4527
First cut of actions; make file transfer generic.
Danek Duvall <danek.duvall@sun.com>
parents:
42
diff
changeset
|
113 |
return file.FileAction(ci.extractfile(), |
443
5ffa5b7dac9c
2589 pyc files generate lots of verify chaff
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
409
diff
changeset
|
114 |
mode=mapline.mode, owner=mapline.owner, |
5ffa5b7dac9c
2589 pyc files generate lots of verify chaff
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
409
diff
changeset
|
115 |
group=mapline.group, path=mapline.pathname, |
5ffa5b7dac9c
2589 pyc files generate lots of verify chaff
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
409
diff
changeset
|
116 |
timestamp=misc.time_to_timestamp(int(mapline.modtime))) |
49
c3a70bdc4527
First cut of actions; make file transfer generic.
Danek Duvall <danek.duvall@sun.com>
parents:
42
diff
changeset
|
117 |
elif mapline.type in "dx": |
c3a70bdc4527
First cut of actions; make file transfer generic.
Danek Duvall <danek.duvall@sun.com>
parents:
42
diff
changeset
|
118 |
return directory.DirectoryAction(mode = mapline.mode, |
443
5ffa5b7dac9c
2589 pyc files generate lots of verify chaff
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
409
diff
changeset
|
119 |
owner=mapline.owner, group=mapline.group, |
5ffa5b7dac9c
2589 pyc files generate lots of verify chaff
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
409
diff
changeset
|
120 |
path=mapline.pathname) |
49
c3a70bdc4527
First cut of actions; make file transfer generic.
Danek Duvall <danek.duvall@sun.com>
parents:
42
diff
changeset
|
121 |
elif mapline.type == "s": |
443
5ffa5b7dac9c
2589 pyc files generate lots of verify chaff
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
409
diff
changeset
|
122 |
return link.LinkAction(path=mapline.pathname, |
5ffa5b7dac9c
2589 pyc files generate lots of verify chaff
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
409
diff
changeset
|
123 |
target=mapline.target) |
49
c3a70bdc4527
First cut of actions; make file transfer generic.
Danek Duvall <danek.duvall@sun.com>
parents:
42
diff
changeset
|
124 |
elif mapline.type == "l": |
443
5ffa5b7dac9c
2589 pyc files generate lots of verify chaff
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
409
diff
changeset
|
125 |
return hardlink.HardLinkAction(path=mapline.pathname, |
5ffa5b7dac9c
2589 pyc files generate lots of verify chaff
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
409
diff
changeset
|
126 |
target=mapline.target) |
49
c3a70bdc4527
First cut of actions; make file transfer generic.
Danek Duvall <danek.duvall@sun.com>
parents:
42
diff
changeset
|
127 |
else: |
443
5ffa5b7dac9c
2589 pyc files generate lots of verify chaff
Bart Smaalders <Bart.Smaalders@Sun.COM>
parents:
409
diff
changeset
|
128 |
return unknown.UnknownAction(path=mapline.pathname) |
42
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
129 |
|
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
130 |
def test(filename): |
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
131 |
if not os.path.isfile(filename): |
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
132 |
return False |
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
133 |
|
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
134 |
try: |
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
135 |
SolarisPackage(filename) |
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
136 |
return True |
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
137 |
except: |
05a14df12bd5
Add support for faspac'ed packages and package datastreams.
Danek Duvall <danek.duvall@sun.com>
parents:
diff
changeset
|
138 |
return False |