diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2012-04-15 00:25:40 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2012-04-15 15:41:40 +0200 |
commit | 51c31ae1c5f78d236d20c944d1750265e798c11a (patch) | |
tree | 020f77f70c6c32dd4ca4c302466bc10913440cf6 /fs | |
parent | ff879a2d4cc73046460e1fc88e5d1251bdc6dd1d (diff) | |
download | barebox-51c31ae1c5f78d236d20c944d1750265e798c11a.tar.gz barebox-51c31ae1c5f78d236d20c944d1750265e798c11a.tar.xz |
automount: Pass automount pass as environment variable
This makes it possible to pass a command sequence to the automount
command instead of only a script (a command sequence would get confused
by the additional argument)
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/fs.c | 13 |
1 files changed, 9 insertions, 4 deletions
@@ -31,6 +31,8 @@ #include <init.h> #include <module.h> #include <libbb.h> +#include <magicvar.h> +#include <environment.h> void *read_file(const char *filename, size_t *size) { @@ -289,7 +291,6 @@ static void automount_mount(const char *path, int instat) int ret; list_for_each_entry(am, &automount_list, list) { - char *cmd; int len_path = strlen(path); int len_am_path = strlen(am->path); @@ -312,9 +313,10 @@ static void automount_mount(const char *path, int instat) if (*(path + len_am_path) != 0 && *(path + len_am_path) != '/') continue; - cmd = asprintf("%s %s", am->cmd, am->path); - ret = run_command(cmd, 0); - free(cmd); + setenv("automount_path", am->path); + export("automount_path"); + ret = run_command(am->cmd, 0); + setenv("automount_path", NULL); if (ret) printf("running automount command '%s' failed\n", @@ -325,6 +327,9 @@ static void automount_mount(const char *path, int instat) return; } } + +BAREBOX_MAGICVAR(automount_path, "mountpath passed to automount scripts"); + #else static void automount_mount(const char *path, int instat) { |