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