Add an easy to use cross-platform install script for that classic curl | bash goodness

This commit is contained in:
David Dworken
2022-04-19 20:36:14 -07:00
parent 1528e9817e
commit 6c9236785a
3 changed files with 40 additions and 15 deletions

View File

@ -0,0 +1,33 @@
"""
A small install script to download the correct hishtory binary for the current OS/architecture.
The hishtory binary is in charge of installing itself, this just downloads the correct binary and
executes it.
"""
import json
import urllib.request
import platform
import sys
import os
with urllib.request.urlopen('https://api.hishtory.dev/api/v1/download') as response:
resp_body = response.read()
download_options = json.loads(resp_body)
if platform.system() == 'Linux':
download_url = download_options['linux_amd_64_url']
elif platform.system() == 'Darwin' and platform.machine() == 'arm64':
download_url = download_options['darwin_arm_64_url']
elif platform.system() == 'Darwin' and platform.machine() == 'x86_64':
download_url = download_options['darwin_amd_64_url']
else:
print(f"No hishtory binary for system={platform.system()}, machine={platform.machine()}!\nIf you believe this is a mistake, please open an issue here: https://github.com/ddworken/hishtory/issues")
sys.exit(1)
with urllib.request.urlopen(download_url) as response:
hishtory_binary = response.read()
with open('/tmp/hishtory-client', 'wb') as f:
f.write(hishtory_binary)
os.system('chmod +x /tmp/hishtory-client')
os.system('/tmp/hishtory-client install')
print('Succesfully installed hishtory! Try running a command and then running `hishtory query`.')