编译自己的 XList
AList 给了个编译脚本,但是依赖的东西有点多,根据需要精简一点就好用多了。
复制
#!/bin/bash
# ==================================================
# Alist 编译脚本 - 打包 Linux 和 Windows 版本
# ==================================================
# 注意修改打包的参数,gitAuthor,gitCommit,version,webVersion
set -e
appName="alist"
`base64:builtAt=`"$(date +'%F %T %z')"
goVersion=$(go version | sed 's/go version //')
gitAuthor=$(git show -s --format='format:%aN <%ae>' HEAD)
# gitAuthor=mxpy
gitCommit=$(git log --pretty=format:"%h" -1)
# gitCommit="test"
version=$(git describe --long --tags --dirty --always)
# version="test"
webVersion=$(wget -qO- -t1 -T2 "https://api.github.com/repos/alist-org/alist-web/releases/latest" | grep "tag_name" | head -n 1 | awk -F ":" '{print $2}' | sed 's/\"//g;s/,//g;s/ //g')
# webVersion=3.53.0
ldflags="\
-w -s \
-X 'github.com/alist-org/alist/v3/internal/conf.BuiltAt=$builtAt' \
-X 'github.com/alist-org/alist/v3/internal/conf.GoVersion=$goVersion' \
-X 'github.com/alist-org/alist/v3/internal/conf.GitAuthor=$gitAuthor' \
-X 'github.com/alist-org/alist/v3/internal/conf.GitCommit=$gitCommit' \
-X 'github.com/alist-org/alist/v3/internal/conf.Version=$version' \
-X 'github.com/alist-org/alist/v3/internal/conf.WebVersion=$webVersion' \
"
# 输出目录
output_dir="dist"
mkdir -p "$output_dir"
# ------------------------
# 打包 Linux 版本
# ------------------------
echo "正在打包 Linux 版本..."
GOOS=linux GOARCH=amd64 go build -ldflags="$ldflags" -o "$output_dir/${appName}_linux_amd64"
echo "Linux 版本打包完成:$output_dir/${appName}_linux_amd64"
# ------------------------
# 打包 Windows 版本
# ------------------------
echo "正在打包 Windows 版本..."
GOOS=windows GOARCH=amd64 go build -ldflags="$ldflags" -o "$output_dir/${appName}_windows_amd64.exe"
echo "Windows 版本打包完成:$output_dir/${appName}_windows_amd64.exe"
echo "所有版本打包完成,输出目录:$output_dir"
跨平台需要安装 musl-cross,在 musl.cc 有。
原文: https://mp.weixin.qq.com/s/jdnP-luPSSRPUavP2anBTQ
为什么要自己编译? 我直接 docker。 而且 alist 有黑历史换 openlist 了。