diff --git a/man/hostnamectl.xml b/man/hostnamectl.xml
index 3239049095..0f50bf9e44 100644
--- a/man/hostnamectl.xml
+++ b/man/hostnamectl.xml
@@ -201,6 +201,7 @@
+
diff --git a/shell-completion/bash/hostnamectl b/shell-completion/bash/hostnamectl
index 63edc084ae..27a2fe63d2 100644
--- a/shell-completion/bash/hostnamectl
+++ b/shell-completion/bash/hostnamectl
@@ -35,7 +35,7 @@ _hostnamectl() {
local i verb comps
local cur=${COMP_WORDS[COMP_CWORD]} prev=${COMP_WORDS[COMP_CWORD-1]}
local -A OPTS=(
- [STANDALONE]='-h --help --version --transient --static --pretty --no-ask-password'
+ [STANDALONE]='-h --help --version --transient --static --pretty --no-ask-password -j'
[ARG]='-H --host -M --machine --json'
)
diff --git a/src/hostname/hostnamectl.c b/src/hostname/hostnamectl.c
index 4b92ac2b23..4abcf40c26 100644
--- a/src/hostname/hostnamectl.c
+++ b/src/hostname/hostnamectl.c
@@ -616,6 +616,7 @@ static int help(void) {
" --pretty Only set pretty hostname\n"
" --json=pretty|short|off\n"
" Generate JSON output\n"
+ " -j Same as --json=pretty on tty, --json=short otherwise\n"
"\nSee the %s for details.\n",
program_invocation_short_name,
ansi_highlight(),
@@ -658,7 +659,7 @@ static int parse_argv(int argc, char *argv[]) {
assert(argc >= 0);
assert(argv);
- while ((c = getopt_long(argc, argv, "hH:M:", options, NULL)) >= 0)
+ while ((c = getopt_long(argc, argv, "hH:M:j", options, NULL)) >= 0)
switch (c) {
@@ -701,6 +702,10 @@ static int parse_argv(int argc, char *argv[]) {
break;
+ case 'j':
+ arg_json_format_flags = JSON_FORMAT_PRETTY_AUTO|JSON_FORMAT_COLOR_AUTO;
+ break;
+
case '?':
return -EINVAL;