[Scons-users] first builder / download

Dirk Bächle tshortik at gmx.de
Fri Aug 17 02:59:48 EDT 2012


Hi Phil,

On 17.08.2012 07:42, Philipp Kraus wrote:

>

>

> For example I try to download the newest version of the LUA sources,

> so I create a function for parsing the HTML page source

>

> def LUA_DownloadURL() :

> # read download path of the LUA library (latest version)

> f = urllib2.urlopen("http://www.lua.org/download.html")

> html = f.read()

> f.close()

>

> found = re.search("<a href=\"ftp/lua-(.*)\.tar\.gz\">", html,

> re.IGNORECASE)

> if found == None :

> raise RuntimeError("LUA Download URL not found")

>

> downloadurl = found.group(0)

>

> downloadurl = downloadurl.replace("\"", "")

> downloadurl = downloadurl.replace("<", "")

> downloadurl = downloadurl.replace(">", "")

> downloadurl = re.sub(r'(?i)a href=', "", downloadurl)

> downloadurl = "http://www.lua.org/" + downloadurl

>

> filename = downloadurl.split("/")[-1]

>

> return downloadurl, filename

>

> The function must return first the URL of the download and on second

> the target filename, the main scons script shows:

>

> x = env.ParseAndDownload( LUA_DownloadURL )

>

> and in x is the target filename stored (actually lua-5.2.1.tar.gz)

>

> Can you send me some tips to create better code?

>

> Thanks

>

> Phil

>

>

> _______________________________________________

> Scons-users mailing list

> Scons-users at scons.org

> http://four.pairlist.net/mailman/listinfo/scons-users

>


in total, wouldn't it be easier to simply check whether the target file
from your download exists with Python?
Something like:

url, target = LUA_DownloadURL()
if not os.path.isfile(target):
# Download file here

I fail to see what you are winning when you try to use SCons constructs
for the download. Having the file "to download"
(http://www.lua.org/whatever) connected to the dependency graph would
mean that SCons has to download the file each and every time the user
starts a build. Just to check whether the file changed,
accidentally...you never know, better make sure.
Is this really what you want to happen in the end?

Oh, and thanks a lot for "finally" telling us what you really intend to
do with all that code of yours. ;)

Best regards,

Dirk



More information about the Scons-users mailing list