]> git.pld-linux.org Git - packages/rpm-build-tools.git/blob - pldnotify.awk
- initial early pre-alpha-0.0.0.1-release :)
[packages/rpm-build-tools.git] / pldnotify.awk
1 #!/bin/awk -f
2
3 function subst_defines(var,defs) {
4         while ((var ~ /%{.*}/) || (var ~ /%[A-Za-z0-9_]+/)) {
5                 oldvar=var
6                 for (j in defs) {
7                         gsub("%{" j "}", defs[j], var)
8                         gsub("%" j , defs[j], var)
9                 }
10                 if (var==oldvar) {
11                         if ( DEBUG ) for (i in defs) print i " == " defs[i]
12                         return var
13                 }
14         }
15         return var
16 }
17
18 function process_source(lurl,version) {
19         sub("://",":",lurl)
20         sub("/",":/",lurl)
21         gsub("[^/]*$",":&",lurl)
22         split(lurl,url,":")
23         acc=url[1]
24         host=url[2]
25         dir=url[3]
26         if ( DEBUG ) print acc "://" host dir 
27         
28         references=0
29         while ( "lynx --dump " acc "://" host dir | getline result ) {
30                 if ( result ~ "References" ) references=1
31                 if ( result ~ "[0-9]+\. (ftp|http)://" ) {
32                         split(result,links)
33                         addr=links[2]
34                         # if (DEBUG)
35                         print addr
36                 }
37         }
38 }
39         
40 function process_data(name,ver,rel,defs,src) {
41         for (i in src) {
42                 if ( src[i] !~ /%{.*}/ && src[i] !~ /%[A-Za-z0-9_]/ )  {
43                         if ( DEBUG ) print "Zrodlo: " src[i]
44                         # process_source(src[i],defs["version"])
45                 } else {
46                         print FNAME ":" i ": niemozliwe podstawienie: " src[i]
47                 }
48         }
49 }
50
51 BEGIN {
52         # if U want to use DEBUG, run script with "-v DEBUG=1"
53         # or uncomment the line below
54         # DEBUG = 1
55 }
56
57 FNR==1 {
58         if ( ARGIND != 1 ) {
59                 process_data(NAME,VER,REL,DEFS,SRC)
60                 NAME="" ; VER="" ; REL=""
61                 for (i in DEFS) delete DEFS[i]
62                 for (i in SRC) delete SRC[i]
63         }
64         FNAME=FILENAME
65 }
66
67 /^[Nn]ame:/&&(NAME=="") { NAME=subst_defines($2,DEFS) ; DEFS["name"]=NAME }
68 /^[Vv]ersion:/&&(VER=="") { VER=subst_defines($2,DEFS) ; DEFS["version"]=VER }
69 /^[Rr]elease:/&&(REL=="") { REL=subst_defines($2,DEFS) ; DEFS["release"]=REL }
70 /^[Ss]ource[0-9]*:/ { if (/(ftp|http):\/\//) SRC[FNR]=subst_defines($2,DEFS) }
71 /%define/ { DEFS[$2]=subst_defines($3,DEFS) }
72
73 END {
74         process_data(NAME,VER,REL,DEFS,SRC)
75 }
This page took 0.031324 seconds and 3 git commands to generate.