summaryrefslogtreecommitdiff
path: root/pkgtools/pbulk
diff options
context:
space:
mode:
authorjoerg <joerg@pkgsrc.org>2015-11-03 19:06:47 +0000
committerjoerg <joerg@pkgsrc.org>2015-11-03 19:06:47 +0000
commit1c475de4460011a10611f29e46e926113fe1b69e (patch)
treea7f6ae05836a1dcdb7b4a66a11078231e0472c15 /pkgtools/pbulk
parentb51f4767d0762e2c0055cf7bfdd25f8377659077 (diff)
downloadpkgsrc-1c475de4460011a10611f29e46e926113fe1b69e.tar.gz
pbulk-base-0.50: Don't go into master mode if there is nothing to do.
Diffstat (limited to 'pkgtools/pbulk')
-rw-r--r--pkgtools/pbulk/files/pbulk/pbuild/jobs.c8
-rw-r--r--pkgtools/pbulk/files/pbulk/pbuild/pbuild.c13
-rw-r--r--pkgtools/pbulk/files/pbulk/pbuild/pbuild.h3
-rw-r--r--pkgtools/pbulk/files/pbulk/pscan/jobs.c24
-rw-r--r--pkgtools/pbulk/files/pbulk/pscan/pscan.c12
-rw-r--r--pkgtools/pbulk/files/pbulk/pscan/pscan.h3
6 files changed, 49 insertions, 14 deletions
diff --git a/pkgtools/pbulk/files/pbulk/pbuild/jobs.c b/pkgtools/pbulk/files/pbulk/pbuild/jobs.c
index 46c05e5064b..001cacc9347 100644
--- a/pkgtools/pbulk/files/pbulk/pbuild/jobs.c
+++ b/pkgtools/pbulk/files/pbulk/pbuild/jobs.c
@@ -1,4 +1,4 @@
-/* $NetBSD: jobs.c,v 1.15 2014/01/15 13:52:10 joerg Exp $ */
+/* $NetBSD: jobs.c,v 1.16 2015/11/03 19:06:47 joerg Exp $ */
/*-
* Copyright (c) 2007, 2009, 2011 Joerg Sonnenberger <joerg@NetBSD.org>.
@@ -364,6 +364,12 @@ build_tree(void)
}
}
+int
+has_job(void)
+{
+ return !TAILQ_EMPTY(&buildable_jobs);
+}
+
struct build_job *
get_job(void)
{
diff --git a/pkgtools/pbulk/files/pbulk/pbuild/pbuild.c b/pkgtools/pbulk/files/pbulk/pbuild/pbuild.c
index 979fae7ee34..a0e92f7dd6d 100644
--- a/pkgtools/pbulk/files/pbulk/pbuild/pbuild.c
+++ b/pkgtools/pbulk/files/pbulk/pbuild/pbuild.c
@@ -1,4 +1,4 @@
-/* $NetBSD: pbuild.c,v 1.6 2013/01/14 14:33:28 jperkin Exp $ */
+/* $NetBSD: pbuild.c,v 1.7 2015/11/03 19:06:47 joerg Exp $ */
/*-
* Copyright (c) 2007 Joerg Sonnenberger <joerg@NetBSD.org>.
@@ -150,6 +150,7 @@ main(int argc, char **argv)
if (argc != 0)
usage();
client_mode(client_port);
+ /* UNREACHABLE */
}
if (argc != 3)
@@ -160,10 +161,12 @@ main(int argc, char **argv)
init_jobs(argv[0], argv[1], argv[2]);
- if (master_port != NULL)
- master_mode(master_port, start_script);
- else
- standalone_mode();
+ if (has_job()) {
+ if (master_port != NULL)
+ master_mode(master_port, start_script);
+ else
+ standalone_mode();
+ }
if (report_file)
finish_build(report_file);
diff --git a/pkgtools/pbulk/files/pbulk/pbuild/pbuild.h b/pkgtools/pbulk/files/pbulk/pbuild/pbuild.h
index 052e884b4d2..3ac6ad0696f 100644
--- a/pkgtools/pbulk/files/pbulk/pbuild/pbuild.h
+++ b/pkgtools/pbulk/files/pbulk/pbuild/pbuild.h
@@ -1,4 +1,4 @@
-/* $NetBSD: pbuild.h,v 1.6 2011/11/27 19:53:30 joerg Exp $ */
+/* $NetBSD: pbuild.h,v 1.7 2015/11/03 19:06:47 joerg Exp $ */
/*-
* Copyright (c) 2007 Joerg Sonnenberger <joerg@NetBSD.org>.
@@ -114,6 +114,7 @@ struct build_job {
extern int verbosity;
void init_jobs(const char *, const char *, const char *);
+int has_job(void);
struct build_job *get_job(void);
void process_job(struct build_job *, enum job_state, int);
int build_package(const char *, size_t);
diff --git a/pkgtools/pbulk/files/pbulk/pscan/jobs.c b/pkgtools/pbulk/files/pbulk/pscan/jobs.c
index 8b11e059ed9..1ae250e2d9c 100644
--- a/pkgtools/pbulk/files/pbulk/pscan/jobs.c
+++ b/pkgtools/pbulk/files/pbulk/pscan/jobs.c
@@ -1,4 +1,4 @@
-/* $NetBSD: jobs.c,v 1.7 2012/11/30 16:22:49 joerg Exp $ */
+/* $NetBSD: jobs.c,v 1.8 2015/11/03 19:06:48 joerg Exp $ */
/*-
* Copyright (c) 2007 Joerg Sonnenberger <joerg@NetBSD.org>.
@@ -296,6 +296,28 @@ add_job_full(const char *location)
++len_jobs;
}
+int
+has_job(void)
+{
+ size_t i;
+ struct scan_entry *e;
+ struct scan_job * job;
+
+ for (i = first_undone_job; i < len_jobs; ++i) {
+ job = &jobs[i];
+ if (job->state != JOB_OPEN)
+ continue;
+ e = find_old_scan(job->pkg_location);
+ if (e == NULL)
+ return 1;
+ job->scan_output = xstrdup(e->data);
+ process_job(job, JOB_DONE);
+ i = first_undone_job - 1;
+ }
+
+ return 0;
+}
+
struct scan_job *
get_job(void)
{
diff --git a/pkgtools/pbulk/files/pbulk/pscan/pscan.c b/pkgtools/pbulk/files/pbulk/pscan/pscan.c
index 415e558a530..393868a4380 100644
--- a/pkgtools/pbulk/files/pbulk/pscan/pscan.c
+++ b/pkgtools/pbulk/files/pbulk/pscan/pscan.c
@@ -1,4 +1,4 @@
-/* $NetBSD: pscan.c,v 1.8 2012/11/23 12:13:35 joerg Exp $ */
+/* $NetBSD: pscan.c,v 1.9 2015/11/03 19:06:48 joerg Exp $ */
/*-
* Copyright (c) 2007 Joerg Sonnenberger <joerg@NetBSD.org>.
@@ -150,10 +150,12 @@ main(int argc, char **argv)
else
read_limited_list();
- if (master_port != NULL)
- master_mode(master_port, start_script);
- else
- standalone_mode();
+ if (has_job()) {
+ if (master_port != NULL)
+ master_mode(master_port, start_script);
+ else
+ standalone_mode();
+ }
write_jobs(output_file);
diff --git a/pkgtools/pbulk/files/pbulk/pscan/pscan.h b/pkgtools/pbulk/files/pbulk/pscan/pscan.h
index c0664817a36..61ad5381213 100644
--- a/pkgtools/pbulk/files/pbulk/pscan/pscan.h
+++ b/pkgtools/pbulk/files/pbulk/pscan/pscan.h
@@ -1,4 +1,4 @@
-/* $NetBSD: pscan.h,v 1.3 2012/11/23 12:13:35 joerg Exp $ */
+/* $NetBSD: pscan.h,v 1.4 2015/11/03 19:06:48 joerg Exp $ */
/*-
* Copyright (c) 2007 Joerg Sonnenberger <joerg@NetBSD.org>.
@@ -60,5 +60,6 @@ void add_job_full(const char *);
struct scan_job *get_job(void);
void process_job(struct scan_job *, enum job_state);
void write_jobs(const char *);
+int has_job(void);
void read_old_scan(const char *);