Package rosdep :: Module redhat
[frames] | no frames]

Source Code for Module rosdep.redhat

 1  #!/usr/bin/env python 
 2  # Copyright (c) 2009, Willow Garage, Inc. 
 3  # All rights reserved. 
 4  #  
 5  # Redistribution and use in source and binary forms, with or without 
 6  # modification, are permitted provided that the following conditions are met: 
 7  #  
 8  #     * Redistributions of source code must retain the above copyright 
 9  #       notice, this list of conditions and the following disclaimer. 
10  #     * Redistributions in binary form must reproduce the above copyright 
11  #       notice, this list of conditions and the following disclaimer in the 
12  #       documentation and/or other materials provided with the distribution. 
13  #     * Neither the name of the Willow Garage, Inc. nor the names of its 
14  #       contributors may be used to endorse or promote products derived from 
15  #       this software without specific prior written permission. 
16  #  
17  # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 
18  # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 
19  # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 
20  # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 
21  # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 
22  # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 
23  # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 
24  # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 
25  # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
26  # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
27  # POSSIBILITY OF SUCH DAMAGE. 
28   
29  # Author Tully Foote/tfoote@willowgarage.com 
30   
31  import os.path 
32  import roslib.os_detect 
33  import subprocess 
34   
35  import rosdep.base_rosdep 
36   
37 -class YumInstall:
38 """This class provides the functions for installing using yum 39 it's methods partially implement the Rosdep OS api to complement 40 the roslib.OSDetect API. """
41 - def rpm_detect(self, p):
42 return subprocess.call(['rpm', '-q', p], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
43
44 - def strip_detected_packages(self, packages):
45 return [p for p in packages if self.rpm_detect(p)]
46
47 - def generate_package_install_command(self, packages, default_yes):
48 if not packages: 49 return "#No Packages to install" 50 51 if default_yes: 52 return "#Packages\nsudo yum -y install " + ' '.join(packages) 53 else: 54 return "#Packages\nsudo yum install " + ' '.join(packages)
55 56 57 ###### Fedora SPECIALIZATION #########################
58 -class Fedora(roslib.os_detect.Fedora, YumInstall, rosdep.base_rosdep.RosdepBaseOS):
59 """This class provides the Rosdep OS API for by combining the Fedora 60 OSDetect API and the YumInstall API 61 """ 62 pass 63 64 ###### END Fedora SPECIALIZATION ######################## 65 66 ###### Rhel SPECIALIZATION #########################
67 -class Rhel(roslib.os_detect.Rhel, YumInstall, rosdep.base_rosdep.RosdepBaseOS):
68 """This class provides the Red Hat Enterprise Linux Rosdep OS API 69 for by combining the RHEL OSDetect API and the YumInstall API 70 """ 71 pass 72 ###### END Rhel SPECIALIZATION ######################## 73