| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- #! /usr/bin/env python3
- """Сборка всей программы
- """
- import os
- import sys
- import datetime
- import subprocess
- import shutil
- def help() -> None:
- """Получить справку по сборке
- """
- h: str = """
- Справка по сборке:
- ./make.py help - Справка по сборке
- ./make.py build - Сборка всей программы"""
- print(h)
- class Build:
- """Класс сборки
- """
- def __init__(self) -> None:
- self.date_build: str = str(datetime.datetime.now())
- """Дата сборки"""
- cmd: list[str] = ['git', 'describe', '--tags', '--abbrev=0']
- output: bytes = subprocess.Popen(
- cmd, stdout=subprocess.PIPE).communicate()[0]
- tag: str = output.decode("utf-8")
- tag = tag[:-1]
- self.tag: str = tag
- """Тег из гита"""
- cmd = ['go', 'version']
- output = subprocess.Popen(cmd, stdout=subprocess.PIPE).communicate()[0]
- go_version: str = output.decode("utf-8")
- go_version = go_version[11:]
- out: str = f"date={self.date_build}\t\t" +\
- f"tag={self.tag}\t\t" +\
- f"go_version={go_version}"
- print(out)
- self.go_version: str = go_version
- """Версия golang"""
- def run(self) -> None:
- """Запуск сборки"""
- try:
- shutil.rmtree('./bin')
- except OSError:
- pass
- try:
- os.mkdir("bin")
- except FileExistsError:
- pass
- try:
- os.mkdir("bin/web")
- except FileExistsError:
- pass
- try:
- os.mkdir("bin/web/static")
- except FileExistsError:
- pass
- try:
- os.mkdir("bin/web/tmpl")
- except FileExistsError:
- pass
- os.system('cp -r ../app_serv/web ./bin')
- os.chdir("../app_serv")
- # os.system("go build -o app_work")
- cmd: list[str] = ['go', 'fmt', './...']
- subprocess.Popen(cmd, stdout=subprocess.PIPE).communicate()[0]
- # go_version: str = output.decode("utf-8")
- if __name__ == '__main__':
- os.system('clear')
- args: list[str] = sys.argv
- if len(args) < 2:
- help()
- sys.exit(0)
- strCmd: str = args[1]
- match strCmd:
- case "help": # Получить справку по сборке
- help()
- case"build": # Сборка всей программы
- b: Build = Build()
- b.run()
- case "":
- help()
- case _: pass
|