opkg-query-helper.py 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. #!/usr/bin/env python3
  2. # OpenEmbedded opkg query helper utility
  3. #
  4. # Written by: Paul Eggleton <paul.eggleton@linux.intel.com>
  5. #
  6. # Copyright 2012 Intel Corporation
  7. #
  8. # SPDX-License-Identifier: GPL-2.0-only
  9. #
  10. import sys
  11. import fileinput
  12. import re
  13. archmode = False
  14. filemode = False
  15. vermode = False
  16. args = []
  17. for arg in sys.argv[1:]:
  18. if arg == '-a':
  19. archmode = True
  20. elif arg == '-f':
  21. filemode = True
  22. elif arg == '-v':
  23. vermode = True
  24. else:
  25. args.append(arg)
  26. # Regex for removing version specs after dependency items
  27. verregex = re.compile(' \([=<>]* [^ )]*\)')
  28. pkg = ""
  29. ver = ""
  30. for line in fileinput.input(args):
  31. line = line.rstrip()
  32. if ': ' in line:
  33. if line.startswith("Package:"):
  34. pkg = line.split(": ")[1]
  35. ver = ""
  36. else:
  37. if archmode:
  38. if line.startswith("Architecture:"):
  39. arch = line.split(": ")[1]
  40. print("%s %s" % (pkg,arch))
  41. elif filemode:
  42. if line.startswith("Version:"):
  43. ver = line.split(": ")[1]
  44. elif line.startswith("Architecture:"):
  45. arch = line.split(": ")[1]
  46. print("%s %s_%s_%s.ipk %s" % (pkg,pkg,ver,arch,arch))
  47. elif vermode:
  48. if line.startswith("Version:"):
  49. ver = line.split(": ")[1]
  50. elif line.startswith("Architecture:"):
  51. arch = line.split(": ")[1]
  52. print("%s %s %s" % (pkg,arch,ver))
  53. else:
  54. if line.startswith("Depends:"):
  55. depval = line.split(": ")[1]
  56. deps = depval.split(", ")
  57. for dep in deps:
  58. dep = verregex.sub('', dep)
  59. print("%s|%s" % (pkg,dep))
  60. elif line.startswith("Recommends:"):
  61. recval = line.split(": ")[1]
  62. recs = recval.split(", ")
  63. for rec in recs:
  64. rec = verregex.sub('', rec)
  65. print("%s|%s [REC]" % (pkg, rec))