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

Source Code for Module rosdep.arch

 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  from __future__ import with_statement 
32  from linux_helpers import * 
33  import os 
34   
35  import rosdep.base_rosdep 
36   
37  ###### Arch SPECIALIZATION ######################### 
38   
39 -def pacman_detect(p):
40 return subprocess.call(['pacman', '-Q', p], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
41
42 -class Arch(rosdep.base_rosdep.RosdepBaseOS):
43
44 - def check_presence(self):
45 filename = "/etc/arch-release" 46 if os.path.exists(filename): 47 return True 48 return False
49
50 - def get_version(self):
51 return "" 52 # arch didn't have a version parsing in cpp version 53 try: 54 filename = "/etc/issue" 55 if os.path.exists(filename): 56 with open(filename, 'r') as fh: 57 os_list = fh.read().split() 58 if os_list[0] == "Linux" and os_list[1] == "Arch": 59 return os_list[2] 60 except: 61 print "Arch failed to get version" 62 return False 63 64 return False
65
66 - def get_name(self):
67 return "arch"
68 69
70 - def strip_detected_packages(self, packages):
71 return [p for p in packages if pacman_detect(p)]
72
73 - def generate_package_install_command(self, packages, default_yes):
74 return "#Packages\nsudo pacman -Sy --needed " + ' '.join(packages)
75 76 ###### END Arch SPECIALIZATION ######################## 77