main app done

This commit is contained in:
2022-03-25 12:25:59 -03:00
parent 43e8325890
commit 1c6bdddbdc
5 changed files with 189 additions and 132 deletions

View File

@ -4,6 +4,7 @@ import yaml
import os
import re
from Crypto.PublicKey import RSA
from pathlib import Path
#functions and classes
@ -15,8 +16,8 @@ class configfile:
self.defaultdir = home + '/.config/conn'
self.defaultfile = self.defaultdir + '/config.yaml'
self.defaultkey = self.defaultdir + '/.osk'
Path(self.defaultdir).mkdir(parents=True, exist_ok=True)
if conf == None:
self.dir = self.defaultdir
self.file = self.defaultfile
else:
self.file = conf
@ -42,11 +43,12 @@ class configfile:
return yaml.load(ymlconf.read(), Loader=yaml.CLoader)
def createconfig(self, conf):
defaultconfig = {'config': {'case': False, 'frun': False, 'idletime': 30}, 'connections': {}, 'profiles': { "default": { "host":"", "protocol":"ssh", "port":"", "user":"", "password":"", "options":"", "logs":"" }}}
defaultconfig = {'config': {'case': False, 'idletime': 30}, 'connections': {}, 'profiles': { "default": { "host":"", "protocol":"ssh", "port":"", "user":"", "password":"", "options":"", "logs":"" }}}
if not os.path.exists(conf):
with open(conf, "w") as f:
yaml.dump(defaultconfig, f, explicit_start=True, Dumper=yaml.CDumper)
f.close()
os.chmod(conf, 0o600)
ymlconf = open(conf)
return yaml.load(ymlconf.read(), Loader=yaml.CLoader)
@ -64,6 +66,7 @@ class configfile:
with open(keyfile,'wb') as f:
f.write(key.export_key('PEM'))
f.close()
os.chmod(keyfile, 0o600)
def _explode_unique(self, unique):
uniques = unique.split("@")
@ -84,6 +87,23 @@ class configfile:
return False
return result
def getitem(self, unique):
uniques = self._explode_unique(unique)
if unique.startswith("@"):
if uniques.keys() >= {"folder", "subfolder"}:
folder = self.connections[uniques["folder"]][uniques["subfolder"]]
else:
folder = self.connections[uniques["folder"]]
return folder
else:
if uniques.keys() >= {"folder", "subfolder"}:
node = self.connections[uniques["folder"]][uniques["subfolder"]][uniques["id"]]
elif "folder" in uniques.keys():
node = self.connections[uniques["folder"]][uniques["id"]]
else:
node = self.connections[uniques["id"]]
return node
def _connections_add(self,*, id, host, folder='', subfolder='', options='', logs='', password='', port='', protocol='', user='', type = "connection" ):
if folder == '':
self.connections[id] = {"host": host, "options": options, "logs": logs, "password": password, "port": port, "protocol": protocol, "user": user, "type": type}