Remove old deploy python script (#392)
This commit is contained in:
parent
40dc15057c
commit
d23a9dbebe
|
@ -1,98 +0,0 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
import os, sys, stat
|
||||
import argparse
|
||||
import datetime
|
||||
import subprocess
|
||||
import tarfile
|
||||
import zipfile
|
||||
|
||||
pj = os.path.join
|
||||
|
||||
FILES_TO_UPLOAD = [
|
||||
'kiwix-index',
|
||||
'kiwix-install',
|
||||
'kiwix-manage',
|
||||
'kiwix-read',
|
||||
'kiwix-search',
|
||||
'kiwix-serve'
|
||||
]
|
||||
|
||||
class Archiver:
|
||||
def __init__(self, options):
|
||||
self.options = options
|
||||
self.working_directory = "{:%Y-%m-%d}".format(datetime.date.today())
|
||||
os.makedirs(self.working_directory, exist_ok=True)
|
||||
self.archive_basename = "kiwix-tools_{:%Y-%m-%d}".format(datetime.date.today())
|
||||
self.files_to_upload = list(self._gen_file_list())
|
||||
|
||||
def _gen_file_list(self):
|
||||
bin_dir = pj(self.options.install_dir, 'bin')
|
||||
for filename in os.listdir(bin_dir):
|
||||
basename, _ = os.path.splitext(filename)
|
||||
if basename in FILES_TO_UPLOAD:
|
||||
yield pj(bin_dir, filename), pj(self.archive_basename, filename)
|
||||
|
||||
def build_tar(self):
|
||||
archive_name = "{}.tar.gz".format(self.archive_basename)
|
||||
archive_name = pj(self.working_directory, archive_name)
|
||||
with tarfile.open(archive_name, "w:gz") as archive:
|
||||
for filename, arcname in self.files_to_upload:
|
||||
archive.add(filename, arcname=arcname)
|
||||
return archive_name
|
||||
|
||||
def build_zip(self):
|
||||
archive_name = "{}.zip".format(self.archive_basename)
|
||||
archive_name = pj(self.working_directory, archive_name)
|
||||
with zipfile.ZipFile(archive_name, "w") as archive:
|
||||
for filename, arcname in self.files_to_upload:
|
||||
archive.write(filename, arcname)
|
||||
return archive_name
|
||||
|
||||
|
||||
class Deployer:
|
||||
def __init__(self, options):
|
||||
self.options = options
|
||||
|
||||
def deploy(self, directory):
|
||||
if not os.path.isdir(directory):
|
||||
return
|
||||
command = "scp -v -r -p -i {id_file} {directory} {host_addr}".format(
|
||||
id_file=self.options.ssh_private_key,
|
||||
directory=directory,
|
||||
host_addr="{}:{}".format(self.options.server, self.options.base_path)
|
||||
)
|
||||
return subprocess.check_call(command, shell=True)
|
||||
|
||||
|
||||
def parse_args():
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument('install_dir')
|
||||
parser.add_argument('--deploy', action="store_true")
|
||||
group = parser.add_argument_group('deploy options')
|
||||
group.add_argument('--ssh_private_key')
|
||||
group.add_argument('--server')
|
||||
group.add_argument('--base_path')
|
||||
parser.add_argument('--tar', action="store_true")
|
||||
parser.add_argument('--zip', action="store_true")
|
||||
parser.add_argument('--verbose', '-v', action="store_true",
|
||||
help=("Print all logs on stdout instead of in specific"
|
||||
" log files per commands"))
|
||||
return parser.parse_args()
|
||||
|
||||
if __name__ == "__main__":
|
||||
options = parse_args()
|
||||
options.install_dir = os.path.abspath(options.install_dir)
|
||||
|
||||
archiver = Archiver(options)
|
||||
archive_list = []
|
||||
if options.tar:
|
||||
print("Generating tar archive")
|
||||
archive_list.append(archiver.build_tar())
|
||||
if options.zip:
|
||||
print("Generating zip archive")
|
||||
archive_list.append(archiver.build_zip())
|
||||
|
||||
if options.deploy:
|
||||
deployer = Deployer(options)
|
||||
deployer.deploy(archiver.working_directory)
|
Loading…
Reference in New Issue