Added some small fixes and some pepper

This commit is contained in:
rune 2023-08-20 15:53:43 +02:00
parent 2bd8ddeb04
commit 8a6eceb9a5
3 changed files with 38 additions and 6 deletions

View File

@ -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
View 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')

View File

@ -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