Files
WPIQ/setup.py
Malin fa5bf17eb8
Some checks failed
CI / test WordOps (ubuntu-22.04) (push) Has been cancelled
CI / test WordOps (ubuntu-24.04) (push) Has been cancelled
feat: convert WordOps from Nginx to OpenLiteSpeed + LSPHP + LSCache
Complete conversion of the WordOps stack from Nginx + PHP-FPM to
OpenLiteSpeed + LSPHP + LSCache. This is a full rewrite across all 7
phases of the codebase:

- Foundation: OLS paths, variables, services, removed pynginxconfig dep
- Templates: 11 new OLS mustache templates, removed nginx-specific ones
- Stack: stack_pref, stack, stack_services, stack_upgrade, stack_migrate
- Site: site_functions, site, site_create, site_update
- Plugins: debug, info, log, clean rewritten for OLS
- SSL/ACME: acme.sh deploy uses lswsctrl, OLS vhssl blocks
- Other: secure, backup, clone, install script

Additional features:
- Debian 13 (trixie) support
- PHP 8.5 support
- WP Fort Knox mu-plugin integration (wo secure --lockdown/--unlock)
- --nginx CLI flag preserved for backward compatibility

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 18:55:16 +01:00

93 lines
2.9 KiB
Python

import glob
import os
import sys
from setuptools import find_packages, setup
# read the contents of your README file
this_directory = os.path.abspath(os.path.dirname(__file__))
with open(os.path.join(this_directory, 'README.md'), encoding='utf-8') as f:
LONG = f.read()
conf = []
templates = []
for name in glob.glob('config/plugins.d/*.conf'):
conf.insert(1, name)
for name in glob.glob('wo/cli/templates/*.mustache'):
templates.insert(1, name)
if os.geteuid() == 0:
if not os.path.exists('/var/log/wo/'):
os.makedirs('/var/log/wo/')
if not os.path.exists('/var/lib/wo/tmp/'):
os.makedirs('/var/lib/wo/tmp/')
setup(name='wordops',
version='3.22.0',
description='An essential toolset that eases server administration',
long_description=LONG,
long_description_content_type='text/markdown',
classifiers=[
"Programming Language :: Python :: 3",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
"Development Status :: 5 - Production/Stable",
"Environment :: Console",
"Natural Language :: English",
"Topic :: System :: Systems Administration",
],
keywords='openlitespeed automation wordpress deployment CLI',
author='WordOps',
author_email='contact@wordops.io',
url='https://github.com/WordOps/WordOps',
license='MIT',
project_urls={
'Documentation': 'https://docs.wordops.net',
'Forum': 'https://community.wordops.net',
'Source': 'https://github.com/WordOps/WordOps',
'Tracker': 'https://github.com/WordOps/WordOps/issues',
},
packages=find_packages(exclude=['ez_setup', 'examples', 'tests',
'templates']),
include_package_data=True,
zip_safe=False,
test_suite='nose.collector',
python_requires='>=3.4',
install_requires=[
# Required to build documentation
# "Sphinx >= 1.0",
# Required to function
'cement == 2.10.14',
'pystache',
'PyMySQL >= 1.0.2',
'psutil',
'sh',
'SQLAlchemy == 1.4.54',
'requests',
'distro',
'argcomplete',
'colorlog',
],
extras_require={ # Optional
'testing': ['nose', 'coverage'],
},
data_files=[('/etc/wo', ['config/wo.conf']),
('/etc/wo/plugins.d', conf),
('/usr/lib/wo/templates', templates),
('/var/lib/wo',
['wo/cli/templates/wp-fort-knox.php']),
('/etc/bash_completion.d/',
['config/bash_completion.d/wo_auto.rc']),
('/usr/share/man/man8/', ['docs/wo.8'])],
setup_requires=[],
entry_points="""
[console_scripts]
wo = wo.cli.main:main
""",
namespace_packages=[],
)