On Thu,  5 Sep 2013 15:29:20 +0200
Natanael Copa <nc...@alpinelinux.org> wrote:

> Instead of popen and run external executable dirname we implement a
> dirname in C in the core module.
> 
> We also remove the unused basename function.
> 
> Signed-off-by: Natanael Copa <nc...@alpinelinux.org>

Acked-by: Dwight Engen <dwight.en...@oracle.com>

This is also on top of Natanael's 5.1 -> 5.2 patch, can be applied once
we sort that out.

> ---
>  src/lua-lxc/core.c  |  8 ++++++++
>  src/lua-lxc/lxc.lua | 18 +-----------------
>  2 files changed, 9 insertions(+), 17 deletions(-)
> 
> diff --git a/src/lua-lxc/core.c b/src/lua-lxc/core.c
> index 504e147..002e8bf 100644
> --- a/src/lua-lxc/core.c
> +++ b/src/lua-lxc/core.c
> @@ -28,6 +28,7 @@
>  #include <assert.h>
>  #include <string.h>
>  #include <unistd.h>
> +#include <libgen.h>
>  #include <lxc/lxccontainer.h>
>  
>  #if LUA_VERSION_NUM < 502
> @@ -387,11 +388,18 @@ static int lxc_util_usleep(lua_State *L) {
>      return 0;
>  }
>  
> +static int lxc_util_dirname(lua_State *L) {
> +    char *path = strdupa(luaL_checkstring(L, 1));
> +    lua_pushstring(L, dirname(path));
> +    return 1;
> +}
> +
>  static luaL_Reg lxc_lib_methods[] = {
>      {"version_get",          lxc_version_get},
>      {"default_config_path_get",      lxc_default_config_path_get},
>      {"container_new",                container_new},
>      {"usleep",                       lxc_util_usleep},
> +    {"dirname",                      lxc_util_dirname},
>      {NULL, NULL}
>  };
>  
> diff --git a/src/lua-lxc/lxc.lua b/src/lua-lxc/lxc.lua
> index 4ef1ff9..2f1204c 100755
> --- a/src/lua-lxc/lxc.lua
> +++ b/src/lua-lxc/lxc.lua
> @@ -70,22 +70,6 @@ function string:split(delim, max_cols)
>      return cols
>  end
>  
> -function dirname(path)
> -    local f,output
> -    f = io.popen("dirname " .. path)
> -    output = f:read('*all')
> -    f:close()
> -    return output:sub(1,-2)
> -end
> -
> -function basename(path, suffix)
> -    local f,output
> -    f = io.popen("basename " .. path .. " " .. (suffix or ""))
> -    output = f:read('*all')
> -    f:close()
> -    return output:sub(1,-2)
> -end
> -
>  function cgroup_path_get()
>      local f,line,cgroup_path
>  
> @@ -99,7 +83,7 @@ function cgroup_path_get()
>           end
>           c = line:split(" ", 6)
>           if (c[1] == "cgroup") then
> -             cgroup_path = dirname(c[2])
> +             cgroup_path = core.dirname(c[2])
>               break
>           end
>       end


------------------------------------------------------------------------------
Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more!
Discover the easy way to master current and previous Microsoft technologies
and advance your career. Get an incredible 1,500+ hours of step-by-step
tutorial videos with LearnDevNow. Subscribe today and save!
http://pubads.g.doubleclick.net/gampad/clk?id=58041391&iu=/4140/ostg.clktrk
_______________________________________________
Lxc-devel mailing list
Lxc-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/lxc-devel

Reply via email to