Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
ansible
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
OpenEdx
ansible
Commits
bc17553d
Commit
bc17553d
authored
Jul 24, 2012
by
Jan-Piet Mens
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Support for colors in ansible-playbook
parent
432dae76
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
62 additions
and
3 deletions
+62
-3
bin/ansible-playbook
+62
-3
No files found.
bin/ansible-playbook
View file @
bc17553d
...
...
@@ -18,6 +18,7 @@
#######################################################
import
os
import
sys
import
getpass
...
...
@@ -27,6 +28,60 @@ from ansible import errors
from
ansible
import
callbacks
from
ansible
import
utils
ANSIBLE_COLOR
=
True
if
os
.
getenv
(
"ANSIBLE_NOCOLOR"
)
is
not
None
:
ANSIBLE_COLOR
=
False
if
not
sys
.
stdout
.
isatty
():
ANSIBLE_COLOR
=
False
# --- begin "pretty"
#
# pretty - A miniature library that provides a Python print and stdout
# wrapper that makes colored terminal text easier to use (eg. without
# having to mess around with ANSI escape sequences). This code is public
# domain - there is no license except that you must leave this header.
#
# Copyright (C) 2008 Brian Nez <thedude at bri1 dot com>
#
# http://nezzen.net/2008/06/23/colored-text-in-python-using-ansi-escape-sequences/
codeCodes
=
{
'black'
:
'0;30'
,
'bright gray'
:
'0;37'
,
'blue'
:
'0;34'
,
'white'
:
'1;37'
,
'green'
:
'0;32'
,
'bright blue'
:
'1;34'
,
'cyan'
:
'0;36'
,
'bright green'
:
'1;32'
,
'red'
:
'0;31'
,
'bright cyan'
:
'1;36'
,
'purple'
:
'0;35'
,
'bright red'
:
'1;31'
,
'yellow'
:
'0;33'
,
'bright purple'
:
'1;35'
,
'dark gray'
:
'1;30'
,
'bright yellow'
:
'1;33'
,
'normal'
:
'0'
}
def
stringc
(
text
,
color
):
"""String in color."""
if
ANSIBLE_COLOR
:
return
"
\033
["
+
codeCodes
[
color
]
+
"m"
+
text
+
"
\033
[0m"
else
:
return
text
# --- end "pretty"
def
colorize
(
lead
,
num
,
color
):
"""Print `lead' = `num' in `color'"""
if
num
==
0
:
color
=
'black'
;
if
ANSIBLE_COLOR
:
return
"
%
s
%
s
%-15
s"
%
(
stringc
(
lead
,
color
),
stringc
(
"="
,
color
),
stringc
(
str
(
num
),
color
))
else
:
return
"
%
s=
%-4
s"
%
(
lead
,
str
(
num
))
def
hostcolor
(
host
,
t
):
if
ANSIBLE_COLOR
:
if
t
[
'failures'
]
!=
0
or
t
[
'unreachable'
]
!=
0
:
return
"
%-41
s"
%
stringc
(
host
,
'red'
)
return
"
%-30
s"
%
host
def
main
(
args
):
''' run ansible-playbook operations '''
...
...
@@ -91,9 +146,13 @@ def main(args):
print
callbacks
.
banner
(
"PLAY RECAP"
)
for
h
in
hosts
:
t
=
pb
.
stats
.
summarize
(
h
)
print
"
%-30
s : ok=
%-4
s changed=
%-4
s unreachable=
%-4
s failed=
%-4
s "
%
(
h
,
t
[
'ok'
],
t
[
'changed'
],
t
[
'unreachable'
],
t
[
'failures'
]
)
print
"
%-30
s :
%
s
%
s
%
s
%
s "
%
(
hostcolor
(
h
,
t
),
colorize
(
'ok'
,
t
[
'ok'
],
'green'
),
colorize
(
'changed'
,
t
[
'changed'
],
'yellow'
),
colorize
(
'unreachable'
,
t
[
'unreachable'
],
'red'
),
colorize
(
'failed'
,
t
[
'failures'
],
'red'
))
print
"
\n
"
except
errors
.
AnsibleError
,
e
:
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment