svn commit: r216842 - in user/nwhitehorn/bsdinstall: . distextract
distfetch scripts
Nathan Whitehorn
nwhitehorn at FreeBSD.org
Fri Dec 31 15:16:19 UTC 2010
Author: nwhitehorn
Date: Fri Dec 31 15:16:18 2010
New Revision: 216842
URL: http://svn.freebsd.org/changeset/base/216842
Log:
Fix a spelling error pointed out by brucec, repair distfetch so it works
again, and improve documentation.
Modified:
user/nwhitehorn/bsdinstall/NOTES
user/nwhitehorn/bsdinstall/README
user/nwhitehorn/bsdinstall/bsdinstall
user/nwhitehorn/bsdinstall/distextract/distextract.c
user/nwhitehorn/bsdinstall/distfetch/distfetch.c
user/nwhitehorn/bsdinstall/scripts/auto
Modified: user/nwhitehorn/bsdinstall/NOTES
==============================================================================
--- user/nwhitehorn/bsdinstall/NOTES Fri Dec 31 14:03:57 2010 (r216841)
+++ user/nwhitehorn/bsdinstall/NOTES Fri Dec 31 15:16:18 2010 (r216842)
@@ -1,3 +1,15 @@
Targets for tarballs: installkernel installworld (distrib-dirs distribution)
Tools used in scripts: dialog sh awk sort cp dd ifconfig sysctl xargs mkdir mount cat uname netstat newfs
+
+Environment variables affecting modules:
+- DISTRIBUTIONS: List of tarballs to unpack, including .tgz extension
+- BSDINSTALL_DISTDIR: Files system location at which to download distfiles and
+ from which to extract them
+- BSDINSTALL_DISTSITE: Base URL for downloading distfiles. Will be downloaded
+ from $BSDINSTALL_DISTSITE/$DIST
+- BSDINSTALL_LOG: Log file path for installation log
+- PATH_FSTAB: fstab file to use. Need not exist yet.
+- BSDINSTALL_CHROOT: Destination location for the installation. File systems
+ are mounted here and files installed to this path.
+
Modified: user/nwhitehorn/bsdinstall/README
==============================================================================
--- user/nwhitehorn/bsdinstall/README Fri Dec 31 14:03:57 2010 (r216841)
+++ user/nwhitehorn/bsdinstall/README Fri Dec 31 15:16:18 2010 (r216842)
@@ -21,7 +21,7 @@ Missing features:
Goals:
- Reinvent as few wheels as possible
-- Extensability
+- Extensibility
- Scriptability without a scripting language -- the installer itself should
be a script a user can modify
- Minimal grubbing around in outputs of shell commands with awk, sed, etc.
Modified: user/nwhitehorn/bsdinstall/bsdinstall
==============================================================================
--- user/nwhitehorn/bsdinstall/bsdinstall Fri Dec 31 14:03:57 2010 (r216841)
+++ user/nwhitehorn/bsdinstall/bsdinstall Fri Dec 31 15:16:18 2010 (r216842)
@@ -1,6 +1,6 @@
#!/bin/sh
-DISTRIBUTIONS="kernel world distribution"; export DISTRIBUTIONS
+DISTRIBUTIONS="kernel.tgz world.tgz distribution.tgz"; export DISTRIBUTIONS
BSDINSTALL_LOG="/tmp/bsdinstall_log"; export BSDINSTALL_LOG
PATH_FSTAB="/tmp/fstab"; export PATH_FSTAB
BSDINSTALL_DISTDIR="/var/dist"; export BSDINSTALL_DISTDIR
Modified: user/nwhitehorn/bsdinstall/distextract/distextract.c
==============================================================================
--- user/nwhitehorn/bsdinstall/distextract/distextract.c Fri Dec 31 14:03:57 2010 (r216841)
+++ user/nwhitehorn/bsdinstall/distextract/distextract.c Fri Dec 31 15:16:18 2010 (r216842)
@@ -70,8 +70,7 @@ extract_files(int nfiles, const char **f
archive = archive_read_new();
archive_read_support_format_all(archive);
archive_read_support_compression_all(archive);
- sprintf(path, "%s/%s.tgz", getenv("BSDINSTALL_DISTDIR"),
- files[i]);
+ sprintf(path, "%s/%s", getenv("BSDINSTALL_DISTDIR"), files[i]);
err = archive_read_open_filename(archive, path, 4096);
if (err != ARCHIVE_OK) {
snprintf(errormsg, sizeof(errormsg),
@@ -101,8 +100,7 @@ extract_files(int nfiles, const char **f
archive = archive_read_new();
archive_read_support_format_all(archive);
archive_read_support_compression_all(archive);
- sprintf(path, "%s/%s.tgz", getenv("BSDINSTALL_DISTDIR"),
- files[i]);
+ sprintf(path, "%s/%s", getenv("BSDINSTALL_DISTDIR"), files[i]);
err = archive_read_open_filename(archive, path, 4096);
items[i*2 + 1] = "In Progress";
Modified: user/nwhitehorn/bsdinstall/distfetch/distfetch.c
==============================================================================
--- user/nwhitehorn/bsdinstall/distfetch/distfetch.c Fri Dec 31 14:03:57 2010 (r216841)
+++ user/nwhitehorn/bsdinstall/distfetch/distfetch.c Fri Dec 31 15:16:18 2010 (r216842)
@@ -4,16 +4,37 @@
#include <fetch.h>
#include <cdialog/dialog.h>
-static int fetch_files(int nfiles, const char **urls);
+static int fetch_files(int nfiles, char **urls);
int
main(void)
{
- return (fetch_files(argc - 1, &argv[1]));
+ char *diststring = strdup(getenv("DISTRIBUTIONS"));
+ char **urls;
+ int i, retval, ndists = 0;
+ for (i = 0; diststring[i] != 0; i++)
+ if (isspace(diststring[i]) && !isspace(diststring[i+1]))
+ ndists++;
+ ndists++; /* Last one */
+
+ urls = calloc(ndists, sizeof(const char *));
+ for (i = 0; i < ndists; i++) {
+ urls[i] = malloc(PATH_MAX);
+ sprintf(urls[i], "%s/%s", getenv("BSDINSTALL_DISTSITE"),
+ strsep(&diststring, " \t"));
+ }
+
+ chdir(getenv("BSDINSTALL_DISTDIR"));
+ retval = fetch_files(ndists, urls);
+
+ free(diststring);
+ for (i = 0; i < ndists; i++)
+ free(urls[i]);
+ free(urls);
}
static int
-fetch_files(int nfiles, const char **urls)
+fetch_files(int nfiles, char **urls)
{
const char **items;
FILE *fetch_out, *file_out;
Modified: user/nwhitehorn/bsdinstall/scripts/auto
==============================================================================
--- user/nwhitehorn/bsdinstall/scripts/auto Fri Dec 31 14:03:57 2010 (r216841)
+++ user/nwhitehorn/bsdinstall/scripts/auto Fri Dec 31 15:16:18 2010 (r216842)
@@ -8,7 +8,7 @@ bsdinstall hostname
FETCH_DISTRIBUTIONS=""
for dist in $DISTRIBUTIONS; do
- if [ ! -f $BSDINSTALL_DISTDIR/$dist.tgz ]; then
+ if [ ! -f $BSDINSTALL_DISTDIR/$dist ]; then
FETCH_DISTRIBUTIONS="$FETCH_DISTRIBUTIONS $dist"
fi
done
More information about the svn-src-user
mailing list