Let pkg_add use the ENV variable PACKAGESUFFIX. This
can be used to override the default .tbz package extension to .txz .tgz or .tar Submitted by: kmoore Obtained from: PC-BSD Sponsored by: iXsystems MFC after: 3 days
This commit is contained in:
parent
a6cff10f2a
commit
d83c17fc0d
@ -234,10 +234,17 @@ main(int argc, char **argv)
|
||||
remotepkg = temppackageroot;
|
||||
if (!((ptr = strrchr(remotepkg, '.')) && ptr[1] == 't' &&
|
||||
(ptr[2] == 'b' || ptr[2] == 'g' || ptr[2] == 'x') &&
|
||||
ptr[3] == 'z' && !ptr[4]))
|
||||
if (strlcat(remotepkg, ".tbz",
|
||||
sizeof(temppackageroot)) >= sizeof(temppackageroot))
|
||||
errx(1, "package name too long");
|
||||
ptr[3] == 'z' && !ptr[4])) {
|
||||
if (getenv("PACKAGESUFFIX")) {
|
||||
if (strlcat(remotepkg, getenv("PACKAGESUFFIX"),
|
||||
sizeof(temppackageroot)) >= sizeof(temppackageroot))
|
||||
errx(1, "package name too long");
|
||||
} else {
|
||||
if (strlcat(remotepkg, ".tbz",
|
||||
sizeof(temppackageroot)) >= sizeof(temppackageroot))
|
||||
errx(1, "package name too long");
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!strcmp(*argv, "-")) /* stdin? */
|
||||
pkgs[ch] = (char *)"-";
|
||||
|
@ -307,8 +307,12 @@ pkg_do(char *pkg)
|
||||
*sep = '\0';
|
||||
strlcat(subpkg, "/All/", sizeof subpkg);
|
||||
strlcat(subpkg, p->name, sizeof subpkg);
|
||||
if ((ext = strrchr(pkg, '.')) == NULL)
|
||||
ext = ".tbz";
|
||||
if ((ext = strrchr(pkg, '.')) == NULL) {
|
||||
if (getenv("PACKAGESUFFIX"))
|
||||
ext = getenv("PACKAGESUFFIX");
|
||||
else
|
||||
ext = ".tbz";
|
||||
}
|
||||
strlcat(subpkg, ext, sizeof subpkg);
|
||||
pkg_do(subpkg);
|
||||
}
|
||||
@ -345,8 +349,13 @@ pkg_do(char *pkg)
|
||||
const char *ext;
|
||||
|
||||
ext = strrchr(pkg_fullname, '.');
|
||||
if (ext == NULL)
|
||||
ext = ".tbz";
|
||||
if (ext == NULL) {
|
||||
if (getenv("PACKAGESUFFIX")) {
|
||||
ext = getenv("PACKAGESUFFIX");
|
||||
} else {
|
||||
ext = ".tbz";
|
||||
}
|
||||
}
|
||||
snprintf(path, FILENAME_MAX, "%s/%s%s", getenv("_TOP"), p->name, ext);
|
||||
if (fexists(path))
|
||||
cp = path;
|
||||
|
@ -553,6 +553,11 @@ The environment variable
|
||||
specifies an alternative location to save downloaded packages to when
|
||||
.Fl K
|
||||
option is used.
|
||||
.Pp
|
||||
The environment variable
|
||||
.Ev PACKAGESUFFIX
|
||||
specifies an alternative file extension to use when fetching remote
|
||||
packages. Default is .tbz
|
||||
.Sh FILES
|
||||
.Bl -tag -width /var/db/pkg -compact
|
||||
.It Pa /var/tmp
|
||||
|
@ -140,7 +140,7 @@ fileFindByPath(const char *base, const char *fname)
|
||||
{
|
||||
static char tmp[FILENAME_MAX];
|
||||
char *cp;
|
||||
const char *suffixes[] = {".tbz", ".tgz", ".tar", NULL};
|
||||
const char *suffixes[] = {".tbz", ".tgz", ".tar", ".txz", NULL};
|
||||
int i;
|
||||
|
||||
if (fexists(fname) && isfile(fname)) {
|
||||
|
@ -73,7 +73,10 @@ fileGetURL(const char *base, const char *spec, int keep_package)
|
||||
*(cp + 1) = '\0';
|
||||
strcat(cp, "All/");
|
||||
strcat(cp, spec);
|
||||
strcat(cp, ".tbz");
|
||||
if (getenv("PACKAGESUFFIX"))
|
||||
strcat(cp, getenv("PACKAGESUFFIX"));
|
||||
else
|
||||
strcat(cp, ".tbz");
|
||||
}
|
||||
else
|
||||
return NULL;
|
||||
@ -85,7 +88,10 @@ fileGetURL(const char *base, const char *spec, int keep_package)
|
||||
*/
|
||||
strcpy(fname, hint);
|
||||
strcat(fname, spec);
|
||||
strcat(fname, ".tbz");
|
||||
if (getenv("PACKAGESUFFIX"))
|
||||
strcat(fname, getenv("PACKAGESUFFIX"));
|
||||
else
|
||||
strcat(fname, ".tbz");
|
||||
}
|
||||
}
|
||||
else
|
||||
|
Loading…
Reference in New Issue
Block a user