[cowdancer] 01/04: qemubuilder: Check architecture has been specified
James Clarke
jrtc27 at moszumanska.debian.org
Sat Jan 14 01:14:12 UTC 2017
This is an automated email from the git hooks/post-receive script.
jrtc27 pushed a commit to branch master
in repository cowdancer.
commit 83e018cd4bcd82f0413d222ecd07b26d48084109
Author: James Clarke <jrtc27 at jrtc27.com>
Date: Sat Jan 14 00:04:22 2017 +0000
qemubuilder: Check architecture has been specified
Closes: #440944
---
cowbuilder.c | 5 +++++
parameter.c | 18 ++++++++++++++++++
parameter.h | 1 +
qemubuilder.c | 10 ++++++++++
test_parameter.c | 5 +++++
5 files changed, 39 insertions(+)
diff --git a/cowbuilder.c b/cowbuilder.c
index 0194219..8afb871 100755
--- a/cowbuilder.c
+++ b/cowbuilder.c
@@ -250,6 +250,11 @@ static int cpbuilder_internal_cleancow(const struct pbuilderconfig* pc)
return 0;
}
+int cpbuilder_check_config(const struct pbuilderconfig* pc)
+{
+ return 0;
+}
+
/*
* @return: return code of pbuilder, or <0 on failure
*/
diff --git a/parameter.c b/parameter.c
index 32a8263..f5268b0 100644
--- a/parameter.c
+++ b/parameter.c
@@ -720,6 +720,9 @@ int parse_parameter(int ac, char** av,
switch(pc.operation)
{
case pbuilder_build:
+ if (cpbuilder_check_config(&pc))
+ return 1;
+
if (!av[optind])
{
/* parameter missing */
@@ -730,33 +733,48 @@ int parse_parameter(int ac, char** av,
return cpbuilder_build(&pc, av[optind]);
case pbuilder_create:
+ if (cpbuilder_check_config(&pc))
+ return 1;
+
if (av[optind])
{
/* extra parameter */
log_printf(log_error, "too many parameters for create");
return 1;
}
+
return cpbuilder_create(&pc);
case pbuilder_update:
+ if (cpbuilder_check_config(&pc))
+ return 1;
+
if (av[optind])
{
/* extra parameter */
log_printf(log_error, "too many parameters for update");
return 1;
}
+
return cpbuilder_update(&pc);
case pbuilder_login:
+ if (cpbuilder_check_config(&pc))
+ return 1;
+
return cpbuilder_login(&pc);
case pbuilder_execute:
+ if (cpbuilder_check_config(&pc))
+ return 1;
+
if (!av[optind])
{
/* parameter missing */
log_printf(log_error, "parameter missing for execute operation");
return 1;
}
+
return cpbuilder_execute(&pc, &av[optind]);
case pbuilder_help:
diff --git a/parameter.h b/parameter.h
index 1eb4d23..e36b2a1 100644
--- a/parameter.h
+++ b/parameter.h
@@ -86,6 +86,7 @@ int size_of_ntarray(char ** buf);
int forkexeclp (const char *path, const char *arg0, ...);
int forkexecvp (char *const argv[]);
int parse_parameter(int ac, char** av, const char* keyword);
+int cpbuilder_check_config(const struct pbuilderconfig* pc);
int cpbuilder_build(const struct pbuilderconfig* pc, const char* dscfile);
int cpbuilder_login(const struct pbuilderconfig* pc);
int cpbuilder_execute(const struct pbuilderconfig* pc, char** av);
diff --git a/qemubuilder.c b/qemubuilder.c
index 85f8889..54621f9 100755
--- a/qemubuilder.c
+++ b/qemubuilder.c
@@ -1077,6 +1077,16 @@ static char* copy_dscfile(const char* dscfile_, const char* destdir)
return ret?NULL:memstr;
}
+int cpbuilder_check_config(const struct pbuilderconfig* pc)
+{
+ if (!pc->arch || !*pc->arch)
+ {
+ log_printf(log_error, "No architecture specified");
+ return 1;
+ }
+ return 0;
+}
+
/*
return 0 on success, nonzero on failure.
diff --git a/test_parameter.c b/test_parameter.c
index 339342e..dded519 100755
--- a/test_parameter.c
+++ b/test_parameter.c
@@ -6,6 +6,11 @@
/*
Mock functions
*/
+int cpbuilder_check_config(const struct pbuilderconfig* pc)
+{
+ return 0;
+}
+
int cpbuilder_build(const struct pbuilderconfig* pc, const char* dscfile)
{
return 0;
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pbuilder/cowdancer.git
More information about the Pbuilder-maint
mailing list