Added some small fixes and some pepper
This commit is contained in:
parent
2bd8ddeb04
commit
8a6eceb9a5
@ -4,7 +4,7 @@ _malias_ is a helper for mailcow instances. You can create, delete, search and l
|
|||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
Download the latest relase from https://gitlab.pm/rune/malias/releases. Unzip and move to a folder in you path (ease of use). You can also rename the file ```malias.py``` to just ```malias``` and make the file executable with ```chmod +x malias```. To install required python modules run ```pip3 install -r requirements.txt```
|
Download the latest release from https://gitlab.pm/rune/malias/releases. Unzip and move to a folder in you path (ease of use). I also recommend rename the file ```malias.py``` to just ```malias``` and make the file executable with ```chmod +x malias```. To install required python modules run ```pip3 install -r requirements.txt```
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
|
37
malias.py
Normal file → Executable file
37
malias.py
Normal file → Executable file
@ -10,12 +10,12 @@ import requests
|
|||||||
import os
|
import os
|
||||||
import time
|
import time
|
||||||
import sys
|
import sys
|
||||||
|
import git
|
||||||
from types import SimpleNamespace
|
from types import SimpleNamespace
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from string import ascii_letters, digits
|
from string import ascii_letters, digits
|
||||||
from rich import print
|
from rich import print
|
||||||
from argparse import RawTextHelpFormatter
|
from argparse import RawTextHelpFormatter
|
||||||
#from urllib import Request, urlopen
|
|
||||||
from urllib.request import urlopen
|
from urllib.request import urlopen
|
||||||
|
|
||||||
# Info pages for dev
|
# Info pages for dev
|
||||||
@ -29,7 +29,7 @@ database = filepath.joinpath('malias.db')
|
|||||||
logfile = filepath.joinpath('malias.log')
|
logfile = filepath.joinpath('malias.log')
|
||||||
Path(filepath).mkdir(parents=True, exist_ok=True)
|
Path(filepath).mkdir(parents=True, exist_ok=True)
|
||||||
logging.basicConfig(filename=logfile,level=logging.INFO,format='%(message)s')
|
logging.basicConfig(filename=logfile,level=logging.INFO,format='%(message)s')
|
||||||
app_version = '0.2.1'
|
app_version = '0.2.2'
|
||||||
|
|
||||||
|
|
||||||
def connect_database():
|
def connect_database():
|
||||||
@ -343,6 +343,31 @@ def search(alias):
|
|||||||
print('\n\nData from server')
|
print('\n\nData from server')
|
||||||
|
|
||||||
|
|
||||||
|
def get_mailcow_version():
|
||||||
|
apikey = get_api()
|
||||||
|
mail_server = get_settings('mail_server')
|
||||||
|
req = urllib.request.Request('https://'+mail_server+'/api/v1/get/status/version')
|
||||||
|
req.add_header('Content-Type', 'application/json')
|
||||||
|
req.add_header('X-API-Key', apikey)
|
||||||
|
current = urllib.request.urlopen(req)
|
||||||
|
remote = current.read().decode('utf-8')
|
||||||
|
remoteData = json.loads(remote)
|
||||||
|
#repo = Repo("https://github.com/mailcow/mailcow-dockerized")
|
||||||
|
# info = repo.git.ls_remote()
|
||||||
|
# tags = repo.tags
|
||||||
|
remote_heads = git.cmd.Git().ls_remote('https://github.com/mailcow/mailcow-dockerized', tags=True)
|
||||||
|
# tags = remote_heads.rstrip('refs/tags/')
|
||||||
|
tags = remote_heads.splitlines()
|
||||||
|
for x in tags:
|
||||||
|
string = x.rsplit('/',2)
|
||||||
|
|
||||||
|
if remoteData['version'] != string[2]:
|
||||||
|
versionInfo = 'Your Mailcow version is %s and the latest is %s' %(remoteData['version'], string[2])
|
||||||
|
else:
|
||||||
|
versionInfo = 'You have the latest Mailcow version %s' %remoteData['version']
|
||||||
|
|
||||||
|
return (versionInfo)
|
||||||
|
|
||||||
|
|
||||||
def show_current_info():
|
def show_current_info():
|
||||||
API = get_api()
|
API = get_api()
|
||||||
@ -356,12 +381,15 @@ def show_current_info():
|
|||||||
|
|
||||||
aliases_server = number_of_aliases_on_server()
|
aliases_server = number_of_aliases_on_server()
|
||||||
alias_db = number_of_aliases_in_db()
|
alias_db = number_of_aliases_in_db()
|
||||||
|
mailcow_version = get_mailcow_version()
|
||||||
|
|
||||||
print('\n[b]malias[/b] - Manage aliases on mailcow Instance.')
|
print('\n[b]malias[/b] - Manage aliases on mailcow Instance.')
|
||||||
print('===================================================')
|
print('===================================================')
|
||||||
print('API key : [b]%s[/b]' % (API))
|
print('API key : [b]%s[/b]' % (API))
|
||||||
print('mailcow Instance : [b]%s[/b]' % (mail_server))
|
print('mailcow Instance : [b]%s[/b]' % (mail_server))
|
||||||
|
print('Mailcow version : [b]%s[/b]' % (mailcow_version))
|
||||||
print('Logfile : [b]%s[/b]' % (logfile))
|
print('Logfile : [b]%s[/b]' % (logfile))
|
||||||
|
print('Databse : [b]%s[b]' % (database))
|
||||||
print('Aliases on server : [b]%s[/b]' % (aliases_server))
|
print('Aliases on server : [b]%s[/b]' % (aliases_server))
|
||||||
print('Aliases in DB : [b]%s[/b]' % (alias_db))
|
print('Aliases in DB : [b]%s[/b]' % (alias_db))
|
||||||
print('')
|
print('')
|
||||||
@ -394,7 +422,7 @@ parser.add_argument('-d', '--delete', help='Delete alias.\n\n',
|
|||||||
nargs=1, metavar=('alias@domain.com'), required=False, action="append")
|
nargs=1, metavar=('alias@domain.com'), required=False, action="append")
|
||||||
|
|
||||||
|
|
||||||
parser.add_argument('-v', '--version', help='Show current version and config info\n\n',
|
parser.add_argument('-i', '--info', help='Show current version and config info\n\n',
|
||||||
required=False, action='store_true')
|
required=False, action='store_true')
|
||||||
|
|
||||||
parser.add_argument('-c', '--copy', help='Copy alias data from mailcow server to local DB.\n\n',
|
parser.add_argument('-c', '--copy', help='Copy alias data from mailcow server to local DB.\n\n',
|
||||||
@ -416,7 +444,7 @@ elif args['add']:
|
|||||||
create(args['add'][0][0],args['add'][0][1])
|
create(args['add'][0][0],args['add'][0][1])
|
||||||
elif args['delete']:
|
elif args['delete']:
|
||||||
delete_alias(args['delete'][0][0])
|
delete_alias(args['delete'][0][0])
|
||||||
elif args['version']:
|
elif args['info']:
|
||||||
show_current_info()
|
show_current_info()
|
||||||
elif args['copy']:
|
elif args['copy']:
|
||||||
copy_data()
|
copy_data()
|
||||||
@ -425,4 +453,5 @@ elif args['list']:
|
|||||||
|
|
||||||
|
|
||||||
else:
|
else:
|
||||||
|
#get_mailcow_version()
|
||||||
print('\n\nEh, sorry! I need something more to help you! If you write [b]malias -h[/b] I\'ll show a help screen to get you going!!!\n\n\n')
|
print('\n\nEh, sorry! I need something more to help you! If you write [b]malias -h[/b] I\'ll show a help screen to get you going!!!\n\n\n')
|
@ -11,7 +11,9 @@ click==8.1.3
|
|||||||
docopt==0.6.2
|
docopt==0.6.2
|
||||||
docutils==0.19
|
docutils==0.19
|
||||||
frozenlist==1.3.3
|
frozenlist==1.3.3
|
||||||
gpg==1.19.0
|
gitdb==4.0.10
|
||||||
|
GitPython==3.1.32
|
||||||
|
gpg==1.21.0
|
||||||
idna==3.4
|
idna==3.4
|
||||||
importlib-metadata==6.1.0
|
importlib-metadata==6.1.0
|
||||||
jaraco.classes==3.2.3
|
jaraco.classes==3.2.3
|
||||||
@ -36,6 +38,7 @@ requests-toolbelt==0.10.1
|
|||||||
rfc3986==2.0.0
|
rfc3986==2.0.0
|
||||||
rich==13.3.1
|
rich==13.3.1
|
||||||
six==1.16.0
|
six==1.16.0
|
||||||
|
smmap==5.0.0
|
||||||
tqdm==4.65.0
|
tqdm==4.65.0
|
||||||
twine==4.0.2
|
twine==4.0.2
|
||||||
urllib3==1.26.14
|
urllib3==1.26.14
|
||||||
|
Loading…
Reference in New Issue
Block a user