1
0
mirror of https://github.com/CMiksche/gitea-auto-update synced 2025-12-10 07:57:23 +01:00

Merge pull request #1 from Eideen/patch1

Add support for checksum, change to use zx, made more verbose
This commit is contained in:
Eideen
2019-05-19 00:46:26 +02:00
committed by GitHub
2 changed files with 64 additions and 9 deletions

View File

@@ -13,7 +13,9 @@ gtgithubapiurl = 'https://api.github.com/repos/go-gitea/gitea/releases/latest'
# Gitea System # Gitea System
gtsystem = 'linux-amd64' gtsystem = 'linux-amd64'
# Name and Path of gitea file # Name and Path of gitea file
gtfile = '/home/git/gitea' gtfile = '/usr/local/bin/gitea'
# tmp Name and Path of gitea file
tmpdir = '/tmp/'
# Build new version from source? # Build new version from source?
build_from_source = None build_from_source = None
# Source directroy # Source directroy

View File

@@ -10,6 +10,7 @@ import settings
import requests import requests
import os import os
# Function to download a file # Function to download a file
def download(url, file_name): def download(url, file_name):
# open in binary mode # open in binary mode
@@ -17,6 +18,7 @@ def download(url, file_name):
# get request # get request
response = requests.get(url) response = requests.get(url)
# write to file # write to file
print ("writing file", file_name)
file.write(response.content) file.write(response.content)
# Function to build the new version from source # Function to build the new version from source
@@ -34,20 +36,33 @@ def buildFromSource(tag):
# Move binary # Move binary
os.system("mv gitea "+settings.gtfile) os.system("mv gitea "+settings.gtfile)
def is_tool(name):
##Check whether `name` is on PATH and marked as executable.
# from whichcraft import which
from shutil import which
return which(name) is not None
if not is_tool("xz"):
print ("missing dependency: xz")
quit()
# Version from gitea site # Version from gitea site
current_version = requests.get(settings.gtsite).json()['version'] current_version = requests.get(settings.gtsite).json()['version']
print ("current_version =", current_version)
# Get version tag from github and remove first char (v) # Get version tag from github and remove first char (v)
github_version_tag = requests.get(settings.gtgithubapiurl).json()['tag_name'] github_version_tag = requests.get(settings.gtgithubapiurl).json()['tag_name']
print ("github_version_tag =", github_version_tag)
# Get version from version tag # Get version from version tag
github_version = github_version_tag[1:] github_version = github_version_tag[1:]
# Check if there is a new version # Check if there is a new version
if github_version > current_version: if github_version > current_version:
# Stop systemd service # Stop systemd service
os.system("systemctl stop gitea.service") print ("new version available, stopping service")
#os.system("systemctl stop gitea.service")
# Should the new version be build from source? # Should the new version be build from source?
if settings.build_from_source: if settings.build_from_source:
@@ -55,12 +70,50 @@ if github_version > current_version:
buildFromSource(github_version_tag) buildFromSource(github_version_tag)
else: else:
# Set download url # Set download url
gtdownload = 'https://github.com/go-gitea/gitea/releases/download/'+github_version_tag+'/gitea-'+github_version+'-'+settings.gtsystem ## main file
gtdownload = 'https://github.com/go-gitea/gitea/releases/download/'+github_version_tag+'/gitea-'+github_version+'-'+settings.gtsystem+'.xz'
print (gtdownload)
## sha256 file
shadownload = 'https://github.com/go-gitea/gitea/releases/download/'+github_version_tag+'/gitea-'+github_version+'-'+settings.gtsystem+'.xz.sha256'
print (shadownload)
# Download file # Download file
download(gtdownload, settings.gtfile)
## downloading sha
print ("downloading sha256 hashsum")
download(shadownload, settings.tmpdir+'gitea.xz.sha256')
## downloading xz
print ("downloading", github_version_tag+'gitea.xz')
tmpxz = settings.tmpdir+'gitea-'+github_version+'-'+settings.gtsystem+'.xz'
download(gtdownload, tmpxz)
# doing sha256 sum
os.chdir(settings.tmpdir)
#sha_value = os.system("sha256sum -c gitea.xz.sha256 > /dev/null")
if os.system("sha256sum -c gitea.xz.sha256 > /dev/null") == 0:
print ("sha ok, extracting file to location")
# extracting download file
cmd = "xz -d "+tmpxz
print (cmd)
os.system(cmd)
# moving temp file to gtfile location
cmd = 'mv '+settings.tmpdir+'gitea-'+github_version+'-'+settings.gtsystem+' '+settings.gtfile
print (cmd)
os.system(cmd)
else:
print ("error")
quit()
# Start systemd service # Start systemd service
print ("starting gitea.service")
os.system("systemctl start gitea.service") os.system("systemctl start gitea.service")
print ("update successfully")
else:
#Print current version is uptodate
print ("current version is uptodate")