Skip to content

Commit 0960c24

Browse files
committed
summary print
1 parent 6d27382 commit 0960c24

File tree

2 files changed

+22
-9
lines changed

2 files changed

+22
-9
lines changed

README.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,8 @@ Options:
4141
--help Show this message and exit.
4242
```
4343

44-
![linkstatus](https://user-images.githubusercontent.com/11618054/67754970-5a930d80-fa5d-11e9-851c-afd38147cf28.png)
44+
![linkstatus](https://user-images.githubusercontent.com/11618054/67764478-0fcec100-fa70-11e9-9c3c-04c1f432f620.png)
4545

4646

47-
48-
**Note: Skip `link` check for any line by adding `noqa` (no quality assurance) as inline comment
47+
**Note: Skip link check for any line by adding `noqa` (no quality assurance) as inline comment
4948
.** like `<-- noqa -->` for `html` and `markdown`, `#noqa` for `python` etc...

linkstatus/linkstatus.py

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import glob
22
import os
3+
from shutil import get_terminal_size
34

45
import click
56
import requests
@@ -52,6 +53,10 @@ def all_files(source, recursive=False):
5253
@click.option("-rt", "--retry", default=2, help="Retry link status (default 2 time)")
5354
def main(source, recursive, timeout, retry):
5455
exit_code = 0
56+
up_count = 0
57+
down_count = 0
58+
skip_count = 0
59+
5560
files = all_files(source, recursive=recursive)
5661

5762
for f in files:
@@ -63,6 +68,7 @@ def main(source, recursive, timeout, retry):
6368
for link in links:
6469
for url in link.urls:
6570
if link.skip:
71+
skip_count += 1
6672
click.echo(
6773
"{icon} L{ln} : {url} (skip)".format(
6874
icon=click.style("…", fg="blue", bold=True),
@@ -80,10 +86,12 @@ def main(source, recursive, timeout, retry):
8086
if status:
8187
fg = "green"
8288
icon = "✓"
89+
up_count += 1
8390
else:
8491
fg = "red"
8592
icon = "✗"
8693
exit_code = 1
94+
down_count += 1
8795

8896
click.echo(
8997
"{icon} L{ln} : {url} {code}".format(
@@ -94,13 +102,19 @@ def main(source, recursive, timeout, retry):
94102
)
95103
)
96104

105+
# Print summary
106+
columns = get_terminal_size().columns
107+
click.echo("=" * columns)
108+
click.echo(click.style("Links Status Summary".center(columns), bold=True))
109+
click.echo(click.style("Links UP: {}".format(up_count).center(columns), fg="green"))
110+
click.echo(click.style("Links SKIP: {}".format(skip_count).center(columns), fg="blue"))
111+
click.echo(click.style("Links DOWN: {}".format(down_count).center(columns), fg="red"))
112+
97113
if exit_code == 1:
98114
click.echo(
99-
click.style(
100-
"Warning: Use `noqa` inline comment to skip link check. "
101-
"like, response code 403 due to header restrictions etc...",
102-
fg="red",
103-
bold=True,
104-
)
115+
"Warning: Use `noqa` inline comment to skip link check. "
116+
"like, response code 403 due to header restrictions etc..."
105117
)
118+
119+
click.echo("=" * columns)
106120
exit(exit_code)

0 commit comments

Comments
 (0)