-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathmain.py
More file actions
97 lines (87 loc) · 3.05 KB
/
main.py
File metadata and controls
97 lines (87 loc) · 3.05 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
import os
import platform
import site
import sys
import click
from requests.exceptions import HTTPError
from _incydr_cli import console
from _incydr_cli import logging_options
from _incydr_cli.cmds.actors import actors
from _incydr_cli.cmds.agents import agents
from _incydr_cli.cmds.alert_rules import alert_rules
from _incydr_cli.cmds.alerts import alerts
from _incydr_cli.cmds.audit_log import audit_log
from _incydr_cli.cmds.cases import cases
from _incydr_cli.cmds.departments import departments
from _incydr_cli.cmds.devices import devices
from _incydr_cli.cmds.directory_groups import directory_groups
from _incydr_cli.cmds.file_events import file_events
from _incydr_cli.cmds.files import files as files_client
from _incydr_cli.cmds.risk_profiles import risk_profiles
from _incydr_cli.cmds.sessions import sessions
from _incydr_cli.cmds.trusted_activities import trusted_activities
from _incydr_cli.cmds.users import users
from _incydr_cli.cmds.watchlists import watchlists
from _incydr_cli.core import ExceptionHandlingGroup
from _incydr_sdk.__version__ import __version__
if platform.system() in ("Darwin", "Linux"):
os.environ["MANPAGER"] = "less -S"
else:
...
# TODO: figure out Windows pager to use
@click.group(
cls=ExceptionHandlingGroup,
invoke_without_command=True,
no_args_is_help=True,
help=f"Incydr CLI by Code42 Software. Version {__version__}",
)
@click.option("--version", is_flag=True)
@click.option(
"--python",
is_flag=True,
help="Print path to the python interpreter env that `incydr` is installed in.",
)
@click.option(
"--script-dir",
is_flag=True,
help="Print the directory the `incydr` script was installed in (for adding to your PATH if needed).",
)
@logging_options
def incydr(version, python, script_dir):
# Configure SDK settings
os.environ["INCYDR_USER_AGENT_PREFIX"] = "incydrCLI (Code42; code42.com) "
if version:
console.print(__version__, highlight=False)
if python:
console.print(sys.executable, highlight=False)
sys.exit(0)
if script_dir:
for root, _dirs, files in os.walk(site.PREFIXES[0]):
if "incydr" in files or "incydr.exe" in files:
console.print(root, highlight=False)
sys.exit(0)
for root, _dirs, files in os.walk(site.USER_BASE):
if "incydr" in files or "incydr.exe" in files:
console.print(root, highlight=False)
sys.exit(0)
incydr.add_command(actors)
incydr.add_command(agents)
incydr.add_command(alerts)
incydr.add_command(alert_rules)
incydr.add_command(audit_log)
incydr.add_command(departments)
incydr.add_command(devices)
incydr.add_command(directory_groups)
incydr.add_command(file_events)
incydr.add_command(files_client)
incydr.add_command(cases)
incydr.add_command(risk_profiles)
incydr.add_command(sessions)
incydr.add_command(trusted_activities)
incydr.add_command(users)
incydr.add_command(watchlists)
if __name__ == "__main__":
try:
incydr()
except HTTPError as err:
console.print(f"[red]Error:[/red] {err.response.text}")