Warning: file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json): failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
in /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php on line 88
Warning: Cannot modify header information - headers already sent by (output started at /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php:88) in /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php on line 215
Warning: Cannot modify header information - headers already sent by (output started at /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php:88) in /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php on line 216
Warning: Cannot modify header information - headers already sent by (output started at /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php:88) in /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php on line 217
Warning: Cannot modify header information - headers already sent by (output started at /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php:88) in /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php on line 218
Warning: Cannot modify header information - headers already sent by (output started at /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php:88) in /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php on line 219
Warning: Cannot modify header information - headers already sent by (output started at /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php:88) in /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php on line 220
#!/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
import sys
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({
'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(list(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()
sys.exit(1)