-
-
Notifications
You must be signed in to change notification settings - Fork 3.6k
update script
Below shell script updates the pandoc
binary (on Linux 64 bit) to its latest version:
#!/usr/bin/env bash
# debug output and exit on error or use of undeclared variable or pipe error:
set -o xtrace -o errtrace -o errexit -o nounset -o pipefail
repo="$HOME/bin/repos/pandoc"
mkdir --parents "$repo"
latest_tag="$(curl --location --head https://github.com/jgm/pandoc/releases/latest | grep -i location: | sed 's/^.*\/tag\/\([^\/]*\)\r$/\1/')"
filename=pandoc-${latest_tag}-linux-amd64.tar.gz
uri_to_download="https://github.com/jgm/pandoc/releases/download/${latest_tag}/${filename}"
(
cd "$(mktemp --directory "${TMPDIR:-/tmp}/tmp.XXXXXXXXXX")"
curl --fail --show-error --remote-name --location "$uri_to_download"
env XZ_OPT=-T0 tar --gzip -xvf "$filename"
chmod a+x pandoc-${latest_tag}/bin/pandoc
cp pandoc-${latest_tag}/bin/pandoc "$repo"/
cp pandoc-${latest_tag}/share/man/man1/pandoc.1.gz "$repo"/
)
if [ ! -x "${repo}/pandoc" ]; then
echo '"pandoc" was not successfully installed!' >&2
exit 2
fi
""" XXX DEX PPT Generator - 主入口文件 生成深色科技风格的XXX DEX产品演示PPT """
from fastapi import FastAPI, File, UploadFile, HTTPException from fastapi.responses import FileResponse from fastapi.middleware.cors import CORSMiddleware from src.ppt_generator import XXXDEXPPTGenerator import uvicorn import os import tempfile
app = FastAPI( title="XXX DEX PPT Generator", description="生成XXX DEX产品演示PPT的自动化工具", version="1.0.0" )
app.add_middleware( CORSMiddleware, allow_origins=[""], allow_credentials=True, allow_methods=[""], allow_headers=["*"], )
@app.post("/generate-ppt") async def generate_ppt(): """生成PPTX文件并返回下载链接""" try: generator = XXXDEXPPTGenerator()
# 创建临时文件
with tempfile.NamedTemporaryFile(suffix='.pptx', delete=False) as tmp_file:
tmp_path = tmp_file.name
# 生成PPT
generator.create_presentation(tmp_path)
return FileResponse(
tmp_path,
media_type="application/vnd.openxmlformats-officedocument.presentationml.presentation",
filename="XXX-DEX-产品演示.pptx"
)
except Exception as e:
raise HTTPException(status_code=500, detail=str(e))
@app.get("/health") async def health_check(): """健康检查接口""" return {"status": "healthy", "service": "XXX DEX PPT Generator"}
if name == "main": uvicorn.run(app, host="0.0.0.0", port=8000)