33import sys ,re ,urllib .request ,json ,fileinput
44from prettytable import PrettyTable
55
6- def replaceAll (file ,searchExp ,replaceExp ):
6+ def replaceLinesInFile (file ,searchExp ,replaceExp ):
77 for line in fileinput .input (file , inplace = 1 ):
88 if searchExp in line :
99 line = line .replace (searchExp ,replaceExp )
1010 sys .stdout .write (line )
1111
12+ def updateDependency (name , oldVersion , newVersion , line , filename , updates ):
13+ if oldVersion != newVersion :
14+ updatedLine = line .replace (oldVersion ,newVersion )
15+ replaceLinesInFile (filename , line , updatedLine )
16+ updates .add_row ([name , oldVersion , newVersion ])
17+
1218filename = sys .argv [1 ];
1319updates = PrettyTable (['Dependency' , 'Old Version' , 'New Version' ])
1420for line in open (filename ).read ().split ("\n " ):
@@ -19,11 +25,7 @@ def replaceAll(file,searchExp,replaceExp):
1925 dep_version = dependency .groups ()[1 ];
2026 with urllib .request .urlopen ("https://api.cdnjs.com/libraries/" + dep_name + "?fields=name,version" ) as url :
2127 data = json .loads (url .read ().decode ())
22- dep_version_new = data ["version" ]
23- if dep_version != dep_version_new :
24- updatedLine = line .replace (dep_version ,dep_version_new )
25- replaceAll (filename , line , updatedLine )
26- updates .add_row ([dep_name , dep_version , dep_version_new ])
28+ updateDependency (dep_name , dep_version , data ["version" ], line , filename , updates )
2729
2830 if "use.fontawesome" in line :
2931 dependency = re .match ("(?:.+)\/releases\/([0-9a-zA-Z\.\-]+)\/" , line );
@@ -32,10 +34,6 @@ def replaceAll(file,searchExp,replaceExp):
3234 dep_version = dependency .groups ()[0 ];
3335 with urllib .request .urlopen ("https://api.github.com/repos/FortAwesome/Font-Awesome/releases/latest" ) as url :
3436 data = json .loads (url .read ().decode ())
35- dep_version_new = "v" + data ["tag_name" ]
36- if dep_version != dep_version_new :
37- updatedLine = line .replace (dep_version ,dep_version_new )
38- replaceAll (filename , line , updatedLine )
39- updates .add_row ([dep_name , dep_version , dep_version_new ])
37+ updateDependency (dep_name , dep_version , "v" + data ["tag_name" ], line , filename , updates )
4038
4139print (updates )
0 commit comments