Commit Graph

369 Commits

Author SHA1 Message Date
Devin Teske
fda64d7c85 Add new alias "bsdconfig api" (same as "bsdconfig includes")
NB: My fingers like typing "api" a lot more than "includes"

MFC after:	3 days
2015-02-09 19:20:59 +00:00
Devin Teske
94f2a70e88 Replace the only instance of sed(1) in bsdconfig(8) with awk(1).
MFC after:	3 days
2015-02-09 19:16:19 +00:00
Devin Teske
dd8a17d457 Revert SVN r278464 -- fingers were in perforce mode (premature
commit of future stuffs not yet ready).
2015-02-09 17:22:54 +00:00
Devin Teske
a831d7d1c5 Replace the only instance of sed(1) in bsdconfig(8) with awk(1).
MFC after:	3 days
2015-02-09 17:18:10 +00:00
Devin Teske
e91afc1cda Default bsdconfig timezone' and tzsetup' to `-s' in a VM.
Recommended by:	cperciva
Reviewed by:	cperciva
Relnotes:	tzsetup and bsdconfig now assume that the "hardware" clock inside a VM is set to UTC
2014-11-11 19:37:17 +00:00
Alexander V. Chernikov
603eaf792b Renove faith(4) and faithd(8) from base. It looks like industry
have chosen different (and more traditional) stateless/statuful
NAT64 as translation mechanism. Last non-trivial commits to both
faith(4) and faithd(8) happened more than 12 years ago, so I assume
it is time to drop RFC3142 in FreeBSD.

No objections from:	net@
2014-11-09 21:33:01 +00:00
Devin Teske
7431dfd458 Follow-up to r255036; remove beforeinstall directives from bsdconfig(8)
Makefile's, fixing concurrent installworld (`make -j17 installworld').

Thanks to:	delphij, emaste
Reviewed by:	delphij
MFC after:	3 days
X-MFC-to:	stable/10, stable/9
2014-11-04 00:14:38 +00:00
Devin Teske
09866e97a6 Rename awk(1) implementation of GNU awk's built-in asorti() function to
prevent fatal conflict should one-true-awk ever be replaced -- e.g., in
an appliance -- with GNU awk. NB: Renamed my implementation to _asorti()

MFC after:	3 days
X-MFC-to:	stable/10, stable/9
2014-10-14 03:22:37 +00:00
Devin Teske
489979a77d Fix awk(1) asorti() implementation to work when called in a loop.
MFC after:	3 days
X-MFC-to:	stable/10, stable/9
2014-10-14 03:11:46 +00:00
Devin Teske
b74ae45b45 Fix regression introduced by SVN r270954. Correct way to reset getopts
is to set OPTIND to 1, not unset it (which causes an error).

