summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorBenjamin Chrétien2014-05-31 16:13:09 +0200
committerBenjamin Chrétien2015-06-20 02:25:12 +0900
commitc84b110e51e7509e68e90a8af7d19fe0757fb09b (patch)
tree04d1ef66e4fb879b01fdd6bb078945c94e541a08
parentd59d302dd4ddedd7d45433b5f6562c2f9cc2aaf3 (diff)
downloadaur-c84b110e51e7509e68e90a8af7d19fe0757fb09b.tar.gz
Add abb and audio_common.
-rw-r--r--.SRCINFO2
-rw-r--r--PKGBUILD2
-rwxr-xr-ximport_catkin_packages.py91
3 files changed, 67 insertions, 28 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 48789bec4cfd..8997aa8eca0c 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -26,7 +26,7 @@ pkgbase = ros-build-tools
md5sums = d257f7f20384e894b0431ee61068aa96
md5sums = 563c9d1320a3a997db25d3087303dcfb
md5sums = 8d6d7eb89a12c449497b209f1a06655b
- md5sums = 39d8cf11d84e172048bbefd79b71e33c
+ md5sums = 77844d066c1aedf9b3373ad9ab81fcaa
md5sums = 07f5253eb3f8cb5295c32026a20ab6c0
pkgname = ros-build-tools
diff --git a/PKGBUILD b/PKGBUILD
index 000fa546c74b..65845178f328 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -41,5 +41,5 @@ md5sums=('8b2e864de97e97298ebfb8da471f2df1'
'd257f7f20384e894b0431ee61068aa96'
'563c9d1320a3a997db25d3087303dcfb'
'8d6d7eb89a12c449497b209f1a06655b'
- '39d8cf11d84e172048bbefd79b71e33c'
+ '77844d066c1aedf9b3373ad9ab81fcaa'
'07f5253eb3f8cb5295c32026a20ab6c0')
diff --git a/import_catkin_packages.py b/import_catkin_packages.py
index 5334bcdd2ce1..1fbe6fb2b452 100755
--- a/import_catkin_packages.py
+++ b/import_catkin_packages.py
@@ -1,9 +1,11 @@
#!/usr/bin/env python2
+# -*- coding: utf-8 -*-
from __future__ import print_function
import catkin_pkg.package
from optparse import OptionParser
+import sys
import os
import os.path
import urllib2
@@ -402,7 +404,9 @@ class DistroDescription(object):
return (self._distro['repositories'][name]['release'].get('packages') != None)
def _get_package_data(self, name):
- """Searches for `name` in all known packages and metapackages."""
+ """
+ Searches for `name` in all known packages and metapackages.
+ """
if self._distro['repositories'].get(name):
try:
return self._distro['repositories'][name]['release']
@@ -416,13 +420,25 @@ class DistroDescription(object):
return self._distro['repositories'][package]['release']
-def list_packages(distro_description):
- print(*sorted(distro_description.package_names()), sep='\n')
+def list_packages(distro_desc, distro_dir=None):
+ """
+ List available packages.
+ """
+ if not distro_dir or not os.path.isdir(distro_dir):
+ print(*sorted(distro_desc.package_names()), sep='\n')
+ else:
+ # For each package, check if a PKGBUILD has already been generated
+ for name in sorted(distro_desc.package_names()):
+ if os.path.isfile(os.path.join(distro_dir, name, "PKGBUILD")):
+ print("[✓] %s" % (colored(name, 'green', attrs=['bold'])))
+ else:
+ print("[ ] %s" % name)
### From http://code.activestate.com/recipes/577058/ (r2)
def query_yes_no(question, default="yes"):
- """Ask a yes/no question via raw_input() and return their answer.
+ """
+ Ask a yes/no question via raw_input() and return their answer.
"question" is a string that is presented to the user.
"default" is the presumed answer if the user just hits <Enter>.
@@ -469,6 +485,9 @@ def github_raw_url(repo_url, path, commitish):
def generate_pkgbuild(distro, package, directory, force=False,
no_overwrite=False, recursive=False, update=False,
exclude_dependencies=[], rosdep_urls=[], generated=None):
+ """
+ Generate a PKGBUILD file for the given package and the given ROS distribution.
+ """
if generated is None:
generated = set()
elif package.name in generated:
@@ -524,28 +543,36 @@ def main():
help='Select the ROS distro to use.')
parser.add_option('--list-packages', dest='list_packages', action='store_true',
default=False, help='Lists all available packages.')
- parser.add_option('--output-directory', metavar='output_directory', default='.',
- help='The output directory. Packages are put into <output-directory>/<name>')
+ parser.add_option('--output-directory', metavar='output_directory',
+ default=None,
+ help='The output directory. Packages are put into '
+ '<output-directory>/<name>')
default_distro_url = 'https://raw.github.com/ros/rosdistro/master/%s/distribution.yaml'
- parser.add_option(
- '--distro-url', metavar='distro_url', default=default_distro_url,
- help='The URL of the distro description. %s is replaced by the actual distro name')
+ parser.add_option('--distro-url', metavar='distro_url',
+ default=default_distro_url,
+ help='The URL of the distro description. %s is replaced by '
+ 'the actual distro name')
default_rosdep_url = 'https://raw.github.com/ros/rosdistro/master/rosdep/%s.yaml'
- parser.add_option(
- '--rosdep-urls', metavar='rosdep_urls',
- default=[default_rosdep_url % 'base', default_rosdep_url % 'python', default_rosdep_url % 'ruby'],
- help='The URLs of the rosdep mapping files.')
- parser.add_option(
- '--exclude-dependencies', metavar='exclude_dependencies',
- default='',
- help='Comma-separated list of (source) package dependencies to exclude from the generated PKGBUILD file.')
- parser.add_option('-f', '--force', dest='force', action='store_true', default=False,
+ parser.add_option('--rosdep-urls', metavar='rosdep_urls',
+ default=[default_rosdep_url % 'base',
+ default_rosdep_url % 'python',
+ default_rosdep_url % 'ruby'],
+ help='The URLs of the rosdep mapping files.')
+ parser.add_option('--exclude-dependencies', metavar='exclude_dependencies',
+ default='',
+ help='Comma-separated list of (source) package dependencies'
+ ' to exclude from the generated PKGBUILD file.')
+ parser.add_option('-f', '--force', dest='force', action='store_true',
+ default=False,
help='Always overwrite exiting PKGBUILD files.')
- parser.add_option('-n', '--no-overwrite', dest='no_overwrite', action='store_true', default=False,
+ parser.add_option('-n', '--no-overwrite', dest='no_overwrite',
+ action='store_true', default=False,
help='Do not overwrite PKGBUILD files.')
- parser.add_option('-r','--recursive', dest='recursive', action='store_true', default=False,
+ parser.add_option('-r','--recursive', dest='recursive',
+ action='store_true', default=False,
help='Recursively import dependencies')
- parser.add_option('-u','--update', dest='update', action='store_true', default=False,
+ parser.add_option('-u','--update', dest='update',
+ action='store_true', default=False,
help='Update PKGBUILD if a newer version is found.')
options, args = parser.parse_args()
@@ -553,12 +580,25 @@ def main():
# Use legagy fuerte URL
options.distro_url = 'https://raw.github.com/ros/rosdistro/master/releases/%s.yaml'
- distro = DistroDescription(
- options.distro, url=options.distro_url % options.distro)
+ distro = DistroDescription(options.distro,
+ url=options.distro_url % options.distro)
+
+ if options.output_directory:
+ if os.path.isdir(options.output_directory):
+ distro_dir = os.path.abspath(options.output_directory)
+ else:
+ print("Invalid --output-directory. Exiting.")
+ sys.exit()
+ else:
+ distro_dir = None
+
if options.list_packages:
- list_packages(distro)
+ list_packages(distro, distro_dir)
return
elif args:
+ if not distro_dir:
+ print("Missing mandatory --output-directory. Exiting.")
+ sys.exit()
generated = set()
if os.path.isfile(updated_packages_file):
# Load dump of already updated packages to speedup updates
@@ -573,8 +613,7 @@ def main():
% (colored(package, 'yellow', attrs=['bold'])))
for package in args:
- generate_pkgbuild(distro, distro.package(package),
- os.path.abspath(options.output_directory),
+ generate_pkgbuild(distro, distro.package(package), distro_dir,
exclude_dependencies=options.exclude_dependencies.split(','),
force=options.force, no_overwrite=options.no_overwrite,
update=options.update, recursive=options.recursive,