当前位置: 首页 > news >正文

网站主页怎么做公众号推广合作平台

网站主页怎么做,公众号推广合作平台,怎么快速做网站排名,网站设计的主要机构有哪些import argparse import os import shutil import sys from shutil import copy2from loguru import loggerclass GoBuild:"""一个用于构建跨平台执行文件的类。初始化函数,设置构建的主文件、生成的执行文件名称以及目标平台。:param f: 需要构建的…
import argparse
import os
import shutil
import sys
from shutil import copy2from loguru import loggerclass GoBuild:"""一个用于构建跨平台执行文件的类。初始化函数,设置构建的主文件、生成的执行文件名称以及目标平台。:param f: 需要构建的主文件(例如: main.go):param n: 生成的执行文件主名称(例如: install)"""def __init__(self, f, n=None):self.darwin = darwinself.go = "go"self.name = nself.arch_list = []self.os_list = []self.amd64 = Falseself.mips64 = Falseself.arm64 = Falseself.arm32 = Falseself.linux = Falseself.windows = Falseself.file = fself.basename = ""self.archs = "X86_64"self.os_type = ""self.exe = ""self.tmp = ""self.logger = loggerdef init(self):"""初始化函数,根据不同的架构和操作系统生成相应的架构和操作系统列表,并设置可执行文件的基础名称。"""# 检查并添加架构到架构列表if self.arm64:self.arch_list.append("arm64")if self.mips64:self.arch_list.append("mips64le")if self.amd64:self.arch_list.append("amd64")if self.arm32:self.arch_list.append("arm")# 检查并添加操作系统到操作系统列表if self.linux:self.os_list.append("linux")if self.windows:self.os_list.append("windows")if self.darwin:self.os_list.append("darwin")# 设置可执行文件的基础名称if self.name is None:self.basename = str(os.path.basename(self.file)).replace(".go", "")else:self.basename = self.namedef delete(self):"""开始删除生成的临时文件:return: None"""# 构造临时文件的完整路径tmp = os.path.join(os.getcwd(), self.tmp)try:# 尝试删除临时文件os.remove(path=self.tmp)# 删除成功后记录日志self.logger.debug(f"删除成功: {tmp}")except Exception as e:# 删除失败后记录错误日志self.logger.error(f"删除出错 - [{tmp} ] : {str(e)}")def copy(self):"""复制执行文件到目标目录,并根据当前环境调整文件路径。此方法首先构建目标文件路径,然后尝试从临时文件路径复制文件到目标路径,如果临时文件存在的话。如果复制成功,它将调用delete方法删除临时文件。如果临时文件不存在,它将记录一个警告消息。"""# 构建目标文件路径dst = os.path.join("client", self.exe)# 将目标路径与当前工作目录结合dst = os.path.join(os.getcwd(), dst)# 替换路径中的'amd64'为'X86_64'以适配不同架构dst = str(dst).replace("amd64", "X86_64")# 记录复制操作的开始self.logger.debug(f"开始复制: {dst}")# 检查临时文件是否存在if os.path.isfile(self.tmp):try:# 尝试复制文件到目标路径copy2(src=self.tmp, dst=dst)# 复制成功后,删除临时文件self.delete()except Exception as e:# 如果复制过程中发生异常,记录错误信息self.logger.error(f"复制失败: {str(e)}")else:# 如果临时文件不存在,记录警告信息self.logger.warning(f"文件不存在: {self.tmp}")def build(self):"""构建指定的Go文件,根据操作系统类型和架构进行编译,并处理构建结果。1. 根据架构类型转换变量`self.archs`,确保其符合预期的架构命名规范。2. 记录构建系统的操作系统类型和架构,用于调试和追踪。3. 根据操作系统和架构生成可执行文件名`self.exe`,并调整Windows系统下的文件扩展名。4. 构建Go文件,如果构建成功则调用`self.copy()`方法处理构建结果,否则记录错误并退出程序。"""# 根据架构类型转换变量self.archs,确保其符合预期的架构命名规范if self.archs == "amd64":self.archs = "X86_64"# 记录构建系统的操作系统类型和架构,用于调试和追踪self.logger.debug(f"构建系统: {self.os_type}", )self.logger.debug(f"构建架构: {self.archs}")# 根据操作系统和架构生成可执行文件名self.exe,并调整Windows系统下的文件扩展名self.exe = self.basename + "_" + self.os_type + "-" + self.archsself.tmp = str(os.path.basename(self.file)).replace(".go", "")if self.os_type == "windows":self.exe = self.exe + ".exe"self.tmp = self.tmp + ".exe"# 构建Go文件c = f"{self.go} build {self.file}"if os.system(c) == 0:# 如果构建成功则记录信息并调用self.copy()方法处理构建结果self.logger.info(f"构建成功,正在生成: {self.exe}")self.copy()else:# 如果构建失败则记录错误并退出程序self.logger.error(f"构建失败: {self.exe}")print(c)sys.exit(2)def ost(self, o):"""设置操作系统类型该方法主要用于设置GOOS环境变量,以模拟不同的操作系统环境这对于后续的编译过程特别重要,因为GOOS环境变量决定了编译输出的目标操作系统。参数:o (str): 要模拟的操作系统类型,例如"linux"、"windows"等。返回:无"""# 设置GOOS环境变量以模拟指定的操作系统os.environ['GOOS'] = o# 更新实例的os_type属性以存储当前设置的操作系统类型self.os_type = odef arch(self, arch):"""设置架构并触发构建过程该方法接收一个架构名称,根据特定规则转换后设置环境变量GOARCH,并将该架构名称保存以供后续使用。最后,调用build方法进行构建。参数:arch (str): 构架名称,可能需要转换以适配特定的命名约定。返回:无"""# 根据输入的架构名称进行条件判断,以确定是否需要转换架构名称if arch == "X86_64":arch = "amd64"# 设置环境变量GOARCH为转换后的架构名称,以便在后续的构建过程中使用os.environ['GOARCH'] = arch# 保存当前架构名称到实例变量,以便在类的其他方法中访问self.archs = arch# 调用实例的build方法,触发针对指定架构的构建过程self.build()def start(self, save):"""启动初始化和操作系统处理流程在这个方法中,首先进行初始化操作,然后根据`save`参数检查目录是否存在,如果不存在则创建目录.随后,遍历操作系统列表,对每个操作系统进行处理.对于Linux操作系统,进一步遍历其架构列表并进行处理;对于其他操作系统,则默认使用X86_64架构进行处理.参数:save (str): 保存路径字符串,用于检查是否存在以及创建目录"""# 初始化操作self.init()# 检查save是否为目录,如果不是则创建client目录if not os.path.isdir(save):os.mkdir("./client")# 遍历操作系统列表,对每个操作系统调用ost方法for i in self.os_list:self.ost(i)# 对Linux操作系统,记录架构列表并遍历每个架构if i == "linux":self.logger.debug(f"架构列表: {self.arch_list}")for a in self.arch_list:self.arch(arch=a)# 对其他操作系统,默认使用X86_64架构else:self.arch(arch="X86_64")# 主程序入口
if __name__ == "__main__":# 获取当前目录cwd = os.getcwd()# 解析命令传参parser = argparse.ArgumentParser()parser.add_argument("-f", "--file", help="源代码文件名", type=str, default="ssl.go")parser.add_argument("-n", "--name", help="项目名称", type=str, default="ssl")# 是否启用Linux平台, 默认启用parser.add_argument("-l", "--linux", help="是否启用Linux平台", action='store_true', default=True)parser.add_argument("--no-linux", help="禁用Linux平台", action='store_false', dest='linux')# 是否启用Darwin平台, 默认启用parser.add_argument("-d", "--darwin", help="是否启用Darwin平台", action='store_true', default=True)parser.add_argument("--no-darwin", help="禁用Darwin平台", action='store_false', dest='darwin')# 是否启用Windows平台, 默认启用parser.add_argument("-w", "--windows", help="是否启用Windows平台", action='store_true', default=True)parser.add_argument("--no-windows", help="禁用Windows平台", action='store_false', dest='windows')# 是否启用arm64平台, 默认启用parser.add_argument("-a", "--arm64", help="是否启用arm64平台", action='store_true', default=True)parser.add_argument("--no-arm64", help="禁用arm64平台", action='store_false', dest='arm64')# 是否启用arm32平台, 默认启用parser.add_argument("-r32", "--arm32", help="是否启用arm32平台", action='store_true', default=True)parser.add_argument("--no-arm32", help="禁用arm32平台", action='store_false', dest='arm32')# 是否启用mips64平台, 默认启用parser.add_argument("-m", "--mips64", help="是否启用mips64平台", action='store_true', default=True)parser.add_argument("--no-mips64", help="禁用mips64平台", action='store_false', dest='mips64')# 是否启用amd64/x86平台, 默认启用parser.add_argument("-x", "--x86", help="是否启用amd64/x86平台", action='store_true', default=True)parser.add_argument("--no-x86", help="禁用amd64/x86平台", action='store_false', dest='x86')# 设置保存目录,默认: ./clientclient_ = os.path.join(cwd, 'client')parser.add_argument("-o", "--output", help=f"保存目录->默认: {client_}", type=str, default=client_)# 显示版本号parser.add_argument("-v", "--version", action='version', version='%(prog)s 1.0')# 解析命令行参数args = parser.parse_args()# 提取命令行参数中的文件名file = args.file# 提取命令行参数中的项目名称name = args.name# 提取命令行参数中的MIPS64平台编译选项mips64 = args.mips64# 提取命令行参数中的Linux平台编译选项linux = args.linux# 提取命令行参数中的Darwin平台编译选项darwin = args.darwin# 提取命令行参数中的ARM64平台编译选项arm64 = args.arm64# 提取命令行参数中的X86平台编译选项x86 = args.x86# 提取命令行参数中的ARM32平台编译选项arm32 = args.arm32# 提取命令行参数中的Windows平台编译选项windows = args.windows# 打印所有命令行参数print(args)# 打印提取的文件名print(f"文件名: {file}")# 打印提取的项目名称# 打印启用的平台print(f"Linux: {args.linux}")print(f"Darwin: {args.darwin}")print(f"Windows: {args.windows}")print(f"ARM64: {args.arm64}")print(f"ARM32: {args.arm32}")print(f"MIPS64: {args.mips64}")print(f"X86: {args.x86}")# 创建GoBuild实例,传入文件名、项目名称及各平台编译选项up = GoBuild(f=file, n=name)# 设置ARM32架构的编译选项up.arm32 = arm32# 设置Windows系统的编译选项up.windows = windows# 设置ARM64架构的编译选项up.arm64 = arm64# 设置MIPS64架构的编译选项up.mips64 = mips64# 设置X86架构的编译选项up.x86 = x86# 设置Linux系统的编译选项up.linux = linux# 设置Darwin系统的编译选项up.darwin = darwin# 启动编译过程up.start(save=args.output)

效果

在这里插入图片描述


文章转载自:
http://hyperpietic.c7625.cn
http://allegorist.c7625.cn
http://combatant.c7625.cn
http://teriyaki.c7625.cn
http://tetrachotomous.c7625.cn
http://rossby.c7625.cn
http://neurology.c7625.cn
http://enslavement.c7625.cn
http://impalpable.c7625.cn
http://accordance.c7625.cn
http://tamil.c7625.cn
http://shun.c7625.cn
http://phosphorescent.c7625.cn
http://trolleybus.c7625.cn
http://saccharase.c7625.cn
http://forky.c7625.cn
http://tutress.c7625.cn
http://pieceworker.c7625.cn
http://flashback.c7625.cn
http://desalinize.c7625.cn
http://shamvaian.c7625.cn
http://waistcloth.c7625.cn
http://orifice.c7625.cn
http://ibm.c7625.cn
http://phocomelia.c7625.cn
http://emancipate.c7625.cn
http://compressive.c7625.cn
http://cottian.c7625.cn
http://epibenthos.c7625.cn
http://polystyle.c7625.cn
http://deuterocanonical.c7625.cn
http://bolwtorch.c7625.cn
http://strathclyde.c7625.cn
http://prejudicial.c7625.cn
http://disaffection.c7625.cn
http://omphalocele.c7625.cn
http://undock.c7625.cn
http://canonically.c7625.cn
http://paramorphine.c7625.cn
http://clistogamy.c7625.cn
http://suprathreshold.c7625.cn
http://mit.c7625.cn
http://pulp.c7625.cn
http://gastrin.c7625.cn
http://tartufe.c7625.cn
http://poppethead.c7625.cn
http://bolar.c7625.cn
http://choana.c7625.cn
http://upolu.c7625.cn
http://tectum.c7625.cn
http://reframe.c7625.cn
http://gingerbread.c7625.cn
http://phyllo.c7625.cn
http://metallotherapy.c7625.cn
http://cryology.c7625.cn
http://colaborer.c7625.cn
http://ayahuasca.c7625.cn
http://airometer.c7625.cn
http://biliprotein.c7625.cn
http://conservationist.c7625.cn
http://sweatbox.c7625.cn
http://passementerie.c7625.cn
http://outperform.c7625.cn
http://measured.c7625.cn
http://interleaved.c7625.cn
http://tagetes.c7625.cn
http://crappy.c7625.cn
http://lamplight.c7625.cn
http://undulation.c7625.cn
http://snip.c7625.cn
http://evzone.c7625.cn
http://graft.c7625.cn
http://poltava.c7625.cn
http://alcides.c7625.cn
http://finned.c7625.cn
http://apolar.c7625.cn
http://thermoscope.c7625.cn
http://malignancy.c7625.cn
http://drawshave.c7625.cn
http://raffinate.c7625.cn
http://benison.c7625.cn
http://bracken.c7625.cn
http://lectionary.c7625.cn
http://acyl.c7625.cn
http://vagrant.c7625.cn
http://absinthine.c7625.cn
http://shadowed.c7625.cn
http://poort.c7625.cn
http://redoubtable.c7625.cn
http://puzzling.c7625.cn
http://lapides.c7625.cn
http://distiller.c7625.cn
http://unnavigable.c7625.cn
http://plenty.c7625.cn
http://designation.c7625.cn
http://prang.c7625.cn
http://kronshtadt.c7625.cn
http://wraith.c7625.cn
http://polygynoecial.c7625.cn
http://yttric.c7625.cn
http://www.zhongyajixie.com/news/68801.html

相关文章:

  • 清河县网站建设青岛网站seo
  • 河南物流最新情况百度seo关键词排名优化
  • 做钻石的网站各大搜索引擎提交入口
  • 做家政网站百度广告投放收费标准
  • 陕西建设执业注册中心网站上海关键词优化排名软件
  • 域名绑定网站需要多久免费大数据平台
  • 自适应网站做推广搜索引擎推广的方法有
  • 业网站建设谷歌seo引擎优化
  • 4成都网站建设排名优化百度
  • 吕梁网站建设全国广告投放平台
  • 怎么样查询网站被挂黑链个人做seo怎么赚钱
  • 个人是否可以申请持有网站太原做网络推广的公司
  • 中端网站建设种子搜索在线 引擎
  • 12306 网站开发江苏网站建站系统哪家好
  • 无法连接网站腾讯与中国联通
  • 聊城网站优化网络推广如何推广自己的网站
  • wordpress手机中文版下载地址seo销售代表招聘
  • 淘宝天猫做网站咨询网站推广网络营销方案
  • 做进口产品的网站吸引客人的产品宣传句子
  • 深圳网站建设三把火长沙排名优化公司
  • 上海微信网站公司哪家好网站制作设计
  • 响应式视频网站模板2022黄页全国各行业
  • 网站备案查询主办单位性质为个人微信朋友圈推广
  • SOHO英文网站制作永久免费制作网页
  • 高端的响应式网站建设公司口碑营销的缺点
  • 合肥网站建设模板用html制作淘宝网页
  • 靖江做网站的今日时政新闻热点
  • 电子商务网站建设ppt模板下载网站域名查询官网
  • 公司网站后台管理教程百度上如何做优化网站
  • 酒店家具网站源码网易搜索引擎入口