Thanks to:	jilles
2014-09-02 22:59:40 +00:00
Devin Teske
2c4a847864 Fix a bug where command line arguments could be misprocessed if getopts is
used prior to f_dialog_init() -- e.g., in a script that sets
DIALOG_SELF_INITIALIZE to NULL, preventing f_dialog_init() from being run
automaticaly when `dialog.subr' is included. Caused by sub-shell processing
of arguments inheriting prior value of $OPTIND, used by getopts. Solved by
unsetting OPTIND prior to [re-]processing of positional arguments.
2014-09-01 22:53:47 +00:00
Stefan Eßer
f071b64ed3 More man pages that need to know about vt in addition to syscons.
MFC after:	3 dayS
2014-08-26 10:55:08 +00:00
Devin Teske
36fb8bfcd3 Optimize f_which() to be slightly faster still. 2014-08-24 16:40:31 +00:00
Devin Teske
3a2e3fe269 Add `-A' flag to pkg-install(8) invocation when installing dependencies.
MFC after:	3 days
X-MFC-to:	stable/10, stable/9
Reported by:	gjb
Discussed with:	jelischer, gjb, bdrewery
2014-08-21 17:15:09 +00:00
Devin Teske
341e5ca37c Add required `exec' before Xdialog(1) invocation for the case where we
expect (require) data on stdin. The effect of this is that, when
backgrounded, $! returns the pid of an Xdialog(1) instance instead of
an sh(1) instance -- the difference being a later kill of $! will reach
the Xdialog(1) instance whereas without the exec the kill succeeds on
the sh(1) instance leaving Xdialog(1) open.
2014-08-03 05:02:00 +00:00
Devin Teske
7729d5e3ac Update command and add check for edge-case. 2014-07-31 22:13:31 +00:00
Devin Teske
13243ba9b2 Fix a syntax error when running under bash(1) for portability. 2014-07-31 22:05:18 +00:00
Devin Teske
4d5a468d88 Define a setvar() function for platforms using a shell unlike FreeBSD's
sh(1) for `/bin/sh' (e.g., bash(1) which lacks a setvar definition).
This is to improve portability to other Operating Systems (e.g., Linux).
2014-07-31 22:00:36 +00:00
Devin Teske
298f5fdc24 Fix a bug where include file `networking/services.subr' was not being
properly clustered.

Change `fixedsize' to `fixedsize = true' to satisfy newer versions of dot(1)
generating error "Warning: <stdin>: syntax error in line 27 near ','".

Remove bounding cluster surrounding various include-groupings, allowing
groups of include files to float freely to the greatest consumer (reducing
the density of rendered diagrams).

While here, change the bgcolor of include clusters from white to X11 color
`thistle' (a light purple).

Also, add the word "Subroutines" after include cluster labels.

Do not terminate the digraph definition with a semi-colon [;] after the
ending brace to satisfy newer versions of dot(1) generating error "Warning:
<stdin>: syntax error in line 940 near ';'".

MFC after:	3 days
X-MFC-to:	stable/10, stable/9
2014-07-23 21:08:04 +00:00
Devin Teske
95d45410b5 Add example script `add_some_packages.sh', demonstrating how to install
a list of packages using the bsdconfig(8) API, providing dialog(8) based
user experience (versus plain console output were you to use pkg(8)
directly to install the same list of packages).

Remove example script `browse_packages_ftp.sh', made obsolete because
the digests.txz and packagesite.txz databases for pkg(8) are not
available via FTP (HTTP only to pkg.freebsd.org SRV hosts).

Update example script `browse_packages_http.sh', made to work with new
pkg(8) demonstrating how to generate a local package repository.

Fix a bug in `bsdconfig packages' where packages were listed twice. This
fix requires pkg(8) version 1.2.7_4 or higher.

NB: It is the introduction of pkg(8) 1.2.7_4 wherein I am also able to
drastically reduce the generation time of package dependencies prior to
the dialog display (by utilizing the new `-I' flag to pkg-rquery(8)).

