Advertisement
s243a

woofCE_to_dpkg_status.awk

Feb 16th, 2021
3,699
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Awk 1.54 KB | None | 0 0
  1. #!/usr/bin/gawk -f
  2. function dep_fix(str,     a,k1,p1,p2,out,seps){
  3.       split(str,a,",")
  4.       out = ""
  5.       for (k1 in a){
  6.           p1=a[k1]
  7.           gsub(/^+/,"",p1)
  8.           split(p1,p2,/&../,seps) # +libqpdf21&gt8.4 > p2[1]="+libqpdf21" seps[1]="&gt" p2[2]="8.4",
  9.           switch (seps[1]) {  
  10.           case "&gt":
  11.             out = out ", " p2[1] " (>" p2[2] ")"
  12.             break
  13.           case "&ge":
  14.             out = out ", " p2[1] " (>=" p2[2] ")"
  15.             break
  16.           case "&lt":
  17.             out = out ", " p2[1] " (<" p2[2] ")"
  18.             break
  19.           case "&le":
  20.             out = out "," p2[1] " (<=" p2[2] ")"
  21.             break
  22.           case "&eq":
  23.             out = out ", " p2[1] " (=" p2[2] ")"
  24.             break
  25.           default:
  26.             out = out ", " p2[1]
  27.             break
  28.          }
  29.          gsub(/^, /,"",out)
  30.          
  31.      }
  32.      return out
  33.   }
  34.   BEGIN{FS="|"}
  35.   {
  36.      PACKAGE=$2
  37.      print "Package: " PACKAGE
  38.      VERSION = $3
  39.      #TODO make PACKAGE regular expression safe
  40.      gsub(/[+]/,"\\+",PACKAGE)
  41.      gsub(PACKAGE,"",VERSION)
  42.      gsub(/^_/,"",VERSION)
  43.      gsub(/_[^_]*$/,"",VERSION)
  44.      print "Version: " VERSION
  45.      ARCH = $1
  46.      gsub(/.*_/,"",ARCH)
  47.      if ( ARCH == "i386" ){
  48.        print "Architecture: " ARCH
  49.      } else if (  ARCH = noarch ){
  50.        print "Architecture: noarch"
  51.      }
  52.      #TODO Architecture: $1 but trimmed after last _ check that it is like i386
  53.      print "Maintainer: unspecified"
  54.      DEPS = $9
  55.      DEPS = dep_fix(DEPS)
  56.      if (length(DEPS)>0){
  57.        print "Depends: " DEPS
  58.      }
  59.      print "Priority: " PRIORITY
  60.      print "Section: " $5
  61.      print ""
  62.     }
  63.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement