marc/pubnix.py

48 lines
1.3 KiB
Python
Raw Normal View History

2022-05-01 20:58:23 +00:00
import os
import subprocess
PORT = 22
USER = 'mspe'
ROOT = 'public_html'
PROTOCOL = 'https'
DIR = False
class PubNix:
def __init__(self, dn,
ssh=None, port=PORT, user=USER,
root=ROOT, dir=DIR, web=None, sub=None):
self.dn = dn
self.ssh = f'{ssh}.{self.dn}' if ssh else self.dn
self.port = port
self.user = user
self.root = root
self.web = f'{web}.{self.dn}' if web else self.dn
if sub:
self.fqdn = f'{self.user}.{self.web}'
self.context = None
else:
self.fqdn = self.web
self.context = f'~{self.user}'
self.path = os.path.join(self.root, self.fqdn) if dir else self.root
self.target = f'{self.user}@{self.ssh}:{self.path}'
self.url = [f'{PROTOCOL}:', str(), self.fqdn]
if self.context:
self.url.append(self.context)
self.url = '/'.join(self.url)
def run(self, *args):
subprocess.call(['ssh',
'-o', 'LogLevel Error',
'-p', str(self.port),
f'{self.user}@{self.ssh}',
'--',
*args])
def disk_free(self):
self.run('df', '-h', os.curdir)
def __str__(self):
return os.linesep.join([self.target, self.url])