diff options
author | dab <dab@FreeBSD.org> | 2017-09-25 20:04:14 +0000 |
---|---|---|
committer | dab <dab@FreeBSD.org> | 2017-09-25 20:04:14 +0000 |
commit | be06c7722fe019f167fd69fbfca2fdf4c0119108 (patch) | |
tree | c703dbf98ea6836b6e563d60f1ec3f9289d93813 /libexec | |
parent | f05e39ee784e04ede5d24fd1b55de43389a91cbb (diff) | |
download | FreeBSD-src-be06c7722fe019f167fd69fbfca2fdf4c0119108.zip FreeBSD-src-be06c7722fe019f167fd69fbfca2fdf4c0119108.tar.gz |
MFC r323252:
Add a new getty/gettytab capability to generate an initial message dynamically.
This modification adds a new gettytab(5) option (iM) to specify a
program to run that will generate the initial (banner) message that is
displayed before the login prompt. Such a capability is useful when
dynamic information is needed in the banner message that cannot be
supplied by the set of % substitution sequences available in the "im"
option.
Sponsored by: Dell EMC
Diffstat (limited to 'libexec')
-rw-r--r-- | libexec/getty/gettytab.5 | 6 | ||||
-rw-r--r-- | libexec/getty/gettytab.h | 1 | ||||
-rw-r--r-- | libexec/getty/init.c | 1 | ||||
-rw-r--r-- | libexec/getty/main.c | 2 |
4 files changed, 8 insertions, 2 deletions
diff --git a/libexec/getty/gettytab.5 b/libexec/getty/gettytab.5 index 0011f3a..b1ddda2 100644 --- a/libexec/getty/gettytab.5 +++ b/libexec/getty/gettytab.5 @@ -28,7 +28,7 @@ .\" from: @(#)gettytab.5 8.4 (Berkeley) 4/19/94 .\" $FreeBSD$ .\" " -.Dd February 2, 2017 +.Dd August 23, 2017 .Dt GETTYTAB 5 .Os .Sh NAME @@ -130,6 +130,8 @@ hangup line on last close .It "ig bool false ignore garbage characters in login name" .It "im str" Ta Dv NULL .Ta No "initial (banner) message" +.It "iM str" Ta Dv NULL +.Ta No "execute named file to generate initial (banner) message" .It "in str" Ta So Li ^C .Sc Ta No "interrupt character" .It "is num unused input speed" @@ -146,7 +148,7 @@ hangup line on last close .It "mb bool false do flow control based on carrier" .It "nc bool false terminal does not supply carrier (set clocal)" .It "nl bool false terminal has (or might have) a newline character" -.It "np bool false terminal uses no parity (i.e. 8-bit characters)" +.It "np bool false terminal uses no parity (i.e., 8-bit characters)" .It "nx str default next table (for auto speed selection)" .It "o0 num unused tty output flags to write messages" .It "o1 num unused tty output flags to read login name" diff --git a/libexec/getty/gettytab.h b/libexec/getty/gettytab.h index 67ad95f..83b17f0 100644 --- a/libexec/getty/gettytab.h +++ b/libexec/getty/gettytab.h @@ -88,6 +88,7 @@ struct gettyflags { #define AC gettystrs[28].value #define AL gettystrs[29].value #define DF gettystrs[30].value +#define IMP gettystrs[31].value /* * Numeric definitions. diff --git a/libexec/getty/init.c b/libexec/getty/init.c index 6959e8d..a7077a3 100644 --- a/libexec/getty/init.c +++ b/libexec/getty/init.c @@ -82,6 +82,7 @@ struct gettystrs gettystrs[] = { { "ac" }, /* modem answer-chat */ { "al" }, /* user to auto-login */ { "df", datefmt}, /* format for strftime() */ + { "iM" }, /* initial message program */ { 0 } }; diff --git a/libexec/getty/main.c b/libexec/getty/main.c index 94ecb07..9b2c964 100644 --- a/libexec/getty/main.c +++ b/libexec/getty/main.c @@ -324,6 +324,8 @@ main(int argc, char *argv[]) } first_time = 0; + if (IMP && *IMP && !(PL && PP)) + system(IMP); if (IM && *IM && !(PL && PP)) putf(IM); if (setjmp(timeout)) { |