While here, fix a positional argument nit for f_index_initialize() of
`packages/index.subr' include (the one and only argument is positional
argument 1 to state the by-ref handle, indicating the variable to set
in the caller's namespace; the nit I'm fixing here is that we were
querying positional argument 2 for this information incorrectly; caused
by a missing hunk back around SVN r257795).

Fix a bug in sysrc(8) described by PR bin/187458 "sysrc(8) silently and
unexpectedly bootstraps pkg". This was caused by an explicit entry in
`/usr/share/bsdconfig/common.subr' (used by sysrc(8)) that called pkg(8)
to populate the $PKG_ABI global (called in a way that allows implicit
bootstrap of pkg(8)). The solution to which was to find every place in
bsdconfig(8) that requires the $PKG_ABI global and add a layer of
protection by way of introducing the new API call f_musthavepkg_init()
(provided by new include, `/usr/share/bsdconfig/packages/musthavepkg.subr'
intented to mirror `/usr/share/bsdconfig/mustberoot.subr'). When the
$PKG_ABI global is required, you can use `f_musthavepkg_init' to cause
graceful premature termination in the event that pkg(8) has not yet been
bootstrapped, and thus cannot be used to populate $PKG_ABI.

NB: If running interactively ($nonInteractive is NULL or unset), the
f_musthavepkg_init() API call will attempt to bootstrap pkg(8), but only
if the user chooses "Yes" to a Yes/No dialog confirming it is ok to
bootstrap.

While here, simplify an if-conditional in `media/http.subr' include to
use sh(1) inline assignment-with-break.

Also, fix a bug in `media/http.subr' and `media/httpproxy.subr' wherein
the error messages for various HTTP failures were not finding their way
to the console (needed to pass stdout to pass-thru descriptor).

While here, remove the executable bit from `packages/categories.subr',
`packages/index.subr', and `packages/packages.subr' includes.

Fix issues where pkg(8) complains about PACKAGESITE being defined.
Previously, we would set $PACKAGESITE and export it. Now we only set
$PACKAGESITE for invocations of "pkg update" -- getting rid of all the
spurious warnings about PACKAGESITE being deprecated (it's still used
in the case of "pkg update" for simplicity versus having to configure
a config-file).

Remove the leading argument from invocations of f_index_initialize() in
`packages/packages.subr' include. The leading argument no longer means
what it used to, pre SVN r257995).

PR:		bin/187458
Reviewed by:	nwhitehorn
MFC after:	1 week
X-MFC-to:	stable/10, stable/9
2014-07-22 23:10:12 +00:00
Devin Teske
c7136fd54f Fix a code typo that prevented mkdir from firing (unnoticed
usually because another part of the code succeeded in making
the same directory).

MFC after:      3 days
2014-06-20 17:40:38 +00:00
Baptiste Daroussin
01c2b8ac0d use .Mt to mark up email addresses consistently (part2)
PR:		191174
Submitted by:	Franco Fichtner  <franco@lastsummer.de>
2014-06-20 09:57:27 +00:00
Devin Teske
0aec73f349 Update example portion of comment to coincide with r264840 changes.
MFC after:	3 days
2014-05-17 04:29:14 +00:00
Devin Teske
9ecd54f24f Implement GEOM based media device classification. You'll notice a few
different things from this commit:
+ More devices. Devices that were previously ignored are now present.
+ Faster device scanning. "There is no try, only Do" -- f_device_try()
  is no longer the basis of device scanning as GEOM provides [nearly]
  all devices (doesn't provide network devices).
+ More information available as non-root. Usually you have to be root
  to do things like taste filesystems, and that limits the amount of
  information available to non-root users; with GEOM, we see all even
  running unprivileged as the brunt of information (except for so-
  called ``dangerously dedicated'' file systems) is represented by the
  `kern.geom.confxml' sysctl(8) MIB.
NB: Only really useful for external scripts that use the API and run as
    non-root; where this code is used in bsdconfig(8) and bsdinstall(8)
    you are running as root so can detect even ``dangerously dedicated''
    file systems that are not present in GEOM; e.g., no PART class for
    a DOS filesystem written directly to disk without partition table).
+ No more use of legacy tools such as diskinfo(8) to get disk capacity
  or fdisk(8) to see partitions.

