Internet Explorer、ダメ絶対!

あなたが使用している Internet Explorer というブラウザはとても古いものです。
言ってしまえば、百害あって一利なしの老害です。
世界中で、多くのWEB制作者があなたの Internet Explorer のせいで苦悩しています。

どうか、最新のモダンブラウザ(EdgeやFirefox、Google Chrome)をお使いください。

Google Chromeをダウンロード
Hugo Updater

Hugo Updater

2月 2, 2020
ソフト

機能

HugoのGithub Releasesから最新バージョンのファイルをダウンロードし、自動でアップデートしてくれるものです。

コード

# -*- coding: utf-8 -*-
import os
import zipfile
import shutil
import glob
import subprocess
from subprocess import check_output
import requests,json,platform
import urllib.request
json_url = "https://api.github.com/repos/gohugoio/hugo/releases/latest"
json_data = requests.get(json_url)
#print(json_data.text)
with open('hugo_version.json',mode='w') as json_file:
    json_file.write(json_data.text)
version_file = json.loads(json_data.text)
#print(version_file)
hugo_newest = version_file["name"]
print("Latest :" + hugo_newest)
machine_type = platform.architecture()
machine_type = machine_type[0]
print("Type : " + machine_type)
OS = platform.system()
print("OS : " + OS)

if OS == "Windows":
    out = check_output(["hugo", "version"])
    out = out.decode()
    if "extended" in out:
        out = out[27:34]
        ex = "y"
        print("Use : " + out + " / Extended")
        
    else:
        out = out[27:34]
        out = out.decode()
        print("Use : " + out)

else:
    res = subprocess.call('hugo', 'version')
    out = res.decode()
    if "extended" in out:
        out = res[27:34]
        ex = "y"
        print("Use : " + out + " / Extended")
        
    else:
        out = res[27:34]
        out = out.decode()
        print("Use : " + out)

hugo_newest_k = hugo_newest[3:]
hugo_out = out[3:]
hugo_newest_v = hugo_newest[1:]
if hugo_newest_k > hugo_out:
    print()
    print("New Version Released!")
    print("Update Now?")
    Check = input("(Y)es/(N)o:")
    if Check == "Y":
        if OS == "Windows":
            if ex == "y":
                url = "https://github.com/gohugoio/hugo/releases/download/" + hugo_newest + "/hugo_"  + "extended_" + hugo_newest_v + "_Windows-" + machine_type + ".zip"
                save_name = os.path.dirname(__file__) + "/hugo_"  + "extended_" + hugo_newest_v + "_Windows-" + machine_type + ".zip"
                urllib.request.urlretrieve(url, save_name)
                with zipfile.ZipFile(save_name) as existing_zip:
                    existing_zip.extractall(os.path.dirname(__file__) + "/temp/")
                shutil.copy(os.path.dirname(__file__) + "/temp/hugo.exe", os.path.dirname(__file__) + "/")
                shutil.copy(os.path.dirname(__file__) + "/temp/LICENSE", os.path.dirname(__file__) + "/")
                shutil.copy(os.path.dirname(__file__) + "/temp/README.md", os.path.dirname(__file__) + "/")
                shutil.rmtree(os.path.dirname(__file__) + "/temp/")
                os.remove(save_name)
                print("Update Completed!")
            else:
                url = "https://github.com/gohugoio/hugo/releases/download/" + hugo_newest + "/hugo_" + hugo_newest_v + "_Windows-" + machine_type + ".zip"
                save_name = os.path.dirname(__file__) + "/hugo_" + hugo_newest_v + "_Windows-" + machine_type + ".zip"
                urllib.request.urlretrieve(url, save_name)
                with zipfile.ZipFile(save_name) as existing_zip:
                    existing_zip.extractall(os.path.dirname(__file__) + "/temp/")
                shutil.copy(os.path.dirname(__file__) + "/temp/hugo.exe", os.path.dirname(__file__) + "/")
                shutil.copy(os.path.dirname(__file__) + "/temp/LICENSE", os.path.dirname(__file__) + "/")
                shutil.copy(os.path.dirname(__file__) + "/temp/README.md", os.path.dirname(__file__) + "/")
                shutil.rmtree(os.path.dirname(__file__) + "/temp/")
                os.remove(save_name)
                print("Update Completed!")

        else:
            if ex == "y":
                url = "https://github.com/gohugoio/hugo/releases/download/" + hugo_newest + "/hugo_"  + "extended_" + hugo_newest_v + "_" + OS + "-" + machine_type + ".tar.gz"
                save_name = os.path.dirname(__file__) + "/hugo_"  + "extended_" + hugo_newest_v + "_" + OS + "-" + machine_type + ".tar.gz"
                urllib.request.urlretrieve(url, save_name)
                with zipfile.ZipFile(save_name) as existing_zip:
                    existing_zip.extractall(os.path.dirname(__file__) + "/temp/")
                file_path = os.path.dirname(__file__) + '/temp/' '*'
                files = glob.glob(file_path)
            else:
                url = "https://github.com/gohugoio/hugo/releases/download/" + hugo_newest + "/hugo_" + hugo_newest_v + "_" + OS + "-" + machine_type + ".tar.gz"
                save_name = os.path.dirname(__file__) + "/hugo_" + hugo_newest_v + "_" + OS + "-" + machine_type + ".tar.gz"
                urllib.request.urlretrieve(url, save_name)
                with zipfile.ZipFile(save_name) as existing_zip:
                    existing_zip.extractall(os.path.dirname(__file__) + "/temp/")
                file_path = os.path.dirname(__file__) + '/temp/' '*'
                files = glob.glob(file_path)

            for file in files:
                try:
                    new_file_path = file.replace(os.path.dirname(__file__) + "/temp/", os.path.dirname(__file__) + "/")
                    shutil.copy(file, new_file_path)

                except FileNotFoundError:
                    pass

                except OSError:
                    pass
            
            shutil.rmtree(os.path.dirname(__file__) + "/temp/")
            os.remove(save_name)
            print("Update Completed!")
            os.system('PAUSE')



    else:
        print("Update Cenceled.")
        os.system('PAUSE')


else:
    print()
    print("Update Unavailable")
    os.system('PAUSE')

説明と解説

元はこちらの投稿です。

Hugo Updater【製作中】 - 水葉のお部屋
https://yayoimizuha.web.app/hugo-updater/

コードは見やすさより便利さを優先しました。
割と見づらいと思います。

使い方

0.Python3をインストール
1.Hugo-Updater.zipをダウンロード
2.hugo-updarter.pyをHugoの入っているフォルダにコピー
3.実行

仕組み

1.マシン情報とバージョンを確認
2.OSに合わせたファイルをTempフォルダにダウンロード
3.解凍
4.コピー、上書き
5.Tempフォルダ削除
6.完了(ポーズ)

更新

20/02/03
extended版を追加しました。

ダウンロード

※Mac / Linuxでは動作しません。Zipをtar.gz解凍のスクリプトに変更してください。

もしくはミラー(Dropbox)から
https://www.dropbox.com/s/8dgtiy9642rjb9z/Hugo-Updater.zip?dl=0