[erlang-patches] release_handler:find_script/4 to use 're' matching in .appup scripts

Ulf Wiger <>
Tue May 1 14:49:04 CEST 2012


git fetch git://github.com/uwiger/otp.git uw-release_handler-find_script

commit b8259b6a0304b83007983793b9da40207f261209
Author: Ulf Wiger <>
Date:   Tue May 1 14:35:35 2012 +0200

    release_handler:find_script/4 to use 're' matching in .appup scripts
    
    The function release_handler:find_script/4 locates an .appup script
    for a given application, and searches it for the matching up- or
    downgrade script (given OldVsn). The original implementation of this
    function used lists:keysearch/3 to find the matching script, but since
    the .appup files nowadays may contain regexps instead of distinct versions,
    that approach no longer works.
    
    This patch uses re:run/2 to find a matching script instead.
    
    Example:
    
    Stock R15B:
    
    Erlang R15B (erts-5.9) [source] [...]
    
    Eshell V5.9  (abort with ^G)
    1> release_handler:upgrade_script(stdlib,code:lib_dir(stdlib)).
    ** exception throw: {version_not_in_appup,"1.18"}
         in function  release_handler:find_script/4 (release_handler.erl, line 5
         in call from release_handler:upgrade_script/2 (release_handler.erl, lin
    
    Current patch:
    Erlang R16B (erts-5.10) [source] [...]
    
    Eshell V5.10  (abort with ^G)
    1> release_handler:upgrade_script(stdlib,code:lib_dir(stdlib)).
    {ok,"1.19",[restart_new_emulator,point_of_no_return]}


Ulf Wiger, Co-founder & Developer Advocate, Feuerlabs Inc.
http://feuerlabs.com





More information about the erlang-patches mailing list