MFC after:	1 week
2014-04-23 22:04:04 +00:00
Devin Teske
f589320a0e Rewrite usermgmt -- hooking it into the scripting system with dispatch
commands addUser, deleteUser, and editUser. Getting rid of the awkward-
to-use `userinput' bolt-on which Ron and I talked about rewriting.
2014-03-14 03:42:05 +00:00
Devin Teske
b00c7d1aa2 Add protection against input containing single-quotes (e.g., i18n-users). 2014-03-14 03:37:08 +00:00
Devin Teske
863bb16483 For non-interactive scripts, forgot to check we were given an argument
before proceeding.
2014-03-14 03:34:43 +00:00
Devin Teske
faae0586c2 Fix a bug preventing errors from pw(8) from filtering up to a dialog.
Programs running as rvalue to pipe cannot access current namespace.
2014-03-14 03:33:03 +00:00
Devin Teske
160c413360 Reduce the sleep cycle when using dialog(1) to 1-second. 2014-03-14 03:28:21 +00:00
Devin Teske
7bac4bd22a Fix comments and whitespace. 2014-03-14 03:25:33 +00:00
Devin Teske
072b47f31c Fix a code-typo that prevented auto-sizing of the dialog. 2014-03-14 03:15:02 +00:00
Devin Teske
2fb115122e Point hat! Fix a broken f_isinteger(). 2014-03-14 03:00:02 +00:00
Devin Teske
bc3f5ec90b Remove useless NULL string '' in compound strings. Look very closely. 2014-03-14 02:56:49 +00:00
Devin Teske
ad40259ce6 Fix future namespace issues for functions taking $var_to_set -- functions
taking a variable to set need to make sure they protect their locals; if
$var_to_set positional argument coincides with a local the expected call
to `setvar' will fail to reach outside of the function's namespace. When
such collisions are experienced (as I did in the rewrite of usermgmt) the
solution is to append a full or abbreviated version of the function name
to the local (ultimately eliminating collisions). This is rarely needed
and only occurs when you have a lot of like-named functions that pass
very similar $var_to_set positional arguments to each other (such as-is
the case with an expansive library such as `dialog.subr').
2014-03-14 02:50:32 +00:00
Devin Teske
4328ca3e04 Update copyright. 2014-03-14 02:40:52 +00:00
Devin Teske
96f88f0f56 Comments. 2014-03-14 02:39:42 +00:00
Devin Teske
c4364d0177 Add debug statement just before attempting to exec a module. 2014-03-14 02:38:56 +00:00
Devin Teske
83e449a35a Remove indexfile from debug statement as it is already logged by
f_index_menusel_command() used just-prior to this debug statement.
Also, log the arguments being passed to the resword.
2014-03-14 02:37:39 +00:00
Devin Teske
931e2be620 Remove vestigial global, no-longer used since SVN r262904. 2014-03-10 21:37:40 +00:00
Devin Teske
bfb8efd0ed Whitespace. 2014-03-10 21:35:27 +00:00
Devin Teske
073972f1a9 Take a group name on the command-line if available. 2014-03-07 22:29:00 +00:00
Devin Teske
e86ab4813c Fix copy/paste error in a comment. 2014-03-07 22:24:53 +00:00
Devin Teske
9aab41b1c2 Change dipatch words from group* to *Group to backward compatible with
ye-olden sysinstall(8).
2014-03-07 22:17:35 +00:00
Devin Teske
27c43fe1f3 Rewrite groupmgmt -- hooking it into the scripting system with dispatch
commands groupAdd, groupDelete, and groupEdit. Getting rid of the awkward-
to-use `groupinput' bolt-on which Ron and I talked about rewriting.
2014-03-07 20:44:19 +00:00
Devin Teske
33db33a752 Comment -- to go with NL global introduced (but not mentioned) by r262901 2014-03-07 20:32:26 +00:00
Devin Teske
05a0a04aee s/__number/__num/ for code clarify but more to prevent localization of
__number if passed as the var_to_set argument.
2014-03-07 20:29:19 +00:00
Devin Teske
4bed406fb7 Centralize function name. Update a comment while here. 2014-03-07 20:24:59 +00:00
Devin Teske
67602532c3 Make f_show_err non-fatal. 2014-03-07 20:20:27 +00:00
Devin Teske
2a2674499e Fix incorrect return status if var_to_set and var_to_get are the same. 2014-03-07 20:18:39 +00:00
Devin Teske
9680f649c5 Fix a typo in a comment. 2014-03-07 20:15:52 +00:00