-
Notifications
You must be signed in to change notification settings - Fork 61
/
Copy pathsetup.py
executable file
·121 lines (100 loc) · 3.56 KB
/
setup.py
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
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
#!/usr/bin/env python
# coding: utf-8
from __future__ import print_function
import os
import sys
from shutil import rmtree
from setuptools import setup, Command, find_packages
NAME = "copyparty"
VERSION = None
data_files = [("share/doc/copyparty", ["README.md", "LICENSE"])]
manifest = ""
for dontcare, files in data_files:
for fn in files:
manifest += "include {0}\n".format(fn)
manifest += "recursive-include copyparty/res *\n"
manifest += "recursive-include copyparty/web *\n"
here = os.path.abspath(os.path.dirname(__file__))
with open(here + "/MANIFEST.in", "wb") as f:
f.write(manifest.encode("utf-8"))
with open(here + "/README.md", "rb") as f:
txt = f.read().decode("utf-8")
long_description = txt
about = {}
if not VERSION:
with open(os.path.join(here, NAME, "__version__.py"), "rb") as f:
exec (f.read().decode("utf-8").split("\n\n", 1)[1], about)
else:
about["__version__"] = VERSION
class clean2(Command):
description = "Cleans the source tree"
user_options = []
def initialize_options(self):
pass
def finalize_options(self):
pass
def run(self):
os.system("{0} setup.py clean --all".format(sys.executable))
try:
rmtree("./dist")
except:
pass
try:
rmtree("./copyparty.egg-info")
except:
pass
nuke = []
for (dirpath, _, filenames) in os.walk("."):
for fn in filenames:
if (
fn.startswith("MANIFEST")
or fn.endswith(".pyc")
or fn.endswith(".pyo")
or fn.endswith(".pyd")
):
nuke.append(dirpath + "/" + fn)
for fn in nuke:
os.unlink(fn)
args = {
"name": NAME,
"version": about["__version__"],
"description": "http file sharing hub",
"long_description": long_description,
"long_description_content_type": "text/markdown",
"author": "ed",
"author_email": "[email protected]",
"url": "https://github.com/9001/copyparty",
"license": "MIT",
"classifiers": [
"Development Status :: 5 - Production/Stable",
"License :: OSI Approved :: MIT License",
"Programming Language :: Python",
"Programming Language :: Python :: 2",
"Programming Language :: Python :: 2.7",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.3",
"Programming Language :: Python :: 3.4",
"Programming Language :: Python :: 3.5",
"Programming Language :: Python :: 3.6",
"Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: Implementation :: CPython",
"Programming Language :: Python :: Implementation :: Jython",
"Programming Language :: Python :: Implementation :: PyPy",
"Environment :: Console",
"Environment :: No Input/Output (Daemon)",
"Topic :: Communications :: File Sharing",
"Topic :: Internet :: WWW/HTTP :: HTTP Servers",
],
"include_package_data": True,
"data_files": data_files,
"packages": find_packages(),
"install_requires": ["jinja2"],
"extras_require": {"thumbnails": ["Pillow"], "audiotags": ["mutagen"]},
"entry_points": {"console_scripts": ["copyparty = copyparty.__main__:main"]},
"scripts": ["bin/copyparty-fuse.py"],
"cmdclass": {"clean2": clean2},
}
setup(**args)