-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathsetup.py
More file actions
executable file
·119 lines (101 loc) · 3.94 KB
/
setup.py
File metadata and controls
executable file
·119 lines (101 loc) · 3.94 KB
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
#!/usr/bin/env python
import re
import os
import sys
import time
import subprocess
from src.lib.logging.logger import Logging as Logger
from src.lib.version.version import Version as Version
from ctypes import cdll
from distutils.cmd import Command
from setuptools import setup, find_packages
from subprocess import Popen, call, PIPE, STDOUT
from distutils.errors import DistutilsError, DistutilsExecError
class Check(object):
def __init__(self):
self.sys_dependencies = {
'rpm': (
'gtk+-devel','gtk2-devel',
'python-devel','syslog-ng',
),
'eix': (
'x11-libs/gtk+:2','x11-libs/gtk+:3',
'app-admin/syslog-ng','dev-lang/python',
),
'apt': (
'libgtk2.0-dev','python-dev','syslog-ng',
)
}
self.package_manager = {
'rpm': ('centos','fedora','scientific','opensuse'),
'apt': ('debian','ubuntu','linuxmint'),
'eix': ('gentoo',)
}
def system_query_command(self):
if 'rpm' in Version.system_package_manager():
system_query_command = 'rpm -qa'
elif 'apt' in Version.system_package_manager():
system_query_command = 'dpkg --get-selections'
elif 'eix' in Version.system_package_manager():
system_query_command = 'eix -e --only-names'
return system_query_command
def grep_system_packages(self,package_name):
comm = subprocess.Popen([self.system_query_command()
+ " " + str(package_name)], shell=True,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE).stdout.read()
if not len(comm.strip()) == 0:
Logger.log("INFO", "Package "
+ str(package_name)
+ " was found.")
else:
Logger.log("ERROR", "Package "
+ str(package_name)
+ " was not found.")
def main(self):
try:
for item in self.sys_dependencies[Version.system_package_manager()]:
self.grep_system_packages(item)
except DistutilsExecError as distutilsExecError:
Logger.log("ERROR", "Exception DistutilsExecError: "
+ str(distutilsExecError))
class PrepareBuild(object):
def __init__(self,*args,**kwargs):
cdll.LoadLibrary(args[0]).build()
if __name__ == '__main__':
path = str(os.getcwd()) + '/src/lib/shared/libbuild.so'
Logger.log('INFO','Checking system dependencies.')
check = Check()
check.main()
Logger.log('INFO','Building libraries.')
path = str(os.getcwd()) + '/src/lib/shared/libbuild.so'
cdll.LoadLibrary(path).build()
Logger.log('INFO','Entering setup in setup.py')
setup(name='sshmonitor',
version='2.0.0',
url='https://github.com/amboxer21/SSHMonitor',
license='GPL-3.0',
author='Anthony Guevara',
author_email='amboxer21@gmail.com',
description="Monitors incoming ssh requests and will notify you on failed, successful or "
+ "banned(IP via iptables/sshgaurd) attempts whether they're successful or not.",
packages=find_packages(exclude=['tests']),
#long_description=open('README.md').read(),
#long_description_content_type="text/markdown",
classifiers=[
'Intended Audience :: Developers',
'Intended Audience :: End Users/Desktop',
'Intended Audience :: System Administrators',
'Development Status :: 4 - Beta',
'Natural Language :: English',
'Environment :: Console',
'Environment :: No Input/Output (Daemon)',
'Programming Language :: Python :: 2.7',
'Operating System :: POSIX :: Linux',
'License :: OSI Approved :: GNU General Public License (GPL)',
],
data_files=[
('/usr/lib/', ['src/lib/shared/libmasquerade.so']),
('/usr/local/bin/', ['src/bin/notify-gtk']),
('/usr/local/bin/', ['src/sshmonitor.py'])],
zip_safe=True,)