summaryrefslogtreecommitdiffstats
path: root/usr.sbin/pkg_install/lib/exec.c
diff options
context:
space:
mode:
authorflz <flz@FreeBSD.org>2010-04-23 11:07:43 +0000
committerflz <flz@FreeBSD.org>2010-04-23 11:07:43 +0000
commite9cfab3d986b32566bb9678314eba47c39f07856 (patch)
tree6be9bed7e8e47b70e4765242d3ba0b6144132981 /usr.sbin/pkg_install/lib/exec.c
parent312805d71c96331a79af508c70e925b2eae8391f (diff)
downloadFreeBSD-src-e9cfab3d986b32566bb9678314eba47c39f07856.zip
FreeBSD-src-e9cfab3d986b32566bb9678314eba47c39f07856.tar.gz
- Take libinstall.a out of pkg_install and make it a proper shared library.
- Rework the wrapper support to check libpkg version as well as pkg_install version. - Add libfetch to _prebuild_libs. - There are no new features introduced. Notes: the API is not stable, so basically, do not use libpkg in your projects for now. Also there's no manpage for libpkg yet, because the API will change drastically. I repeat, do not use libpkg for now.
Diffstat (limited to 'usr.sbin/pkg_install/lib/exec.c')
-rw-r--r--usr.sbin/pkg_install/lib/exec.c106
1 files changed, 0 insertions, 106 deletions
diff --git a/usr.sbin/pkg_install/lib/exec.c b/usr.sbin/pkg_install/lib/exec.c
deleted file mode 100644
index fc8220c..0000000
--- a/usr.sbin/pkg_install/lib/exec.c
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * FreeBSD install - a package for the installation and maintainance
- * of non-core utilities.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * Jordan K. Hubbard
- * 18 July 1993
- *
- * Miscellaneous system routines.
- *
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-#include "lib.h"
-#include <err.h>
-
-/*
- * Unusual system() substitute. Accepts format string and args,
- * builds and executes command. Returns exit code.
- */
-
-int
-vsystem(const char *fmt, ...)
-{
- va_list args;
- char *cmd;
- int ret, maxargs;
-
- maxargs = sysconf(_SC_ARG_MAX);
- maxargs -= 32; /* some slop for the sh -c */
- cmd = malloc(maxargs);
- if (!cmd) {
- warnx("vsystem can't alloc arg space");
- return 1;
- }
-
- va_start(args, fmt);
- if (vsnprintf(cmd, maxargs, fmt, args) > maxargs) {
- warnx("vsystem args are too long");
- return 1;
- }
-#ifdef DEBUG
-printf("Executing %s\n", cmd);
-#endif
- ret = system(cmd);
- va_end(args);
- free(cmd);
- return ret;
-}
-
-char *
-vpipe(const char *fmt, ...)
-{
- FILE *fp;
- char *cmd, *rp;
- int maxargs;
- va_list args;
-
- rp = malloc(MAXPATHLEN);
- if (!rp) {
- warnx("vpipe can't alloc buffer space");
- return NULL;
- }
- maxargs = sysconf(_SC_ARG_MAX);
- maxargs -= 32; /* some slop for the sh -c */
- cmd = alloca(maxargs);
- if (!cmd) {
- warnx("vpipe can't alloc arg space");
- return NULL;
- }
-
- va_start(args, fmt);
- if (vsnprintf(cmd, maxargs, fmt, args) > maxargs) {
- warnx("vsystem args are too long");
- return NULL;
- }
-#ifdef DEBUG
- fprintf(stderr, "Executing %s\n", cmd);
-#endif
- fflush(NULL);
- fp = popen(cmd, "r");
- if (fp == NULL) {
- warnx("popen() failed");
- return NULL;
- }
- get_string(rp, MAXPATHLEN, fp);
-#ifdef DEBUG
- fprintf(stderr, "Returned %s\n", rp);
-#endif
- va_end(args);
- if (pclose(fp) || (strlen(rp) == 0)) {
- free(rp);
- return NULL;
- }
- return rp;
-}
OpenPOWER on IntegriCloud