AutoGPT/classic/original_autogpt/setup.py

103 lines
2.6 KiB
Python

import platform
from pathlib import Path
from pkgutil import iter_modules
from typing import Union
from cx_Freeze import Executable, setup # type: ignore
packages = [
m.name
for m in iter_modules()
if m.ispkg
and m.module_finder
and ("poetry" in m.module_finder.path) # type: ignore
]
# set the icon based on the platform
icon = "../../assets/gpt_dark_RGB.ico"
if platform.system() == "Darwin":
icon = "../../assets/gpt_dark_RGB.icns"
elif platform.system() == "Linux":
icon = "../../assets/gpt_dark_RGB.png"
def txt_to_rtf(input_file: Union[str, Path], output_file: Union[str, Path]) -> None:
"""
Convert a text file to RTF format.
Args:
input_file (Union[str, Path]): Path to the input text file.
output_file (Union[str, Path]): Path to the output RTF file.
Returns:
None
"""
input_path = Path(input_file)
output_path = Path(output_file)
with input_path.open("r", encoding="utf-8") as txt_file:
content = txt_file.read()
# RTF header
rtf = r"{\rtf1\ansi\deff0 {\fonttbl {\f0 Times New Roman;}}\f0\fs24 "
# Replace newlines with RTF newline
rtf += content.replace("\n", "\\par ")
# Close RTF document
rtf += "}"
with output_path.open("w", encoding="utf-8") as rtf_file:
rtf_file.write(rtf)
# Convert LICENSE to LICENSE.rtf
license_file = "LICENSE.rtf"
txt_to_rtf("../LICENSE", license_file)
setup(
executables=[
Executable(
"classic/original_autogpt/__main__.py",
target_name="autogpt",
base="console",
icon=icon,
),
],
options={
"build_exe": {
"packages": packages,
"includes": [
"autogpt",
"spacy",
"spacy.lang",
"spacy.vocab",
"spacy.lang.lex_attrs",
"uvicorn.loops.auto",
"srsly.msgpack.util",
"blis",
"uvicorn.protocols.http.auto",
"uvicorn.protocols.websockets.auto",
"uvicorn.lifespan.on",
],
"excludes": ["readability.compat.two"],
},
"bdist_mac": {
"bundle_name": "AutoGPT",
"iconfile": "../assets/gpt_dark_RGB.icns",
"include_resources": [""],
},
"bdist_dmg": {
"applications_shortcut": True,
"volume_label": "AutoGPT",
},
"bdist_msi": {
"target_name": "AutoGPT",
"add_to_path": True,
"install_icon": "../assets/gpt_dark_RGB.ico",
"license_file": license_file,
},
},
)