]> git.pld-linux.org Git - packages/rpm-build-tools.git/blame - pldnotify.awk
- initial early pre-alpha-0.0.0.1-release :)
[packages/rpm-build-tools.git] / pldnotify.awk
CommitLineData
6fb3305d
SZ
1#!/bin/awk -f
2
3function 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
18function 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
40function 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
51BEGIN {
52 # if U want to use DEBUG, run script with "-v DEBUG=1"
53 # or uncomment the line below
54 # DEBUG = 1
55}
56
57FNR==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
73END {
74 process_data(NAME,VER,REL,DEFS,SRC)
75}
This page took 0.639957 seconds and 4 git commands to generate.