Hacked By AnonymousFox
Current Path : /usr/sbin/ |
|
Current File : //usr/sbin/cloudlinux-server-flags |
#!/opt/cloudlinux/venv/bin/python3 -bb
#
# Copyright © Cloud Linux GmbH & Cloud Linux Software, Inc 2010-2019 All Rights Reserved
#
# Licensed under CLOUD LINUX LICENSE AGREEMENT
# http://cloudlinux.com/docs/LICENSE.TXT
"""
Set of useful command line options to quickly get
information about available flags, their status and path
"""
import argparse
import json
import os
from clflags.gather import (
list_flags_info
)
from clflags.config import DEFAULT_FLAGS_STORAGE_PATH, DEFAULT_META_STORAGE_PATH
from prettytable import PrettyTable
def list_flags(args):
"""
Lists information about all available flags on server.
Supports both human-readable and json formats.
E.g.
+--------------------------------------------------------------------+
| Name | Description | Path | Enabled |
+------------+----------------------+----------------------+---------+
| first-test | My first and super | /var/cloudlinux/flag | False |
| | cool flag that I can | s/enabled- | |
| | use everywhere | flags.d/first- | |
| | | test.flag | |
| super-test | My second and super | /var/cloudlinux/flag | False |
| | cool flag that I can | s/enabled- | |
| | use everywhere. Used | flags.d/super- | |
| | in AccelerateWP and | test.flag | |
| | Immunify teams. | | |
+------------+----------------------+----------------------+---------+
"""
flags = list_flags_info()
results = []
for flag in flags:
results.append(dict(
name=flag.name,
description=flag.description,
path=flag.path,
enabled=flag.enabled
))
if args.json:
print(json.dumps(results, indent=2))
return
else:
if not results:
print('No flags available on this server')
return
t = PrettyTable(
[i.capitalize() for i in results[0]],
align='l',
max_table_width=os.get_terminal_size().columns - 10,
max_width=60
)
t.add_rows([
list(value.values())
for value in results
])
print(t)
def system_info(args):
"""
Useful information about system itself:
- data paths for flags and metadata
"""
results = {
'Flags default path': DEFAULT_FLAGS_STORAGE_PATH,
'Flags metadata path': DEFAULT_META_STORAGE_PATH
}
t = PrettyTable(
['Name', 'Value'],
align='l',
title='Generic system information',
max_width=80)
t.add_rows([
(name, value)
for name, value in results.items()
])
print(t)
if __name__ == '__main__':
parser = argparse.ArgumentParser()
subparsers = parser.add_subparsers(
title='Actions with flags',
description='Available manipulations that you can do with flags.',
dest='action')
info_subparser = subparsers.add_parser(
'info', help='Prints useful information about the system.')
list_subparser = subparsers.add_parser(
'list', help='List all available flags on this server, '
'their paths and current reported status.')
list_subparser.add_argument(
'--json', action='store_true',
default=False, help='Return response in json format')
args = parser.parse_args()
if args.action == 'info':
system_info(args)
elif args.action == 'list':
list_flags(args)
else:
parser.print_help()
exit(1)
Hacked By AnonymousFox1.0, Coded By AnonymousFox