[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