Last active
July 4, 2018 14:39
-
-
Save koenverburg/79af6e1247597c89e8855afe5a2bc2c3 to your computer and use it in GitHub Desktop.
Deploy scripts
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python3 | |
# -*- coding: utf-8 -*- | |
import re | |
import os | |
import logging | |
import requests | |
import threading | |
from ftplib import FTP | |
logging.basicConfig(level=logging.INFO, format='[%(name)s][%(levelname)s] %(message)s') | |
logger = logging.getLogger(__name__) | |
class Deploy(object): | |
def __init__(self, _host, _user, _pass, _dist): | |
self.ftp = FTP(_host) | |
self.ftp.login(_user, _pass) | |
self.localDist = _dist | |
self.themeDirs = [] | |
self.files = [] | |
def _readDist(self): | |
for root, dirs, files in os.walk(self.localDist): | |
for file in files: | |
self.files.append(os.path.join(root.replace('./dist/', ''), file)) | |
print(os.path.join(root.replace('./dist/', ''), file)) | |
for dir in dirs: | |
self.themeDirs.append(dir) | |
def _uploadFile(self, file): | |
with open(os.path.join(self.localDist, file), 'r') as f: | |
print(os.path.join(self.localDist, file)) | |
self.ftp.storbinary('STOR %s' % '/wp-content/themes/test/{0}'.format(file), f) | |
def _preServer(self): | |
for dir in self.themeDirs: | |
self.ftp.mkd('/wp-content/themes/test/{0}'.format(dir)) | |
# logger | |
def start(self): | |
print(self.ftp.getwelcome()) | |
# loop through files in dist folder | |
self._readDist() | |
self._preServer() | |
self.upload() | |
# self.close() | |
# upload the folders to the new folder on the server | |
# create new folder on the server | |
# swith the folders | |
# clean up | |
# flash hue lights green - nice to have | |
def upload(self): | |
for i in range(len(self.files)): | |
logger.info("[uploading] {0}".format(self.files[i])) | |
self._uploadFile(self.files[i]) | |
def close(self): | |
self.ftp.quit() | |
threads = [] | |
def bootstrap(): | |
deployer = Deploy('host', 'user', 'pass', './dist') | |
deployer.start() | |
def main(): | |
bootstrap() | |
# for i in range(len(__URLS__)): | |
# site = threading.Thread(target=bootstrap(__URLS__[i])) | |
# threads.append(site) | |
# site.start() | |
if __name__ == '__main__': | |
main() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment