refactor: Replace --index with --with-headers in the list command to make it more explicit. Change it so it affects the csv output too.

This commit is contained in:
Cristian 2020-09-08 09:17:10 -05:00 committed by Cristian Vargas
parent 2aa8d69b72
commit fa622d3e14
4 changed files with 32 additions and 17 deletions

View file

@ -52,9 +52,9 @@ def main(args: Optional[List[str]]=None, stdin: Optional[IO]=None, pwd: Optional
help="Print the output in HTML format"
)
parser.add_argument(
'--index',
'--with-headers',
action='store_true',
help='Include the index additional structures'
help='Include the headers in the output document'
)
parser.add_argument(
'--sort', #'-s',
@ -112,9 +112,9 @@ def main(args: Optional[List[str]]=None, stdin: Optional[IO]=None, pwd: Optional
command = parser.parse_args(args or ())
filter_patterns_str = accept_stdin(stdin)
if command.index and not (command.json or command.html):
if command.with_headers and not (command.json or command.html or command.csv):
stderr(
'[X] --index can only be used with --json or --html options.\n',
'[X] --with-headers can only be used with --json, --html or --csv options.\n',
color='red',
)
raise SystemExit(2)
@ -130,7 +130,7 @@ def main(args: Optional[List[str]]=None, stdin: Optional[IO]=None, pwd: Optional
csv=command.csv,
json=command.json,
html=command.html,
index=command.index,
with_headers=command.with_headers,
out_dir=pwd or OUTPUT_DIR,
)
raise SystemExit(not matching_folders)

View file

@ -463,11 +463,11 @@ def printable_folders(folders: Dict[str, Optional["Link"]],
json: bool=False,
html: bool=False,
csv: Optional[str]=None,
index: bool=False) -> str:
with_headers: bool=False) -> str:
links = folders.values()
if json:
from .index.json import to_json
if index:
if with_headers:
output = {
**MAIN_INDEX_HEADER,
'num_links': len(links),
@ -480,7 +480,7 @@ def printable_folders(folders: Dict[str, Optional["Link"]],
return to_json(output, indent=4, sort_keys=True)
elif html:
from .index.html import main_index_template
if index:
if with_headers:
output = main_index_template(links, True)
else:
from .index.html import MINIMAL_INDEX_TEMPLATE
@ -488,7 +488,7 @@ def printable_folders(folders: Dict[str, Optional["Link"]],
return output
elif csv:
from .index.csv import links_to_csv
return links_to_csv(folders.values(), cols=csv.split(','), header=True)
return links_to_csv(folders.values(), cols=csv.split(','), header=with_headers)
return '\n'.join(
f'{folder} {link and link.url} "{link and link.title}"'

View file

@ -709,7 +709,7 @@ def list_all(filter_patterns_str: Optional[str]=None,
csv: Optional[str]=None,
json: bool=False,
html: bool=False,
index: bool=False,
with_headers: bool=False,
out_dir: str=OUTPUT_DIR) -> Iterable[Link]:
"""List, filter, and export information about archive entries"""
@ -742,7 +742,7 @@ def list_all(filter_patterns_str: Optional[str]=None,
out_dir=out_dir,
)
print(printable_folders(folders, json=json, csv=csv, html=html, index=index))
print(printable_folders(folders, json=json, csv=csv, html=html, with_headers=with_headers))
return folders