added -y option to prebuild scripts using node_bin

similar to apt, -y assumes yes to all questions, specifically if
node_bin is correct here. This is necessary for goreleaser, as it is not
interactive.
This commit is contained in:
Harvey Tindall
2020-08-16 14:39:47 +01:00
parent dd0eabf157
commit 02183c7fcc
3 changed files with 90 additions and 51 deletions
+32 -21
View File
@@ -1,49 +1,60 @@
import subprocess
import shutil
import os
import argparse
from pathlib import Path
parser = argparse.ArgumentParser()
parser.add_argument(
"-y", "--yes", help="use assumed node bin directory.", action="store_true"
)
def runcmd(cmd):
if os.name == "nt":
return subprocess.check_output(cmd, shell=True)
proc = subprocess.Popen(cmd.split(), stdout=subprocess.PIPE)
return proc.communicate()
local_path = Path(__file__).resolve().parent
out = runcmd("npm bin")
try:
node_bin = Path(out[0].decode('utf-8').rstrip())
node_bin = Path(out[0].decode("utf-8").rstrip())
except:
node_bin = Path(out.decode('utf-8').rstrip())
node_bin = Path(out.decode("utf-8").rstrip())
print(f"assuming npm bin directory \"{node_bin}\". Is this correct?")
if input("[yY/nN]: ").lower() == "n":
node_bin = local_path.parent / 'node_modules' / '.bin'
print(f"this? \"{node_bin}\"")
args = parser.parse_args()
if not args.yes:
print(f'assuming npm bin directory "{node_bin}". Is this correct?')
if input("[yY/nN]: ").lower() == "n":
node_bin = input("input bin directory: ")
node_bin = local_path.parent / "node_modules" / ".bin"
print(f'this? "{node_bin}"')
if input("[yY/nN]: ").lower() == "n":
node_bin = input("input bin directory: ")
for mjml in [f for f in local_path.iterdir() if f.is_file() and 'mjml' in f.suffix]:
print(f'Compiling {mjml.name}')
for mjml in [f for f in local_path.iterdir() if f.is_file() and "mjml" in f.suffix]:
print(f"Compiling {mjml.name}")
fname = mjml.with_suffix(".html")
runcmd(f'{str(node_bin / "mjml")} {str(mjml)} -o {str(fname)}')
if fname.is_file():
print('Done.')
print("Done.")
html = [f for f in local_path.iterdir() if f.is_file() and 'html' in f.suffix]
html = [f for f in local_path.iterdir() if f.is_file() and "html" in f.suffix]
output = local_path.parent / 'data'
output = local_path.parent / "data"
for f in html:
shutil.copy(str(f),
str(output / f.name))
print(f'Copied {f.name} to {str(output / f.name)}')
txtfile = f.with_suffix('.txt')
shutil.copy(str(f), str(output / f.name))
print(f"Copied {f.name} to {str(output / f.name)}")
txtfile = f.with_suffix(".txt")
if txtfile.is_file():
shutil.copy(str(txtfile),
str(output / txtfile.name))
print(f'Copied {txtfile.name} to {str(output / txtfile.name)}')
shutil.copy(str(txtfile), str(output / txtfile.name))
print(f"Copied {txtfile.name} to {str(output / txtfile.name)}")
else:
print(f'Warning: {txtfile.name} does not exist. Text versions of emails should be supplied.')
print(
f"Warning: {txtfile.name} does not exist. Text versions of emails should be supplied."
)