summaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2012-04-15 00:25:40 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2012-04-15 15:41:40 +0200
commit51c31ae1c5f78d236d20c944d1750265e798c11a (patch)
tree020f77f70c6c32dd4ca4c302466bc10913440cf6 /fs
parentff879a2d4cc73046460e1fc88e5d1251bdc6dd1d (diff)
downloadbarebox-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.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/fs/fs.c b/fs/fs.c
index 24ef25827a..64997cc8d2 100644
--- a/fs/fs.c
+++ b/fs/fs.c
@@ -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)
{