Advertisement
s243a

~/awk_dep_test

Nov 26th, 2019
380
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 2.35 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.     split(s,a,",")
  39.     for (p in a) {
  40.         match(a[p],/^[ \t]*([^ \t]+)[ \t]*(\((.*)\))?/,dep_split)
  41.         pkg_i = dep_split[1]
  42.         sout = sout ",+" pkg_i
  43.         if ( length(dep_split) > 1 ){
  44.           ver_i=dep_split[3]
  45.           split(ver_i,v," ")
  46.           ineq=get_inequality(v[1])
  47.           if ( length(v) > 1 ){
  48.             sout = sout "&" ineq v[2]
  49.           }
  50.         }
  51.     }
  52.     sub(/^,/,"",sout) ; return sout;
  53. }
  54. /^Package:/     { sub(/^Package: /,"");  PKG=$0; }
  55. /^Version:/     { sub(/^Version: /,"");  PKGVER=$0; }
  56. /^Filename:/    { sub(/^Filename: /,""); PKGPATH=$0; sub(/\/[^\/]*$/,"",PKGPATH); sub(/.*\//,""); PKGFILE=$0; }
  57. /^Priority:/    { sub(/^Priority: /,""); PKGPRIO=$0; }
  58. /^Section:/     { sub(/^Section: /,"");  PKGSECTION=$0; }
  59. /^Installed-Size:/ { sub(/^Installed-Size: /,"");  PKGSIZE=$0; }
  60. /^MD5sum:/      { sub(/^MD5sum: /,"");   PKGMD5=$0; }
  61. /^SHA1:/      { sub(/^SHA1: /,"");   SHA1=$0; }
  62. /^SHA256:/      { sub(/^SHA256: /,"");   SHA256=$0; }
  63. /^Depends:/     { sub(/^Depends: /,"");     PKGDEP=fixdepends($0) "," PKGDEP; }
  64. /^Pre-Depends:/ { sub(/^Pre-Depends: /,""); PKGDEP=fixdepends($0) "," PKGDEP; }
  65. /^Description:/ { sub(/^Description: /,""); PKGINFO=substr($0,1,200); }
  66. /^$/            { print PKG "_" PKGVER "|" PKG "|" PKGVER "||" PKGSECTION "|" PKGSIZE "|" PKGPATH "|" PKGFILE  "|" PKGDEP "|" PKGINFO "|" PKGOS "|" PKGOSVER "|"  PKGMD5 "|" SHA1 "|" SHA256 "|" PKGPRIO "|" REPOFNM  ;
  67.    
  68.                  PKG=""; PKGVER=""; PKGSECTION=""; PKGSIZE=""; PKGFILE=""; PKGPATH=""; PKGDEP=""; PKGINFO=""; PKGPRIO="";  PKGMD5=""; SHA1=""; SHA256=""; PKGDEP="";  }
  69. ' > ~/awk_dep_test.out
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement