Advertisement
s243a

~/awk_dep_test (debug)

Nov 26th, 2019
391
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 2.71 KB | None | 0 0
  1. #!/bin/bash
  2. distro=devuan
  3. distro_ver=ascii
  4. repo_filename="/var/packages/repo/Packages-devuan-ascii-main"
  5. #a_stream=main
  6. a_repo_url="http://deb.devuan.org/merged/"
  7.             cat ~/awk_dep_test.in | awk -v PKGOS="$distro" -v PKGOSVER="$distro_ver" -v REPOFNM="$repo_filename" \
  8. 'function fixdepends_jamesbond(s,   a,p,sout) {
  9.     split(s,a,",")
  10.     for (p in a) {
  11.         gsub(/[ \t]*\(.*\)|[ \t]\|.*|:any/,"",a[p])
  12.         sout = sout "," a[p]
  13.     }
  14.     sub(/^,/,"",sout) ; return sout;
  15. }
  16. function get_inequality(s){
  17.     switch(s){
  18.         case "<":
  19.           return "lt"
  20.           break
  21.         case ">":
  22.           return "gt"
  23.           break
  24.         case "<=":
  25.           return "le"
  26.           break
  27.         case ">=":
  28.           return "ge"
  29.           break
  30.         case "=":
  31.           return "eq"
  32.           break
  33.  
  34.    }
  35.    return ""
  36. }
  37. function fixdepends(s,   p,a,dep_i,dep_split,pkg_i,ver_i,v,ineq,sout) {
  38.    print "fixing depends"
  39.     split(s,a,",")
  40.     for (p in a) {
  41.         #split(a[p],dep_i) #Split into seperate dependencies
  42.         print "p=" p
  43.         print "a[p]]=" a[p]
  44.         #match(dep_i,/^[ \t]*([^ \t]+)[ \t]*(\((.*)\))?/,dep_split)
  45.         match(a[p],/^[ \t]*([^ \t]+)[ \t]*(\((.*)\))?/,dep_split)
  46.         pkg_i = dep_split[1]
  47.         print "pkg_i=" pkg_i
  48.         sout = sout ",+" pkg_i
  49.         if ( length(dep_split) > 1 ){
  50.           ver_i=dep_split[3]
  51.           print "ver_i=" ver_i
  52.           split(ver_i,v," ")
  53.           print "v[1]=" v[1]
  54.           ineq=get_inequality(v[1])
  55.           print "ineq=" ineq
  56.           if ( length(v) > 1 ){
  57.             print "v[2]=" v[2]
  58.             sout = sout "&" ineq v[2]
  59.             print "sout=" sout
  60.           }
  61.         }
  62.         #sout = sout "," "+" a[p]
  63.     }
  64.     sub(/^,/,"",sout) ; return sout;
  65. }
  66. /^Package:/     { sub(/^Package: /,"");  PKG=$0; }
  67. /^Version:/     { sub(/^Version: /,"");  PKGVER=$0; }
  68. /^Filename:/    { sub(/^Filename: /,""); PKGPATH=$0; sub(/\/[^\/]*$/,"",PKGPATH); sub(/.*\//,""); PKGFILE=$0; }
  69. /^Priority:/    { sub(/^Priority: /,""); PKGPRIO=$0; }
  70. /^Section:/     { sub(/^Section: /,"");  PKGSECTION=$0; }
  71. /^Installed-Size:/ { sub(/^Installed-Size: /,"");  PKGSIZE=$0; }
  72. /^MD5sum:/      { sub(/^MD5sum: /,"");   PKGMD5=$0; }
  73. /^SHA1:/      { sub(/^SHA1: /,"");   SHA1=$0; }
  74. /^SHA256:/      { sub(/^SHA256: /,"");   SHA256=$0; }
  75. /^Depends:/     { sub(/^Depends: /,"");     PKGDEP=fixdepends($0) "," PKGDEP; }
  76. /^Pre-Depends:/ { sub(/^Pre-Depends: /,""); PKGDEP=fixdepends($0) "," PKGDEP; }
  77. /^Description:/ { sub(/^Description: /,""); PKGINFO=substr($0,1,200); }
  78. /^$/            { print PKG "_" PKGVER "|" PKG "|" PKGVER "||" PKGSECTION "|" PKGSIZE "|" PKGPATH "|" PKGFILE  "|" PKGDEP "|" PKGINFO "|" PKGOS "|" PKGOSVER "|"  PKGMD5 "|" SHA1 "|" SHA256 "|" PKGPRIO "|" REPOFNM  ;
  79.    
  80.                  PKG=""; PKGVER=""; PKGSECTION=""; PKGSIZE=""; PKGFILE=""; PKGPATH=""; PKGDEP=""; PKGINFO=""; PKGPRIO="";  PKGMD5=""; SHA1=""; SHA256=""; PKGDEP="";  }
  81. ' > ~/awk_dep_test.out
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement