46 lines
1.2 KiB
Python
46 lines
1.2 KiB
Python
import os
|
|
import sys
|
|
from dotenv import load_dotenv
|
|
import shutil
|
|
import boto3
|
|
from botocore.exceptions import ClientError
|
|
|
|
|
|
def install_zola():
|
|
version = os.environ["INPUT_VERSION"]
|
|
access_key = os.environ["INPUT_ACCESS_KEY"]
|
|
secret_key = os.environ["INPUT_SECRET_KEY"]
|
|
endpoint = os.environ["INPUT_ENDPOINT"]
|
|
bucket = os.environ["INPUT_BUCKET"]
|
|
|
|
zola_filename = "zola-" + version
|
|
|
|
try:
|
|
# Create S3 client for S3-compatible storage
|
|
s3_client = boto3.client(
|
|
's3',
|
|
aws_access_key_id=access_key,
|
|
aws_secret_access_key=secret_key,
|
|
endpoint_url=endpoint
|
|
)
|
|
|
|
# Download file from S3-compatible storage
|
|
s3_client.download_file(bucket, zola_filename, zola_filename)
|
|
print("文件下载成功!")
|
|
|
|
# Install zola binary
|
|
shutil.copy(zola_filename, "/usr/local/bin/zola")
|
|
os.chmod("/usr/local/bin/zola", 0o755)
|
|
print("Zola 安装成功!")
|
|
except ClientError as e:
|
|
print(f"S3 Error: {str(e)}")
|
|
sys.exit(1)
|
|
except Exception as e:
|
|
print(f"Error: {str(e)}")
|
|
sys.exit(1)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
load_dotenv()
|
|
install_zola()
|