diff --git a/.gitignore b/.gitignore index f2b4e6d..0d1f7a5 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,5 @@ build/ chrome_data/ dist/ /.cache +/temp.json +/.eslintcache diff --git a/.nvimrc b/.nvimrc new file mode 120000 index 0000000..1490f7a --- /dev/null +++ b/.nvimrc @@ -0,0 +1 @@ +.vimrc \ No newline at end of file diff --git a/.vim/coc-settings.json b/.vim/coc-settings.json new file mode 100644 index 0000000..ae5fe8f --- /dev/null +++ b/.vim/coc-settings.json @@ -0,0 +1,14 @@ +{ + "cSpell.words": [ + "HKEY", + "HKLM", + "Redistributable", + "Skylinks", + "Skynet", + "Unmount", + "msiexec", + "relver", + "siaprime", + "skylink" + ] +} \ No newline at end of file diff --git a/.vimrc b/.vimrc new file mode 100644 index 0000000..cbde2c6 --- /dev/null +++ b/.vimrc @@ -0,0 +1,7 @@ +set autoread +set path+=.,public/**,src/**,test/** +if has('win32') + let &makeprg="create_dist.cmd" +else + let &makeprg="./create_dist.sh" +endif diff --git a/CHANGELOG.md b/CHANGELOG.md index b9baac7..3fd50b5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,29 @@ # Changelog +## 1.3.2 +* \#48: Support pinning files to cache +* Fixed Skynet export display +* Properly detect existing remote +* Reduced number of Linux binaries to: + * CentOS 7 + * Solus +* S3 mount support [disabled] + +## 1.3.1 +* \#45: Skynet mount support + +## 1.3.0 +* \#38: Enhance new repertory release available notification +* \#46: Fix Mount Manager unmount and mount detection +* Skynet support +* Synchronize UI major/minor version with `repertory` major/minor version +* Added `Password` component +* Reduced number of Linux binaries to: + * CentOS 7 + * Debian 9 + * Debian 10 + * Solus +* Added `FocusTrap` to modals + ## 1.1.4 * \#39: Cleanup old releases and UI upgrades diff --git a/LICENSE.md b/LICENSE.md index 1251368..07e9c8b 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -1,5 +1,5 @@ # Repertory UI MIT License -### Copyright <2018-2019> +### Copyright <2018-2020> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: diff --git a/README.md b/README.md index 821970a..801f868 100644 --- a/README.md +++ b/README.md @@ -1,57 +1,39 @@ # Repertory UI -![alt text](https://i.ibb.co/y4bwwhV/repertory-1-1-4.png) +![alt text](https://i.ibb.co/jMvpQj8/repertory-ui-1-3-1.png) ## GUI for [Repertory](https://bitbucket.org/blockstorage/repertory) -Repertory allows you to mount Sia and/or ScPrime blockchain storage solutions via FUSE on Linux/OS X or via WinFSP on Windows. - -# Windows Issue -If you're experiencing slow copy, read, and/or write, please install the following UI version. This is a special build that includes WinFSP 2020.2: - -* [Repertory UI v1.1.5 Windows 64-bit](https://bitbucket.org/blockstorage/repertory-testing/downloads/repertory-ui_1.1.5_win.exe) - -# Discord Invite -* [Repertory Discord](https://discord.gg/f2rCfqRgrJ) +Repertory allows you to mount Sia, Skynet and/or ScPrime blockchain storage solutions via FUSE on Linux/OS X or via WinFSP on Windows. ## Requirements * Sia >=1.4.1 * ScPrime >=1.4.1.2 ## Downloads -* **Repertory UI v1.1.4 Linux 64-bit** [](https://bitbucket.org/blockstorage/repertory-ui/downloads/repertory-ui_1.1.4_linux_x86_64.AppImage) - * NOTE: Linux distributions require `fuse` and `libfuse` to be installed. -* **Repertory UI v1.1.4 OS X 64-bit** [](https://bitbucket.org/blockstorage/repertory-ui/downloads/repertory-ui_1.1.4_mac.dmg) -* **Repertory UI v1.1.4 Windows 64-bit** [](https://bitbucket.org/blockstorage/repertory-ui/downloads/repertory-ui_1.1.4_win.exe) +* **Repertory UI v1.3.2 Linux + 64-bit** [](https://bitbucket.org/blockstorage/repertory-ui/downloads/repertory-ui_1.3.2_linux_x86_64.AppImage) + * NOTE: Linux distributions require `fuse` and `libfuse` to be installed. +* **Repertory UI v1.3.2 OS X + 64-bit** [](https://bitbucket.org/blockstorage/repertory-ui/downloads/repertory-ui_1.3.2_mac.dmg) +* **Repertory UI v1.3.2 Windows + 64-bit** [](https://bitbucket.org/blockstorage/repertory-ui/downloads/repertory-ui_1.3.2_win.exe) ## Supported Platforms * OS X 64-bit * Windows 64-bit * Linux 64-bit Distributions: * Antergos - * Uses `Ubuntu 18.10` binaries for compatibility * Arch Linux * Bodhi 5.0.0 - * CentOS 7 - * CentOS 8 - * Debian 9 - * Debian 10 - * Elementary OS 5.0 - * Fedora 28 - * Fedora 29 - * Fedora 30 - * Fedora 31 - * Linux Mint 19 - * Linux Mint 19.1 - * Linux Mint 19.2 + * CentOS 7, 8 + * Debian 9, 10 + * Elementary OS 5.0, 5.1 + * Fedora 28, 29, 30, 31, 32, 33 + * Linux Mint 19, 19.1, 19.2, 19.3, 20, 20.1 * Manjaro - * Uses `Ubuntu 18.10` binaries for compatibility - * OpenSUSE Leap 15.0 - * OpenSUSE Leap 15.1 + * OpenSUSE Leap 15.0, 15.1 * OpenSUSE Tumbleweed * Solus - * Ubuntu 18.04 - * Ubuntu 18.10 - * Ubuntu 19.04 - * Ubuntu 19.10 + * Ubuntu 18.04, 18.10, 19.04, 19.10, 20.04 ## Issues/Suggestions Please submit [here](https://bitbucket.org/blockstorage/repertory-ui/issues?status=new&status=open) @@ -63,10 +45,6 @@ This feature allows you to share your mounts with other PC's and mount them remo ### Connecting to a Remote Mount [Watch Demo](src/assets/images/Connect_To_Remote.gif) -## The FAQ of One -### My distro isn't listed... Why? -It may still function properly as long as it derives from one listed above. I do plan to test more, so this list should grow over time. - ## Tips * BTC: 1CMvhGaJfH95VS4CTS6dJYDs8kwYXTUCEA * SC: c5510db5c2e85794b9cb81851daa57d6dfd5b4e42cd02789442e8789cd6492b07c754b2056ed diff --git a/create_dist.cmd b/create_dist.cmd index ba1ec57..2045e13 100644 --- a/create_dist.cmd +++ b/create_dist.cmd @@ -1,10 +1,15 @@ -@echo off +@echo off setlocal EnableDelayedExpansion set ROOT=%~dp0% set /a ENABLE_UPLOAD=%1 set BITBUCKET_AUTH=%2 - +set BITBUCKET_TESTING=%3 +if "%BITBUCKET_TESTING%" == "1" ( + set REPOSITORY=repertory-testing +) else ( + set REPOSITORY=repertory-ui +) set OPENSSL_BIN="c:\OpenSSL-Win64\bin\openssl.exe" if NOT EXIST %OPENSSL_BIN% ( set OPENSSL_BIN="c:\Program Files\OpenSSL-Win64\bin\openssl.exe" @@ -41,23 +46,17 @@ pushd "%ROOT%" del /q upload_response.json 1>NUL 2>&1 - ("%CURL_BIN%" -F name="%OUT_FILE%" -F anonymous=true -F file="@%OUT_FILE%" https://pixeldrain.com/api/file > upload_response.json) || ( - call :PIXEL_RESPONSE 0 - ) - call :PIXEL_RESPONSE 1 - set PIXEL_LOCATION=https://pixeldrain.com/api/file/!PIXEL_ID! - call :UPLOAD_TO_BITBUCKET "%OUT_FILE%" call :UPLOAD_TO_BITBUCKET "%OUT_FILE%.sha256" call :UPLOAD_TO_BITBUCKET "%OUT_FILE%.sig" - set BITBUCKET_LOCATION=https://bitbucket.org/blockstorage/repertory-ui/downloads/%OUT_FILE% + set BITBUCKET_LOCATION=https://bitbucket.org/blockstorage/%REPOSITORY%/downloads/%OUT_FILE% del /q releases.json 1>NUL 2>&1 ("%JQ_BIN%" ".Versions.win32|=(.+ ["""%APP_VER%"""]|unique)" ..\releases.json>releases_temp.json && move /Y releases_temp.json releases.json 1>NUL 2>&1) || (call :ERROR "Update releases.json Versions failed") ("%JQ_BIN%" ".Locations.win32."""%APP_VER%""".sig="""!APP_SIG!"""" releases.json>releases_temp.json && move /Y releases_temp.json releases.json 1>NUL 2>&1) || (call :ERROR "Update releases.json sig failed") ("%JQ_BIN%" ".Locations.win32."""%APP_VER%""".sha256="""!APP_SHA256!"""" releases.json>releases_temp.json && move /Y releases_temp.json releases.json 1>NUL 2>&1) || (call :ERROR "Update releases.json sha256 failed") - ("%JQ_BIN%" ".Locations.win32."""%APP_VER%""".urls=["""!PIXEL_LOCATION!""","""!BITBUCKET_LOCATION!"""]" releases.json>releases_temp.json && move /Y releases_temp.json releases.json 1>NUL 2>&1) || (call :ERROR "Update releases.json URL failed") + ("%JQ_BIN%" ".Locations.win32."""%APP_VER%""".urls=["""!BITBUCKET_LOCATION!"""]" releases.json>releases_temp.json && move /Y releases_temp.json releases.json 1>NUL 2>&1) || (call :ERROR "Update releases.json URL failed") ) popd ) || ( @@ -65,41 +64,17 @@ pushd "%ROOT%" ) popd goto :END - + :NO_QUOTES set %~1=!%~1:"=! -goto :EOF - -:PIXEL_RESPONSE - set PIXEL_RESPONSE= - if %1==1 ( - for /f "delims=" %%i in ('%JQ_BIN% .success upload_response.json') do ( - if "%%i" == "false" ( - for /f "delims=" %%i in ('%JQ_BIN% .message upload_response.json') do ( - set PIXEL_RESPONSE=!PIXEL_RESPONSE!%%i - ) - call :ERROR "Upload to pixeldrain failed: !PIXEL_RESPONSE!" - ) else ( - for /f "delims=" %%i in ('%JQ_BIN% .id upload_response.json') do ( - set PIXEL_ID=%%i - call :NO_QUOTES PIXEL_ID - ) - ) - ) - ) else ( - for /f "delims=" %%i in ('type upload_response.json') do ( - set PIXEL_RESPONSE=!PIXEL_RESPONSE!%%i - ) - call :ERROR "Upload to pixeldrain failed: !PIXEL_RESPONSE!" - ) goto :EOF :UPLOAD_TO_BITBUCKET set SOURCE_FILE=%1 call :NO_QUOTES SOURCE_FILE call :NO_QUOTES BITBUCKET_AUTH - echo "Uploading !SOURCE_FILE! to Bitbucket" - (curl --fail -u "!BITBUCKET_AUTH!" -X POST https://api.bitbucket.org/2.0/repositories/blockstorage/repertory-ui/downloads -F files="@!SOURCE_FILE!" > upload_response.json) || (call :ERROR "Upload to Bitbucket failed: %SOURCE_FILE%") + echo "Uploading !SOURCE_FILE! to Bitbucket %REPOSITORY%" + (curl --fail -u "!BITBUCKET_AUTH!" -X POST https://api.bitbucket.org/2.0/repositories/blockstorage/%REPOSITORY%/downloads -F files="@!SOURCE_FILE!" > upload_response.json) || (call :ERROR "Upload to Bitbucket %REPOSITORY% failed: %SOURCE_FILE%") goto :EOF :ERROR @@ -108,9 +83,9 @@ goto :EOF if "%DISABLE_PAUSE%" NEQ "1" ( pause ) -goto :END +goto :END :END if "!ERROR_EXIT!" NEQ "0" ( exit !ERROR_EXIT! - ) \ No newline at end of file + ) diff --git a/create_dist.sh b/create_dist.sh index 98a6b08..fb3f4f2 100755 --- a/create_dist.sh +++ b/create_dist.sh @@ -7,6 +7,13 @@ export PATH ENABLE_UPLOAD=$1 BITBUCKET_AUTH=$2 +BITBUCKET_TESTING=$3 + +if [ "$BITBUCKET_TESTING" = "1" ]; then + REPOSITORY=repertory-testing +else + REPOSITORY=repertory-ui +fi PRIVATE_KEY=../../blockstorage_dev_private.pem PUBLIC_KEY=../blockstorage_dev_public.pem @@ -19,7 +26,7 @@ if beginsWith darwin "$OSTYPE"; then JQ_EXEC=jq-osx-amd64 SHA256_EXEC="shasum -a 256 -b" else - DISTRO_LIST="arch centos7 centos8 debian9 debian10 fedora28 fedora29 fedora30 fedora31 opensuse15 opensuse15.1 solus tumbleweed ubuntu18.04 ubuntu18.10 ubuntu19.04 ubuntu19.10" + DISTRO_LIST="centos7 debian9 debian10 solus" OUT_FILE=repertory-ui_${APP_VER}_linux_x86_64.AppImage BASE64_EXEC="base64 -w0" JQ_EXEC=jq-linux64 @@ -33,7 +40,8 @@ exit_script() { upload_to_bitbucket() { SOURCE_FILE=$1 - curl --fail -u "${BITBUCKET_AUTH}" -X POST https://api.bitbucket.org/2.0/repositories/blockstorage/repertory-ui/downloads -F files=@${SOURCE_FILE} > upload_response.json || exit_script "Upload to Bitbucket failed: ${SOURCE_FILE}" + echo "Uploading ${SOURCE_FILE} to Bitbucket ${REPOSITORY}" + curl --fail -u "${BITBUCKET_AUTH}" -X POST https://api.bitbucket.org/2.0/repositories/blockstorage/${REPOSITORY}/downloads -F files=@${SOURCE_FILE} > upload_response.json || exit_script "Upload to Bitbucket failed: ${SOURCE_FILE}" } chmod +x "bin/${JQ_EXEC}" || exit_script "chmod +x ${JQ_EXEC} failed" @@ -52,30 +60,20 @@ if npm run dist; then APP_SHA256=$(cat ${OUT_FILE}.sha256 | awk '{print $1;}') rm -f upload_response.json 1>/dev/null 2>&1 - curl --fail -F name="${OUT_FILE}" -F anonymous=true -F file="@${OUT_FILE}" https://pixeldrain.com/api/file > upload_response.json || exit_script "Upload to Pixeldrain failed" - PIXEL_SUCCESS=$(${JQ_EXEC} .success upload_response.json) - if [ "${PIXEL_SUCCESS}" = "false" ]; then - PIXEL_MESSAGE=$(${JQ_EXEC} .message upload_response.json) - exit_script "${PIXEL_MESSAGE}" - else - PIXEL_ID=$(${JQ_EXEC} .id upload_response.json|sed s/\"//g) - PIXEL_LOCATION=https://pixeldrain.com/api/file/${PIXEL_ID} + upload_to_bitbucket "${OUT_FILE}" + upload_to_bitbucket "${OUT_FILE}.sha256" + upload_to_bitbucket "${OUT_FILE}.sig" + BITBUCKET_LOCATION=https://bitbucket.org/blockstorage/${REPOSITORY}/downloads/${OUT_FILE} - upload_to_bitbucket "${OUT_FILE}" - upload_to_bitbucket "${OUT_FILE}.sha256" - upload_to_bitbucket "${OUT_FILE}.sig" - BITBUCKET_LOCATION=https://bitbucket.org/blockstorage/repertory-ui/downloads/${OUT_FILE} - - cp -f ../releases.json ./releases.json - for DISTRONAME in ${DISTRO_LIST}; do - ${JQ_EXEC} ".Versions[\"${DISTRONAME}\"]|=(.+ [\"${APP_VER}\"]|unique)" releases.json > releases_temp.json || exit_script "Update releases.json Versions failed" - ${JQ_EXEC} ".Locations[\"${DISTRONAME}\"].\"${APP_VER}\".sig=\"${APP_SIG}\"" releases_temp.json > releases.json || exit_script "Update releases.json sig failed" - ${JQ_EXEC} ".Locations[\"${DISTRONAME}\"].\"${APP_VER}\".sha256=\"${APP_SHA256}\"" releases.json > releases_temp.json || exit_script "Update releases.json sha256 failed" - ${JQ_EXEC} ".Locations[\"${DISTRONAME}\"].\"${APP_VER}\".urls=[\"${PIXEL_LOCATION}\",\"${BITBUCKET_LOCATION}\"]" releases_temp.json > releases.json || exit_script "Update releases.json URL failed" - done - rm -f releases_temp.json - fi + cp -f ../releases.json ./releases.json + for DISTRONAME in ${DISTRO_LIST}; do + ${JQ_EXEC} ".Versions[\"${DISTRONAME}\"]|=(.+ [\"${APP_VER}\"]|unique)" releases.json > releases_temp.json || exit_script "Update releases.json Versions failed" + ${JQ_EXEC} ".Locations[\"${DISTRONAME}\"].\"${APP_VER}\".sig=\"${APP_SIG}\"" releases_temp.json > releases.json || exit_script "Update releases.json sig failed" + ${JQ_EXEC} ".Locations[\"${DISTRONAME}\"].\"${APP_VER}\".sha256=\"${APP_SHA256}\"" releases.json > releases_temp.json || exit_script "Update releases.json sha256 failed" + ${JQ_EXEC} ".Locations[\"${DISTRONAME}\"].\"${APP_VER}\".urls=[\"${BITBUCKET_LOCATION}\"]" releases_temp.json > releases.json || exit_script "Update releases.json URL failed" + done + rm -f releases_temp.json fi cd - else diff --git a/package.json b/package.json index 482d5bf..e54f18a 100644 --- a/package.json +++ b/package.json @@ -1,43 +1,43 @@ { "name": "repertory-ui", - "version": "1.1.4", + "version": "1.3.2", "private": true, "author": "scott.e.graves@protonmail.com", - "description": "GUI for Repertory - Repertory allows you to mount Sia and/or ScPrime blockchain storage solutions via FUSE on Linux/OS X or via WinFSP on Windows.", + "description": "GUI for Repertory - Repertory allows you to mount Sia, Skynet, and/or ScPrime storage solutions via FUSE on Linux/OS X or via WinFSP on Windows.", "dependencies": { - "@fortawesome/fontawesome-svg-core": "^1.2.27", - "@fortawesome/free-solid-svg-icons": "^5.12.1", - "@fortawesome/react-fontawesome": "^0.1.8", - "@reduxjs/toolkit": "^1.2.4", + "@fortawesome/fontawesome-svg-core": "^1.2.32", + "@fortawesome/free-solid-svg-icons": "^5.15.1", + "@fortawesome/react-fontawesome": "^0.1.13", + "@reduxjs/toolkit": "^1.5.0", "auto-launch": "^5.0.5", - "axios": "^0.19.2", + "axios": "^0.21.0", "devtron": "^1.4.0", - "electron-debug": "^3.0.1", - "electron-log": "^4.0.6", + "electron-debug": "^3.1.0", + "electron-log": "^4.3.0", + "focus-trap-react": "^8.3.2", "font-awesome": "^4.7.0", - "node-schedule": "^1.3.2", + "node-cron": "^1.2.1", "randomstring": "^1.1.5", - "react": "^16.12.0", - "react-dom": "^16.12.0", - "react-loader-spinner": "^3.1.5", - "react-redux": "^7.1.3", - "react-scripts": "3.3.1", - "react-tooltip": "^4.0.3", + "react": "^16.14.0", + "react-checkbox-tree": "^1.6.0", + "react-dom": "^16.14.0", + "react-loader-spinner": "^3.1.14", + "react-redux": "^7.2.2", + "react-scripts": "4.0.3", + "react-tooltip": "^4.2.11", "redux": "^4.0.5", "redux-thunk": "^2.3.0", - "unzipper": "^0.10.8", + "unzipper": "^0.10.11", "winreg": "^1.2.4" }, "devDependencies": { - "cross-env": "^7.0.0", - "electron": "^5.0.13", - "electron-builder": "^20.44.4", - "extract-text-webpack-plugin": "^3.0.2", - "fibers": "^4.0.2", - "node-sass": "^4.13.1", - "sass": "^1.25.0", - "typescript": "^3.7.5", - "webpack-browser-plugin": "^1.0.20" + "babel-loader": "8.1.0", + "cross-env": "^7.0.3", + "electron": "5.0.13", + "electron-builder": "22.9.1", + "electron-webpack": "^2.8.2", + "webpack": "4.44.2", + "webpack-dev-server": "3.11.1" }, "scripts": { "start": "react-scripts start", diff --git a/public/detect_linux.sh b/public/detect_linux.sh old mode 100644 new mode 100755 index 095e9ea..3ff1631 --- a/public/detect_linux.sh +++ b/public/detect_linux.sh @@ -8,89 +8,23 @@ resetDistVer() { DISTVER= } -if [ -f /etc/centos-release ]; then - . /etc/os-release - if [ "$VERSION_ID" = "7" ]; then - DISTNAME=centos - DISTVER=7 - elif [ "$VERSION_ID" = "8" ]; then - DISTNAME=centos - DISTVER=8 - else - resetDistVer - fi -elif [ -f /etc/fedora-release ]; then - . /etc/os-release - if [ "$VERSION_ID" != "31" ] && [ "$VERSION_ID" != "30" ] && [ "$VERSION_ID" != "29" ] && [ "$VERSION_ID" != "28" ]; then - resetDistVer - else - DISTNAME=fedora - DISTVER=$VERSION_ID - fi -elif [ -f /etc/solus-release ]; then - DISTNAME=solus -elif [ -f /etc/lsb-release ]; then - . /etc/lsb-release - DISTNAME=$(echo ${DISTRIB_ID} | awk '{print tolower($0)}') - DISTVER=${DISTRIB_RELEASE} - if [ "$DISTNAME" != "ubuntu" ]; then - if [ "$DISTNAME" = "linuxmint" ]; then - if [ "$DISTVER" = "19" ] || [ "$DISTVER" = "19.1" ] || [ "$DISTVER" = "19.2" ]; then - DISTNAME=ubuntu - DISTVER=18.04 - else - resetDistVer - fi - elif [ "$DISTNAME" = "elementary" ]; then - if [ "$DISTVER" = "5.0" ]; then - DISTNAME=ubuntu - DISTVER=18.04 - else - resetDistVer - fi - else - resetDistVer - fi - elif [ "$DISTVER" != "18.04" ] && [ "$DISTVER" != "18.10" ] && [ "$DISTVER" != "19.04" ] && [ "$DISTVER" != "19.10" ]; then - resetDistVer - fi -fi +IS_ARM=`(uname -a | grep aarch64) 1>/dev/null 2>&1 && echo 1` -if [ "$DISTNAME" = "unknown" ] && [ -f /etc/debian_version ]; then +if [ -f /etc/solus-release ]; then + DISTNAME=solus +elif [ "$IS_ARM" = "1" ] && [ -f /etc/debian_version ]; then DISTNAME=debian DISTVER=$(head -1 /etc/debian_version|awk -F. '{print $1}') if [ "$DISTVER" != "9" ] && [ "$DISTVER" != "10" ]; then - resetDistVer - fi -fi - -if [ "$DISTNAME" = "unknown" ]; then - if [ -f /etc/os-release ]; then - . /etc/os-release - if [ "$ID" = "arch" ]; then - DISTNAME=arch - elif [ "$ID" = "antergos" ] || [ "$ID" = "manjaro" ]; then - DISTNAME=ubuntu - DISTVER=18.10 - elif [ "$ID" = "opensuse-leap" ]; then - if [ "$VERSION_ID" = "15.0" ]; then - DISTNAME=opensuse - DISTVER=15 - elif [ "$VERSION_ID" = "15.1" ]; then - DISTNAME=opensuse - DISTVER=15.1 - else - resetDistVer - fi - elif [ "$ID" = "opensuse-tumbleweed" ]; then - DISTNAME=tumbleweed - DISTVER= + if [ $(grep sid /etc/debian_version) ]; then + DISTVER=10 else resetDistVer fi - else - resetDistVer fi +else + DISTNAME=centos7 + DISTVER= fi echo ${DISTNAME}${DISTVER} diff --git a/public/electron.js b/public/electron.js index c65de22..9e2b41e 100644 --- a/public/electron.js +++ b/public/electron.js @@ -33,8 +33,10 @@ const DependencyIPC = require('../src/renderer/ipc/DependencyIPC'); const DownloadIPC = require('../src/renderer/ipc/DownloadIPC'); const FilesystemIPC = require('../src/renderer/ipc/FilesystemIPC'); const MountsIPC = require('../src/renderer/ipc/MountsIPC'); +const PinnedIPC = require('../src/renderer/ipc/PinnedIPC'); const PlatformIPC = require('../src/renderer/ipc/PlatformIPC'); const ReleaseIPC = require('../src/renderer/ipc/ReleaseIPC'); +const SkynetIPC = require('../src/renderer/ipc/SkynetIPC'); const StateIPC = require('../src/renderer/ipc/StateIPC'); const SystemIPC = require('../src/renderer/ipc/SystemIPC'); const UpgradeIPC = require('../src/renderer/ipc/UpgradeIPC'); @@ -199,7 +201,7 @@ const createWindow = () => { autoLauncher .isEnabled() .then((enabled) => { - trayContextMenu.items[1].checked = enabled; + trayContextMenu.items[2].checked = enabled; mainWindowTray.setToolTip('Repertory UI'); mainWindowTray.setContextMenu(trayContextMenu) }) @@ -308,16 +310,31 @@ if (!instanceLock) { configurePrimaryApp(); } +const AppFunctions = { + closeApplication, + detectScript, + dialog, + getCleanupReleases: () => cleanupReleases, + getMainWindow, + saveUiSettings, + setIsInstalling, + setTrayImage, + setWindowVisibility, + standardIPCReply, + unmountAllDrives: MountsIPC.unmountAllDrives, +}; -AppIPC.addListeners(ipcMain, closeApplication, setWindowVisibility); -ConfigIPC.addListeners(ipcMain, standardIPCReply); -DaemonIPC.addListeners(ipcMain, standardIPCReply); -DependencyIPC.addListeners(ipcMain, standardIPCReply); -DownloadIPC.addListeners(ipcMain, standardIPCReply); -FilesystemIPC.addListeners(ipcMain, getMainWindow, dialog); -MountsIPC.addListeners(ipcMain, setTrayImage, standardIPCReply); -PlatformIPC.addListeners(ipcMain, detectScript, saveUiSettings); -ReleaseIPC.addListeners(ipcMain, () => cleanupReleases, standardIPCReply); -StateIPC.addListeners(ipcMain); -SystemIPC.addListeners(ipcMain, closeApplication); -UpgradeIPC.addListeners(ipcMain, setIsInstalling, MountsIPC.unmountAllDrives, standardIPCReply); +AppIPC.addListeners(ipcMain, AppFunctions); +ConfigIPC.addListeners(ipcMain, AppFunctions); +DaemonIPC.addListeners(ipcMain, AppFunctions); +DependencyIPC.addListeners(ipcMain, AppFunctions); +DownloadIPC.addListeners(ipcMain, AppFunctions); +FilesystemIPC.addListeners(ipcMain, AppFunctions); +MountsIPC.addListeners(ipcMain, AppFunctions); +PinnedIPC.addListeners(ipcMain, AppFunctions); +PlatformIPC.addListeners(ipcMain, AppFunctions); +ReleaseIPC.addListeners(ipcMain, AppFunctions); +SkynetIPC.addListeners(ipcMain, AppFunctions); +StateIPC.addListeners(ipcMain, AppFunctions); +SystemIPC.addListeners(ipcMain, AppFunctions); +UpgradeIPC.addListeners(ipcMain, AppFunctions); diff --git a/releases.json b/releases.json index 4979f57..b7c251d 100644 --- a/releases.json +++ b/releases.json @@ -1,259 +1,84 @@ { "Locations": { - "arch": { - "1.1.4": { - "sha256": "85347471f33dd41a35eb296cda03590d451322cd54a077cef470ccbfe52a141b", - "sig": "CGialiJMT6nETdGgP3vQvsXSWQYUEX7j7Cck0NSiW0cE4A1kW3mabM2I/5Yt4NwkDqBIAXofPyUd1JQ4UrF8cijfLNv3ECSaDJs7bWrISDr3Z8ti0uZnN3RUdJDCYDvAWBVqGC82Q1fmLkYJhd33o2B9DzjmvO+i7+buNyDB3dBIY5Fa3rnLKsIY7WB5EASBG3TzDlsZOtLvNgKo/3fLJP2RFyczSVCFZeHlppJbyXCakj50eCNbxjP6SLaD3oE+M0xGvyPyKTk0OGoJTGKM13q30WKbM6cMfL87BbUueGkBFDZeNMWU8Mz/fdGG21WqNN1p7k3CilJJQz7ZEE9bBhlsIX5j5rvL2qNYJoQbJQbxVjyoWHOOlqA62WUTOZhyiHD3OWQ58Fd9JqGDiIhg+ChIBWzyEXNdE6GQr7/qEiAQDbEsU06WOzfj3uxAV//iy/noalpyhlnr0TUu5xKSnoR7jQhCtvOdlrmgs8y+mTEpwDjXCR0S7jDxp+cEbVHb57Rl8N5thVrOs5RQfshhcqwBR/scCM9iCr0v3D7uyGMinTBT3A8lwerN8iO17FhtEerovn4Zhg2p7quZRiUcYLdx4EOlIMWuORyDk3s0S4VZ27t92NYwMlwMA1TbUQ/XuN1oZaQQ9ipSDjNDDVZto3Q4vwlqL3g1TIs1JyxfHkwUTpuFjg3ZqY+uRNxeJTDlj9JHXiAIZ+VeBggB7EixKE+wMi1A6a+Si/ZpBbroK5gP1gODShXYUN4eGmodxqF2/gVrJcimEeHkyBZ74dZIa9gTSIOxeo1OS70fFU+hQy9/V0/q4PElPZn+EzLTGknWh1EDmqReZ1svv0tYf0Ve/l5szhdNGsb2LUEZ7G/r0Bs7fyQjA5YZI+byOPTSA1Q9vlT63sodpBRDURWkqTRFRPWlaEY2kMZu/vJ422PSjK51X4EPHWmpOkDkxFzx2WAs2rKZ9QXCkU0RGu0Ctial/zNVhm20eVklcuIirEnmUK9Kod0KBmjl+U6U6jHvlhOEC4zp2QcDsrLSQu7gDHvJWbYmaKBTiXrEvk52G/EN9aD86Am5k0bwPU5ktj8z38+5sxVns1R4e9J1WaZgD2dtFvpSxJbjVf09AZHIeyNw/BRu3GfJU6dX6KJVMCMtN+R5xv/ZckylI355R4nrf+7PLNsGg2tqlemvHiwdQkOb3/TOLrJpO94JRjm9k16huysztkpgJIGyKvHXT6z1A3cwCoJzrK7sQ1awedPvO+N8UGJ7kXHRgLLhQ2yWfZfIsD/s0Ji5GFrItm1nlqHAd/ZFh82jNKmvh6+n42l5TimH9Q0Cf+7bK5Y7SVYzhSAW2B8ivHsPMpAkLJ6d17ZMxtrr4/Q=", - "urls": [ - "https://pixeldrain.com/api/file/KfWzWfxp", - "https://bitbucket.org/blockstorage/repertory-ui/downloads/repertory-ui_1.1.4_linux_x86_64.AppImage" - ] - } - }, "centos7": { - "1.1.4": { - "sha256": "85347471f33dd41a35eb296cda03590d451322cd54a077cef470ccbfe52a141b", - "sig": "CGialiJMT6nETdGgP3vQvsXSWQYUEX7j7Cck0NSiW0cE4A1kW3mabM2I/5Yt4NwkDqBIAXofPyUd1JQ4UrF8cijfLNv3ECSaDJs7bWrISDr3Z8ti0uZnN3RUdJDCYDvAWBVqGC82Q1fmLkYJhd33o2B9DzjmvO+i7+buNyDB3dBIY5Fa3rnLKsIY7WB5EASBG3TzDlsZOtLvNgKo/3fLJP2RFyczSVCFZeHlppJbyXCakj50eCNbxjP6SLaD3oE+M0xGvyPyKTk0OGoJTGKM13q30WKbM6cMfL87BbUueGkBFDZeNMWU8Mz/fdGG21WqNN1p7k3CilJJQz7ZEE9bBhlsIX5j5rvL2qNYJoQbJQbxVjyoWHOOlqA62WUTOZhyiHD3OWQ58Fd9JqGDiIhg+ChIBWzyEXNdE6GQr7/qEiAQDbEsU06WOzfj3uxAV//iy/noalpyhlnr0TUu5xKSnoR7jQhCtvOdlrmgs8y+mTEpwDjXCR0S7jDxp+cEbVHb57Rl8N5thVrOs5RQfshhcqwBR/scCM9iCr0v3D7uyGMinTBT3A8lwerN8iO17FhtEerovn4Zhg2p7quZRiUcYLdx4EOlIMWuORyDk3s0S4VZ27t92NYwMlwMA1TbUQ/XuN1oZaQQ9ipSDjNDDVZto3Q4vwlqL3g1TIs1JyxfHkwUTpuFjg3ZqY+uRNxeJTDlj9JHXiAIZ+VeBggB7EixKE+wMi1A6a+Si/ZpBbroK5gP1gODShXYUN4eGmodxqF2/gVrJcimEeHkyBZ74dZIa9gTSIOxeo1OS70fFU+hQy9/V0/q4PElPZn+EzLTGknWh1EDmqReZ1svv0tYf0Ve/l5szhdNGsb2LUEZ7G/r0Bs7fyQjA5YZI+byOPTSA1Q9vlT63sodpBRDURWkqTRFRPWlaEY2kMZu/vJ422PSjK51X4EPHWmpOkDkxFzx2WAs2rKZ9QXCkU0RGu0Ctial/zNVhm20eVklcuIirEnmUK9Kod0KBmjl+U6U6jHvlhOEC4zp2QcDsrLSQu7gDHvJWbYmaKBTiXrEvk52G/EN9aD86Am5k0bwPU5ktj8z38+5sxVns1R4e9J1WaZgD2dtFvpSxJbjVf09AZHIeyNw/BRu3GfJU6dX6KJVMCMtN+R5xv/ZckylI355R4nrf+7PLNsGg2tqlemvHiwdQkOb3/TOLrJpO94JRjm9k16huysztkpgJIGyKvHXT6z1A3cwCoJzrK7sQ1awedPvO+N8UGJ7kXHRgLLhQ2yWfZfIsD/s0Ji5GFrItm1nlqHAd/ZFh82jNKmvh6+n42l5TimH9Q0Cf+7bK5Y7SVYzhSAW2B8ivHsPMpAkLJ6d17ZMxtrr4/Q=", + "1.3.2": { + "sha256": "a8b9bff91d0f0685041737cfa40b4bc8ef765d24419104f3dd90f977023e7858", + "sig": "CBEtKUDJwjPrchhNXvzulpfaBWFElDD+Kn9b14oF426IuKncsmqTWUesG3cT/beDk1onaDOhDIchyan6iW/BCdB+sVAuGAoRpm2lJ4lWba7ZPnXP7H10uIjVf1xASwIciP4jpAUPo0bO8hi9kqu1zkF9GeVHHb+SXlLhDP31wN7kHwgb/MeZ95/NqfucumYcwfFOZOnofSKaGQwHpbypy57YzyVCf/NzQDnYC46lcH9xVMmbgodT+y5MIIF0kkSJn0DbSfxLVMWTx1pnZUzJ7J827EKUgAS4d4uLI7ShskS+d84i8rNV9gXgqwYkqDvYbdFi7ArJZB7GJtyZ4VPTqRqGfxwF8rL3K0ml+635DfEXiHN8MbTuqwLHD2giChOfsdAAV4ngJ8xg7+Th8dqpgC92GXoOjNK7GSAyrOFsQ7xeqdVOBZMNk/dHVAb9eCTbPIsOjGFTAzOk8n3roM8naDUOq7PefUj1Jb2EGVhWnwS2ngvhNfRggZmmr3l9IElddaHro0JpnubsFmiAa+akV0P8VLb1jjpIJRfr2CIEnPTQbT4UQ1DdBitgkWiPbagTp8BQF1YGcVZ8jc9mbOxmF46z0MyuMQZjDHw2Vai0uPsoLIJHhy3I7nJqsnEw6gQX/l1VGj9wPHeaqMgGYGFykFfvVssh0CH45tUCdWL6Q9Hgx8+yLw0Lky/HIGMQc0qZUM9ute/9Buifd9cOK8+S5PaA0Zg0G/pIY6fThtO86wKJQnoPeiuBkJ9yXc20ZGrfb39Qnf2nZxrPyVl2iQJlven6CDBxc88henxzvxK61bXUynK8zHVuoIAC7ejWZEbPOqDV3DOOSVDz1+eq1MU2KZ4JmaLipzbdy/y+ph1TnCGwdL9R3s+xLYSaxA+ybhQVNXHhQ7+eZD6CWXytaIVYe8giL1ki8oN/18Bm1B2dVxCZ4KKbAToFpBOGvW+w8JFAC5nBK5aj2BGWEocyWQ1XIJmqVBd8RSOMYVYjQOhVnIvyJxOqvnrLUoRzJruj8R/riuCSMnfq17ykpjCzoNzIjvimCPyAib9kdWx7M8dyOS9Sls2sMLwJvDcsGi/FfuGqBmV2v28XagRZz70iypqNaIUrj4CShfz8e110su3BtLQHr1O6yffxy+whbB7w+ogZ6gz86AZ/63Zz6xbLIk4wuNx1UL/ZuRMGq4xOW/7zRpOYYSe/h98YFd9/UTcoi8Osjl+o1eVup6YWVeDvOG69uqwfID8XHivJnEV2NVFx8fbb6fHSrMg/QbjSngdyQ3b+5rWiZG01DGCDB5RFOvEKY24qrXXWQGAx+JXbj+/7xYWts+/Fv7hSqvpvf7H8aVCoOKXGtjJiy+K/9tAJJLQDAzo=", "urls": [ - "https://pixeldrain.com/api/file/KfWzWfxp", - "https://bitbucket.org/blockstorage/repertory-ui/downloads/repertory-ui_1.1.4_linux_x86_64.AppImage" - ] - } - }, - "centos8": { - "1.1.4": { - "sha256": "85347471f33dd41a35eb296cda03590d451322cd54a077cef470ccbfe52a141b", - "sig": "CGialiJMT6nETdGgP3vQvsXSWQYUEX7j7Cck0NSiW0cE4A1kW3mabM2I/5Yt4NwkDqBIAXofPyUd1JQ4UrF8cijfLNv3ECSaDJs7bWrISDr3Z8ti0uZnN3RUdJDCYDvAWBVqGC82Q1fmLkYJhd33o2B9DzjmvO+i7+buNyDB3dBIY5Fa3rnLKsIY7WB5EASBG3TzDlsZOtLvNgKo/3fLJP2RFyczSVCFZeHlppJbyXCakj50eCNbxjP6SLaD3oE+M0xGvyPyKTk0OGoJTGKM13q30WKbM6cMfL87BbUueGkBFDZeNMWU8Mz/fdGG21WqNN1p7k3CilJJQz7ZEE9bBhlsIX5j5rvL2qNYJoQbJQbxVjyoWHOOlqA62WUTOZhyiHD3OWQ58Fd9JqGDiIhg+ChIBWzyEXNdE6GQr7/qEiAQDbEsU06WOzfj3uxAV//iy/noalpyhlnr0TUu5xKSnoR7jQhCtvOdlrmgs8y+mTEpwDjXCR0S7jDxp+cEbVHb57Rl8N5thVrOs5RQfshhcqwBR/scCM9iCr0v3D7uyGMinTBT3A8lwerN8iO17FhtEerovn4Zhg2p7quZRiUcYLdx4EOlIMWuORyDk3s0S4VZ27t92NYwMlwMA1TbUQ/XuN1oZaQQ9ipSDjNDDVZto3Q4vwlqL3g1TIs1JyxfHkwUTpuFjg3ZqY+uRNxeJTDlj9JHXiAIZ+VeBggB7EixKE+wMi1A6a+Si/ZpBbroK5gP1gODShXYUN4eGmodxqF2/gVrJcimEeHkyBZ74dZIa9gTSIOxeo1OS70fFU+hQy9/V0/q4PElPZn+EzLTGknWh1EDmqReZ1svv0tYf0Ve/l5szhdNGsb2LUEZ7G/r0Bs7fyQjA5YZI+byOPTSA1Q9vlT63sodpBRDURWkqTRFRPWlaEY2kMZu/vJ422PSjK51X4EPHWmpOkDkxFzx2WAs2rKZ9QXCkU0RGu0Ctial/zNVhm20eVklcuIirEnmUK9Kod0KBmjl+U6U6jHvlhOEC4zp2QcDsrLSQu7gDHvJWbYmaKBTiXrEvk52G/EN9aD86Am5k0bwPU5ktj8z38+5sxVns1R4e9J1WaZgD2dtFvpSxJbjVf09AZHIeyNw/BRu3GfJU6dX6KJVMCMtN+R5xv/ZckylI355R4nrf+7PLNsGg2tqlemvHiwdQkOb3/TOLrJpO94JRjm9k16huysztkpgJIGyKvHXT6z1A3cwCoJzrK7sQ1awedPvO+N8UGJ7kXHRgLLhQ2yWfZfIsD/s0Ji5GFrItm1nlqHAd/ZFh82jNKmvh6+n42l5TimH9Q0Cf+7bK5Y7SVYzhSAW2B8ivHsPMpAkLJ6d17ZMxtrr4/Q=", - "urls": [ - "https://pixeldrain.com/api/file/KfWzWfxp", - "https://bitbucket.org/blockstorage/repertory-ui/downloads/repertory-ui_1.1.4_linux_x86_64.AppImage" + "https://bitbucket.org/blockstorage/repertory-ui/downloads/repertory-ui_1.3.2_linux_x86_64.AppImage" ] } }, "darwin": { - "1.1.4": { - "sha256": "8c91046a83b689564355be3e0a3e194ab986c4633f112696e33e4bb7ebd7e46e", - "sig": "BBds0xSaIqr2rns+cSr90bmxtfy2aIGNVcKgRfMYYqDntV5SkWxD8ivqPglFiLQA/jfgd5A8DjMJs4FA6FDvF1ZFcfgZLFw94OT1M3jPJ7cf5Izv1EQb+5AV7SK8H7DACDixcgKDDXO0WARmeqNXJZzyxkny8XKIiGDwLbmrXfFVuKPSLucbf6eaTem+xJHjQPzP9FH4Lwf9kbQxis2/PIT63yflQdM9CAAvfZUB4YUCOF5T8I43uNV2YDR0Z+k5FLTBexJDORDRixbrldWqNo7NQlNMR+26LY2IBppQqOMtDw9cpcfPj8bNgkWsZkFk/eOcrcpc8ENQodGxb01JahKJ20g9soJEAOhiFW3TOxzOLNq8cQFdKYgJv2K68lav/QzVPD6n14Bsr3+5mkX4fE1GmmN1HLgFO+JbD25qDrS4ExKR5TJ2Zdu136n/Mxbj2apYDhWtU8X6OD86F29m348XDonC9Fn+vzoE2M4xNKptMhukem7NFG7Z03v6+J73PaVM1NldARMGgVUYFA6QTn6Ns55YEXnsHoSoreHmgl5y3s8eRo0/oehv0cpPG6shCz71+YlVG/IgbKWIgYZ0jj03Cdsgv/XyadiwfCI9Q7uvl368Vlbuad4mqttMTZwHeZlKikTYb74QDyXqVoz0Q2ij7WET7MkXpA3++hDrPIN5Cb8qi/YuMp63w6TLfz4c/ZCQeje+0d7x6p63Z7TObEXDyBgdUAphX3T/u4pkEjXQKsfNRh8jaFOXU3z+hG8+IXjrZtLcDEzqICZ8JJCrkklgliTM1ECiekvJ9jwXTN2ClrzLQ3qhX8N+8jkvQ+yZxGxH+3rOX55RyW4OcMYUYvDpTtNHncVvABBlRvPGEGxtA7RMDTzOGe0lk70y07al6iFKDktaoYSFlcH+pUw7ifDZamefxlKDmtrMOMNmnrm+v8WH0g0MG8qy/nGPxv5dFIl9gAC/rvRElxX8FpA7y18i7fQ0IfhpaC58gZZADkF0nFOW15N7zwjS3qnhAGCBCBEDwlFG9brD71qjShtodgnz+GvrDvtqGTwNRllnZXSHPCWe33BOHy2c30LwE8vJq+ChVaJobCA9P8ipgZv/gAuZz7LNFc/Uong5TyKZk2uXun3XF1Qkw+ogBpl9aqMWIySZhkDnBcZjjE9pL/FQAkO1H90+zNnSdSAKZQaPckxLSyqHXxb4P7Da4nj3tad609NcxEzsz3dpEJTuYlqLqmO5kJmy29jNUHhQQdPCuKJtdm/coz3kWtC+uR6/SMnhviGnc7tQUqyb6HfGywKbmoAM93NHSGxNGyNMU+VJ20/YK1lmVFo3Pg/wq+aX35utcjQafpATqHeOeDw26fnZxBs=", + "1.3.2": { + "sha256": "d8e5749a43541edaeaa91cbc81c42fb21c8e4c8446c9c1dff0a8e3a0efc23270", + "sig": "AKXLbLDnkBlB2b8dKLPZ5Vr9bcbv1dCvYGJTCltxYRJkOBzmQMTJ+ADKAtQQCfZKtNji+Dez28A401BMUY7xBd3Sh4FDnmNv64Q2zfqxQpOkhdrK8KcwK2aFCFbWn3vTnU3GBk2IXqGY8qIeR4d/v2UaBnnpK0EulztxPXojLz0pA6DVndJOodItoE6OUNohPd5MTWh5ewpjXJN+VKeao3ABkXgCzYLH/SSYCyi8ZFH8Ija20HJk8ST2QIokmRQGk5MDcyxylyWkusGOf7yn9M6vdtHNfrHfWXGxnMTuaw9+YNTuxZNDgIFpmoVx4t7HSoNti+ZZwyo+1jtDeh0xPmdEGpnZOY7zp94zlh4zP9Cx5cYg6W5/NQKQzDtlUZlELqR8Kwoa/bDCwWeSkifGqEJT2Yezs9r5llSoIh8PrxLkmdaX2vkOvaRYYE0kvdO2MllT8SSyYkum/9eD8uA52IYbUliJqfAf43gOj9n0ooRcCo45lBY5PIUB44XBLEGK15OuarybSyaBDMFbc3HWh1A9jB9kSPctnMMJMNMsocTI5AEN8eRbLyF7z01WE+nB7JDS8NW3+QRFyQInxdXpcGeKO6riuSO7aXHLWAZvUVSxThSuV7JtsugtUnIsP9ah7njtcVHOSEcUG3U2WxZRbe6PG5pdjS4Px+E9Yx35zLSwo39TcwLb2fM7mQKREsH0fUrRd4WN1T0pWOuzDlWSq4pfDXWdO8y828l8XVJzw5LUH9U0F7qAiuzEVQIYJ+xjjAp4JVJXBof4iWeW4N+7PYgntEgr94Ti6rjb6BrKWdl4B+9j79EkC2yLWafcGnryUaSfOFDFiB8Upf6NQ+a1TxY5ufFe1JfuI58rchUZi4SjNdyFMat4GSdTI6I513ZVcohBb1KVIxEM0u38hJqKIFx3stWMZrLvyFH9ceqzXzVQCIDE31usUKFsXallWMQyB2kIy7qoif7zmDhdJQZboD7ZHsTrcSK1u9D+h3oG1poN+AULmhgYZNT11ktRiVUbmzDS0qA7lnF8dcsuthj0vHP0/BFN6a7ljQuwDVY1xoeCf+RobfNWucK2MLxmqV1z9nO4jpdy/GfC/5ln4Tev+5luo5ux0BXXXAWuzGyQ0QK+13k3lIUwxsDNou0dMDHJPaMavBjmlm0Uf5esZdSIU9U2sdfuO+j/6enwGvESlrKmBCsdPatHREP931dGPZCsF1m30OylV+m7WhBh9w6AbklmjHNCZu3C2Ln23gOKGX8HpQ9nnaPCicmlfSyBjPoKVtDCACVbjwRfTJ+UXCocrCVSbAhskOSvlq050QFQcZO5DzFWdeTfG6x6MrqdSelYThjy5xn8AXuqsFSLIdYpCAQ=", "urls": [ - "https://pixeldrain.com/api/file/68WJfKsz", - "https://bitbucket.org/blockstorage/repertory-ui/downloads/repertory-ui_1.1.4_mac.dmg" - ] - } - }, - "debian9": { - "1.1.4": { - "sha256": "85347471f33dd41a35eb296cda03590d451322cd54a077cef470ccbfe52a141b", - "sig": "CGialiJMT6nETdGgP3vQvsXSWQYUEX7j7Cck0NSiW0cE4A1kW3mabM2I/5Yt4NwkDqBIAXofPyUd1JQ4UrF8cijfLNv3ECSaDJs7bWrISDr3Z8ti0uZnN3RUdJDCYDvAWBVqGC82Q1fmLkYJhd33o2B9DzjmvO+i7+buNyDB3dBIY5Fa3rnLKsIY7WB5EASBG3TzDlsZOtLvNgKo/3fLJP2RFyczSVCFZeHlppJbyXCakj50eCNbxjP6SLaD3oE+M0xGvyPyKTk0OGoJTGKM13q30WKbM6cMfL87BbUueGkBFDZeNMWU8Mz/fdGG21WqNN1p7k3CilJJQz7ZEE9bBhlsIX5j5rvL2qNYJoQbJQbxVjyoWHOOlqA62WUTOZhyiHD3OWQ58Fd9JqGDiIhg+ChIBWzyEXNdE6GQr7/qEiAQDbEsU06WOzfj3uxAV//iy/noalpyhlnr0TUu5xKSnoR7jQhCtvOdlrmgs8y+mTEpwDjXCR0S7jDxp+cEbVHb57Rl8N5thVrOs5RQfshhcqwBR/scCM9iCr0v3D7uyGMinTBT3A8lwerN8iO17FhtEerovn4Zhg2p7quZRiUcYLdx4EOlIMWuORyDk3s0S4VZ27t92NYwMlwMA1TbUQ/XuN1oZaQQ9ipSDjNDDVZto3Q4vwlqL3g1TIs1JyxfHkwUTpuFjg3ZqY+uRNxeJTDlj9JHXiAIZ+VeBggB7EixKE+wMi1A6a+Si/ZpBbroK5gP1gODShXYUN4eGmodxqF2/gVrJcimEeHkyBZ74dZIa9gTSIOxeo1OS70fFU+hQy9/V0/q4PElPZn+EzLTGknWh1EDmqReZ1svv0tYf0Ve/l5szhdNGsb2LUEZ7G/r0Bs7fyQjA5YZI+byOPTSA1Q9vlT63sodpBRDURWkqTRFRPWlaEY2kMZu/vJ422PSjK51X4EPHWmpOkDkxFzx2WAs2rKZ9QXCkU0RGu0Ctial/zNVhm20eVklcuIirEnmUK9Kod0KBmjl+U6U6jHvlhOEC4zp2QcDsrLSQu7gDHvJWbYmaKBTiXrEvk52G/EN9aD86Am5k0bwPU5ktj8z38+5sxVns1R4e9J1WaZgD2dtFvpSxJbjVf09AZHIeyNw/BRu3GfJU6dX6KJVMCMtN+R5xv/ZckylI355R4nrf+7PLNsGg2tqlemvHiwdQkOb3/TOLrJpO94JRjm9k16huysztkpgJIGyKvHXT6z1A3cwCoJzrK7sQ1awedPvO+N8UGJ7kXHRgLLhQ2yWfZfIsD/s0Ji5GFrItm1nlqHAd/ZFh82jNKmvh6+n42l5TimH9Q0Cf+7bK5Y7SVYzhSAW2B8ivHsPMpAkLJ6d17ZMxtrr4/Q=", - "urls": [ - "https://pixeldrain.com/api/file/KfWzWfxp", - "https://bitbucket.org/blockstorage/repertory-ui/downloads/repertory-ui_1.1.4_linux_x86_64.AppImage" - ] - } - }, - "debian10": { - "1.1.4": { - "sha256": "85347471f33dd41a35eb296cda03590d451322cd54a077cef470ccbfe52a141b", - "sig": "CGialiJMT6nETdGgP3vQvsXSWQYUEX7j7Cck0NSiW0cE4A1kW3mabM2I/5Yt4NwkDqBIAXofPyUd1JQ4UrF8cijfLNv3ECSaDJs7bWrISDr3Z8ti0uZnN3RUdJDCYDvAWBVqGC82Q1fmLkYJhd33o2B9DzjmvO+i7+buNyDB3dBIY5Fa3rnLKsIY7WB5EASBG3TzDlsZOtLvNgKo/3fLJP2RFyczSVCFZeHlppJbyXCakj50eCNbxjP6SLaD3oE+M0xGvyPyKTk0OGoJTGKM13q30WKbM6cMfL87BbUueGkBFDZeNMWU8Mz/fdGG21WqNN1p7k3CilJJQz7ZEE9bBhlsIX5j5rvL2qNYJoQbJQbxVjyoWHOOlqA62WUTOZhyiHD3OWQ58Fd9JqGDiIhg+ChIBWzyEXNdE6GQr7/qEiAQDbEsU06WOzfj3uxAV//iy/noalpyhlnr0TUu5xKSnoR7jQhCtvOdlrmgs8y+mTEpwDjXCR0S7jDxp+cEbVHb57Rl8N5thVrOs5RQfshhcqwBR/scCM9iCr0v3D7uyGMinTBT3A8lwerN8iO17FhtEerovn4Zhg2p7quZRiUcYLdx4EOlIMWuORyDk3s0S4VZ27t92NYwMlwMA1TbUQ/XuN1oZaQQ9ipSDjNDDVZto3Q4vwlqL3g1TIs1JyxfHkwUTpuFjg3ZqY+uRNxeJTDlj9JHXiAIZ+VeBggB7EixKE+wMi1A6a+Si/ZpBbroK5gP1gODShXYUN4eGmodxqF2/gVrJcimEeHkyBZ74dZIa9gTSIOxeo1OS70fFU+hQy9/V0/q4PElPZn+EzLTGknWh1EDmqReZ1svv0tYf0Ve/l5szhdNGsb2LUEZ7G/r0Bs7fyQjA5YZI+byOPTSA1Q9vlT63sodpBRDURWkqTRFRPWlaEY2kMZu/vJ422PSjK51X4EPHWmpOkDkxFzx2WAs2rKZ9QXCkU0RGu0Ctial/zNVhm20eVklcuIirEnmUK9Kod0KBmjl+U6U6jHvlhOEC4zp2QcDsrLSQu7gDHvJWbYmaKBTiXrEvk52G/EN9aD86Am5k0bwPU5ktj8z38+5sxVns1R4e9J1WaZgD2dtFvpSxJbjVf09AZHIeyNw/BRu3GfJU6dX6KJVMCMtN+R5xv/ZckylI355R4nrf+7PLNsGg2tqlemvHiwdQkOb3/TOLrJpO94JRjm9k16huysztkpgJIGyKvHXT6z1A3cwCoJzrK7sQ1awedPvO+N8UGJ7kXHRgLLhQ2yWfZfIsD/s0Ji5GFrItm1nlqHAd/ZFh82jNKmvh6+n42l5TimH9Q0Cf+7bK5Y7SVYzhSAW2B8ivHsPMpAkLJ6d17ZMxtrr4/Q=", - "urls": [ - "https://pixeldrain.com/api/file/KfWzWfxp", - "https://bitbucket.org/blockstorage/repertory-ui/downloads/repertory-ui_1.1.4_linux_x86_64.AppImage" - ] - } - }, - "fedora28": { - "1.1.4": { - "sha256": "85347471f33dd41a35eb296cda03590d451322cd54a077cef470ccbfe52a141b", - "sig": "CGialiJMT6nETdGgP3vQvsXSWQYUEX7j7Cck0NSiW0cE4A1kW3mabM2I/5Yt4NwkDqBIAXofPyUd1JQ4UrF8cijfLNv3ECSaDJs7bWrISDr3Z8ti0uZnN3RUdJDCYDvAWBVqGC82Q1fmLkYJhd33o2B9DzjmvO+i7+buNyDB3dBIY5Fa3rnLKsIY7WB5EASBG3TzDlsZOtLvNgKo/3fLJP2RFyczSVCFZeHlppJbyXCakj50eCNbxjP6SLaD3oE+M0xGvyPyKTk0OGoJTGKM13q30WKbM6cMfL87BbUueGkBFDZeNMWU8Mz/fdGG21WqNN1p7k3CilJJQz7ZEE9bBhlsIX5j5rvL2qNYJoQbJQbxVjyoWHOOlqA62WUTOZhyiHD3OWQ58Fd9JqGDiIhg+ChIBWzyEXNdE6GQr7/qEiAQDbEsU06WOzfj3uxAV//iy/noalpyhlnr0TUu5xKSnoR7jQhCtvOdlrmgs8y+mTEpwDjXCR0S7jDxp+cEbVHb57Rl8N5thVrOs5RQfshhcqwBR/scCM9iCr0v3D7uyGMinTBT3A8lwerN8iO17FhtEerovn4Zhg2p7quZRiUcYLdx4EOlIMWuORyDk3s0S4VZ27t92NYwMlwMA1TbUQ/XuN1oZaQQ9ipSDjNDDVZto3Q4vwlqL3g1TIs1JyxfHkwUTpuFjg3ZqY+uRNxeJTDlj9JHXiAIZ+VeBggB7EixKE+wMi1A6a+Si/ZpBbroK5gP1gODShXYUN4eGmodxqF2/gVrJcimEeHkyBZ74dZIa9gTSIOxeo1OS70fFU+hQy9/V0/q4PElPZn+EzLTGknWh1EDmqReZ1svv0tYf0Ve/l5szhdNGsb2LUEZ7G/r0Bs7fyQjA5YZI+byOPTSA1Q9vlT63sodpBRDURWkqTRFRPWlaEY2kMZu/vJ422PSjK51X4EPHWmpOkDkxFzx2WAs2rKZ9QXCkU0RGu0Ctial/zNVhm20eVklcuIirEnmUK9Kod0KBmjl+U6U6jHvlhOEC4zp2QcDsrLSQu7gDHvJWbYmaKBTiXrEvk52G/EN9aD86Am5k0bwPU5ktj8z38+5sxVns1R4e9J1WaZgD2dtFvpSxJbjVf09AZHIeyNw/BRu3GfJU6dX6KJVMCMtN+R5xv/ZckylI355R4nrf+7PLNsGg2tqlemvHiwdQkOb3/TOLrJpO94JRjm9k16huysztkpgJIGyKvHXT6z1A3cwCoJzrK7sQ1awedPvO+N8UGJ7kXHRgLLhQ2yWfZfIsD/s0Ji5GFrItm1nlqHAd/ZFh82jNKmvh6+n42l5TimH9Q0Cf+7bK5Y7SVYzhSAW2B8ivHsPMpAkLJ6d17ZMxtrr4/Q=", - "urls": [ - "https://pixeldrain.com/api/file/KfWzWfxp", - "https://bitbucket.org/blockstorage/repertory-ui/downloads/repertory-ui_1.1.4_linux_x86_64.AppImage" - ] - } - }, - "fedora29": { - "1.1.4": { - "sha256": "85347471f33dd41a35eb296cda03590d451322cd54a077cef470ccbfe52a141b", - "sig": "CGialiJMT6nETdGgP3vQvsXSWQYUEX7j7Cck0NSiW0cE4A1kW3mabM2I/5Yt4NwkDqBIAXofPyUd1JQ4UrF8cijfLNv3ECSaDJs7bWrISDr3Z8ti0uZnN3RUdJDCYDvAWBVqGC82Q1fmLkYJhd33o2B9DzjmvO+i7+buNyDB3dBIY5Fa3rnLKsIY7WB5EASBG3TzDlsZOtLvNgKo/3fLJP2RFyczSVCFZeHlppJbyXCakj50eCNbxjP6SLaD3oE+M0xGvyPyKTk0OGoJTGKM13q30WKbM6cMfL87BbUueGkBFDZeNMWU8Mz/fdGG21WqNN1p7k3CilJJQz7ZEE9bBhlsIX5j5rvL2qNYJoQbJQbxVjyoWHOOlqA62WUTOZhyiHD3OWQ58Fd9JqGDiIhg+ChIBWzyEXNdE6GQr7/qEiAQDbEsU06WOzfj3uxAV//iy/noalpyhlnr0TUu5xKSnoR7jQhCtvOdlrmgs8y+mTEpwDjXCR0S7jDxp+cEbVHb57Rl8N5thVrOs5RQfshhcqwBR/scCM9iCr0v3D7uyGMinTBT3A8lwerN8iO17FhtEerovn4Zhg2p7quZRiUcYLdx4EOlIMWuORyDk3s0S4VZ27t92NYwMlwMA1TbUQ/XuN1oZaQQ9ipSDjNDDVZto3Q4vwlqL3g1TIs1JyxfHkwUTpuFjg3ZqY+uRNxeJTDlj9JHXiAIZ+VeBggB7EixKE+wMi1A6a+Si/ZpBbroK5gP1gODShXYUN4eGmodxqF2/gVrJcimEeHkyBZ74dZIa9gTSIOxeo1OS70fFU+hQy9/V0/q4PElPZn+EzLTGknWh1EDmqReZ1svv0tYf0Ve/l5szhdNGsb2LUEZ7G/r0Bs7fyQjA5YZI+byOPTSA1Q9vlT63sodpBRDURWkqTRFRPWlaEY2kMZu/vJ422PSjK51X4EPHWmpOkDkxFzx2WAs2rKZ9QXCkU0RGu0Ctial/zNVhm20eVklcuIirEnmUK9Kod0KBmjl+U6U6jHvlhOEC4zp2QcDsrLSQu7gDHvJWbYmaKBTiXrEvk52G/EN9aD86Am5k0bwPU5ktj8z38+5sxVns1R4e9J1WaZgD2dtFvpSxJbjVf09AZHIeyNw/BRu3GfJU6dX6KJVMCMtN+R5xv/ZckylI355R4nrf+7PLNsGg2tqlemvHiwdQkOb3/TOLrJpO94JRjm9k16huysztkpgJIGyKvHXT6z1A3cwCoJzrK7sQ1awedPvO+N8UGJ7kXHRgLLhQ2yWfZfIsD/s0Ji5GFrItm1nlqHAd/ZFh82jNKmvh6+n42l5TimH9Q0Cf+7bK5Y7SVYzhSAW2B8ivHsPMpAkLJ6d17ZMxtrr4/Q=", - "urls": [ - "https://pixeldrain.com/api/file/KfWzWfxp", - "https://bitbucket.org/blockstorage/repertory-ui/downloads/repertory-ui_1.1.4_linux_x86_64.AppImage" - ] - } - }, - "fedora30": { - "1.1.4": { - "sha256": "85347471f33dd41a35eb296cda03590d451322cd54a077cef470ccbfe52a141b", - "sig": "CGialiJMT6nETdGgP3vQvsXSWQYUEX7j7Cck0NSiW0cE4A1kW3mabM2I/5Yt4NwkDqBIAXofPyUd1JQ4UrF8cijfLNv3ECSaDJs7bWrISDr3Z8ti0uZnN3RUdJDCYDvAWBVqGC82Q1fmLkYJhd33o2B9DzjmvO+i7+buNyDB3dBIY5Fa3rnLKsIY7WB5EASBG3TzDlsZOtLvNgKo/3fLJP2RFyczSVCFZeHlppJbyXCakj50eCNbxjP6SLaD3oE+M0xGvyPyKTk0OGoJTGKM13q30WKbM6cMfL87BbUueGkBFDZeNMWU8Mz/fdGG21WqNN1p7k3CilJJQz7ZEE9bBhlsIX5j5rvL2qNYJoQbJQbxVjyoWHOOlqA62WUTOZhyiHD3OWQ58Fd9JqGDiIhg+ChIBWzyEXNdE6GQr7/qEiAQDbEsU06WOzfj3uxAV//iy/noalpyhlnr0TUu5xKSnoR7jQhCtvOdlrmgs8y+mTEpwDjXCR0S7jDxp+cEbVHb57Rl8N5thVrOs5RQfshhcqwBR/scCM9iCr0v3D7uyGMinTBT3A8lwerN8iO17FhtEerovn4Zhg2p7quZRiUcYLdx4EOlIMWuORyDk3s0S4VZ27t92NYwMlwMA1TbUQ/XuN1oZaQQ9ipSDjNDDVZto3Q4vwlqL3g1TIs1JyxfHkwUTpuFjg3ZqY+uRNxeJTDlj9JHXiAIZ+VeBggB7EixKE+wMi1A6a+Si/ZpBbroK5gP1gODShXYUN4eGmodxqF2/gVrJcimEeHkyBZ74dZIa9gTSIOxeo1OS70fFU+hQy9/V0/q4PElPZn+EzLTGknWh1EDmqReZ1svv0tYf0Ve/l5szhdNGsb2LUEZ7G/r0Bs7fyQjA5YZI+byOPTSA1Q9vlT63sodpBRDURWkqTRFRPWlaEY2kMZu/vJ422PSjK51X4EPHWmpOkDkxFzx2WAs2rKZ9QXCkU0RGu0Ctial/zNVhm20eVklcuIirEnmUK9Kod0KBmjl+U6U6jHvlhOEC4zp2QcDsrLSQu7gDHvJWbYmaKBTiXrEvk52G/EN9aD86Am5k0bwPU5ktj8z38+5sxVns1R4e9J1WaZgD2dtFvpSxJbjVf09AZHIeyNw/BRu3GfJU6dX6KJVMCMtN+R5xv/ZckylI355R4nrf+7PLNsGg2tqlemvHiwdQkOb3/TOLrJpO94JRjm9k16huysztkpgJIGyKvHXT6z1A3cwCoJzrK7sQ1awedPvO+N8UGJ7kXHRgLLhQ2yWfZfIsD/s0Ji5GFrItm1nlqHAd/ZFh82jNKmvh6+n42l5TimH9Q0Cf+7bK5Y7SVYzhSAW2B8ivHsPMpAkLJ6d17ZMxtrr4/Q=", - "urls": [ - "https://pixeldrain.com/api/file/KfWzWfxp", - "https://bitbucket.org/blockstorage/repertory-ui/downloads/repertory-ui_1.1.4_linux_x86_64.AppImage" - ] - } - }, - "fedora31": { - "1.1.4": { - "sha256": "85347471f33dd41a35eb296cda03590d451322cd54a077cef470ccbfe52a141b", - "sig": "CGialiJMT6nETdGgP3vQvsXSWQYUEX7j7Cck0NSiW0cE4A1kW3mabM2I/5Yt4NwkDqBIAXofPyUd1JQ4UrF8cijfLNv3ECSaDJs7bWrISDr3Z8ti0uZnN3RUdJDCYDvAWBVqGC82Q1fmLkYJhd33o2B9DzjmvO+i7+buNyDB3dBIY5Fa3rnLKsIY7WB5EASBG3TzDlsZOtLvNgKo/3fLJP2RFyczSVCFZeHlppJbyXCakj50eCNbxjP6SLaD3oE+M0xGvyPyKTk0OGoJTGKM13q30WKbM6cMfL87BbUueGkBFDZeNMWU8Mz/fdGG21WqNN1p7k3CilJJQz7ZEE9bBhlsIX5j5rvL2qNYJoQbJQbxVjyoWHOOlqA62WUTOZhyiHD3OWQ58Fd9JqGDiIhg+ChIBWzyEXNdE6GQr7/qEiAQDbEsU06WOzfj3uxAV//iy/noalpyhlnr0TUu5xKSnoR7jQhCtvOdlrmgs8y+mTEpwDjXCR0S7jDxp+cEbVHb57Rl8N5thVrOs5RQfshhcqwBR/scCM9iCr0v3D7uyGMinTBT3A8lwerN8iO17FhtEerovn4Zhg2p7quZRiUcYLdx4EOlIMWuORyDk3s0S4VZ27t92NYwMlwMA1TbUQ/XuN1oZaQQ9ipSDjNDDVZto3Q4vwlqL3g1TIs1JyxfHkwUTpuFjg3ZqY+uRNxeJTDlj9JHXiAIZ+VeBggB7EixKE+wMi1A6a+Si/ZpBbroK5gP1gODShXYUN4eGmodxqF2/gVrJcimEeHkyBZ74dZIa9gTSIOxeo1OS70fFU+hQy9/V0/q4PElPZn+EzLTGknWh1EDmqReZ1svv0tYf0Ve/l5szhdNGsb2LUEZ7G/r0Bs7fyQjA5YZI+byOPTSA1Q9vlT63sodpBRDURWkqTRFRPWlaEY2kMZu/vJ422PSjK51X4EPHWmpOkDkxFzx2WAs2rKZ9QXCkU0RGu0Ctial/zNVhm20eVklcuIirEnmUK9Kod0KBmjl+U6U6jHvlhOEC4zp2QcDsrLSQu7gDHvJWbYmaKBTiXrEvk52G/EN9aD86Am5k0bwPU5ktj8z38+5sxVns1R4e9J1WaZgD2dtFvpSxJbjVf09AZHIeyNw/BRu3GfJU6dX6KJVMCMtN+R5xv/ZckylI355R4nrf+7PLNsGg2tqlemvHiwdQkOb3/TOLrJpO94JRjm9k16huysztkpgJIGyKvHXT6z1A3cwCoJzrK7sQ1awedPvO+N8UGJ7kXHRgLLhQ2yWfZfIsD/s0Ji5GFrItm1nlqHAd/ZFh82jNKmvh6+n42l5TimH9Q0Cf+7bK5Y7SVYzhSAW2B8ivHsPMpAkLJ6d17ZMxtrr4/Q=", - "urls": [ - "https://pixeldrain.com/api/file/KfWzWfxp", - "https://bitbucket.org/blockstorage/repertory-ui/downloads/repertory-ui_1.1.4_linux_x86_64.AppImage" - ] - } - }, - "opensuse15": { - "1.1.4": { - "sha256": "85347471f33dd41a35eb296cda03590d451322cd54a077cef470ccbfe52a141b", - "sig": "CGialiJMT6nETdGgP3vQvsXSWQYUEX7j7Cck0NSiW0cE4A1kW3mabM2I/5Yt4NwkDqBIAXofPyUd1JQ4UrF8cijfLNv3ECSaDJs7bWrISDr3Z8ti0uZnN3RUdJDCYDvAWBVqGC82Q1fmLkYJhd33o2B9DzjmvO+i7+buNyDB3dBIY5Fa3rnLKsIY7WB5EASBG3TzDlsZOtLvNgKo/3fLJP2RFyczSVCFZeHlppJbyXCakj50eCNbxjP6SLaD3oE+M0xGvyPyKTk0OGoJTGKM13q30WKbM6cMfL87BbUueGkBFDZeNMWU8Mz/fdGG21WqNN1p7k3CilJJQz7ZEE9bBhlsIX5j5rvL2qNYJoQbJQbxVjyoWHOOlqA62WUTOZhyiHD3OWQ58Fd9JqGDiIhg+ChIBWzyEXNdE6GQr7/qEiAQDbEsU06WOzfj3uxAV//iy/noalpyhlnr0TUu5xKSnoR7jQhCtvOdlrmgs8y+mTEpwDjXCR0S7jDxp+cEbVHb57Rl8N5thVrOs5RQfshhcqwBR/scCM9iCr0v3D7uyGMinTBT3A8lwerN8iO17FhtEerovn4Zhg2p7quZRiUcYLdx4EOlIMWuORyDk3s0S4VZ27t92NYwMlwMA1TbUQ/XuN1oZaQQ9ipSDjNDDVZto3Q4vwlqL3g1TIs1JyxfHkwUTpuFjg3ZqY+uRNxeJTDlj9JHXiAIZ+VeBggB7EixKE+wMi1A6a+Si/ZpBbroK5gP1gODShXYUN4eGmodxqF2/gVrJcimEeHkyBZ74dZIa9gTSIOxeo1OS70fFU+hQy9/V0/q4PElPZn+EzLTGknWh1EDmqReZ1svv0tYf0Ve/l5szhdNGsb2LUEZ7G/r0Bs7fyQjA5YZI+byOPTSA1Q9vlT63sodpBRDURWkqTRFRPWlaEY2kMZu/vJ422PSjK51X4EPHWmpOkDkxFzx2WAs2rKZ9QXCkU0RGu0Ctial/zNVhm20eVklcuIirEnmUK9Kod0KBmjl+U6U6jHvlhOEC4zp2QcDsrLSQu7gDHvJWbYmaKBTiXrEvk52G/EN9aD86Am5k0bwPU5ktj8z38+5sxVns1R4e9J1WaZgD2dtFvpSxJbjVf09AZHIeyNw/BRu3GfJU6dX6KJVMCMtN+R5xv/ZckylI355R4nrf+7PLNsGg2tqlemvHiwdQkOb3/TOLrJpO94JRjm9k16huysztkpgJIGyKvHXT6z1A3cwCoJzrK7sQ1awedPvO+N8UGJ7kXHRgLLhQ2yWfZfIsD/s0Ji5GFrItm1nlqHAd/ZFh82jNKmvh6+n42l5TimH9Q0Cf+7bK5Y7SVYzhSAW2B8ivHsPMpAkLJ6d17ZMxtrr4/Q=", - "urls": [ - "https://pixeldrain.com/api/file/KfWzWfxp", - "https://bitbucket.org/blockstorage/repertory-ui/downloads/repertory-ui_1.1.4_linux_x86_64.AppImage" - ] - } - }, - "opensuse15.1": { - "1.1.4": { - "sha256": "85347471f33dd41a35eb296cda03590d451322cd54a077cef470ccbfe52a141b", - "sig": "CGialiJMT6nETdGgP3vQvsXSWQYUEX7j7Cck0NSiW0cE4A1kW3mabM2I/5Yt4NwkDqBIAXofPyUd1JQ4UrF8cijfLNv3ECSaDJs7bWrISDr3Z8ti0uZnN3RUdJDCYDvAWBVqGC82Q1fmLkYJhd33o2B9DzjmvO+i7+buNyDB3dBIY5Fa3rnLKsIY7WB5EASBG3TzDlsZOtLvNgKo/3fLJP2RFyczSVCFZeHlppJbyXCakj50eCNbxjP6SLaD3oE+M0xGvyPyKTk0OGoJTGKM13q30WKbM6cMfL87BbUueGkBFDZeNMWU8Mz/fdGG21WqNN1p7k3CilJJQz7ZEE9bBhlsIX5j5rvL2qNYJoQbJQbxVjyoWHOOlqA62WUTOZhyiHD3OWQ58Fd9JqGDiIhg+ChIBWzyEXNdE6GQr7/qEiAQDbEsU06WOzfj3uxAV//iy/noalpyhlnr0TUu5xKSnoR7jQhCtvOdlrmgs8y+mTEpwDjXCR0S7jDxp+cEbVHb57Rl8N5thVrOs5RQfshhcqwBR/scCM9iCr0v3D7uyGMinTBT3A8lwerN8iO17FhtEerovn4Zhg2p7quZRiUcYLdx4EOlIMWuORyDk3s0S4VZ27t92NYwMlwMA1TbUQ/XuN1oZaQQ9ipSDjNDDVZto3Q4vwlqL3g1TIs1JyxfHkwUTpuFjg3ZqY+uRNxeJTDlj9JHXiAIZ+VeBggB7EixKE+wMi1A6a+Si/ZpBbroK5gP1gODShXYUN4eGmodxqF2/gVrJcimEeHkyBZ74dZIa9gTSIOxeo1OS70fFU+hQy9/V0/q4PElPZn+EzLTGknWh1EDmqReZ1svv0tYf0Ve/l5szhdNGsb2LUEZ7G/r0Bs7fyQjA5YZI+byOPTSA1Q9vlT63sodpBRDURWkqTRFRPWlaEY2kMZu/vJ422PSjK51X4EPHWmpOkDkxFzx2WAs2rKZ9QXCkU0RGu0Ctial/zNVhm20eVklcuIirEnmUK9Kod0KBmjl+U6U6jHvlhOEC4zp2QcDsrLSQu7gDHvJWbYmaKBTiXrEvk52G/EN9aD86Am5k0bwPU5ktj8z38+5sxVns1R4e9J1WaZgD2dtFvpSxJbjVf09AZHIeyNw/BRu3GfJU6dX6KJVMCMtN+R5xv/ZckylI355R4nrf+7PLNsGg2tqlemvHiwdQkOb3/TOLrJpO94JRjm9k16huysztkpgJIGyKvHXT6z1A3cwCoJzrK7sQ1awedPvO+N8UGJ7kXHRgLLhQ2yWfZfIsD/s0Ji5GFrItm1nlqHAd/ZFh82jNKmvh6+n42l5TimH9Q0Cf+7bK5Y7SVYzhSAW2B8ivHsPMpAkLJ6d17ZMxtrr4/Q=", - "urls": [ - "https://pixeldrain.com/api/file/KfWzWfxp", - "https://bitbucket.org/blockstorage/repertory-ui/downloads/repertory-ui_1.1.4_linux_x86_64.AppImage" + "https://bitbucket.org/blockstorage/repertory-ui/downloads/repertory-ui_1.3.2_mac.dmg" ] } }, "solus": { - "1.1.4": { - "sha256": "85347471f33dd41a35eb296cda03590d451322cd54a077cef470ccbfe52a141b", - "sig": "CGialiJMT6nETdGgP3vQvsXSWQYUEX7j7Cck0NSiW0cE4A1kW3mabM2I/5Yt4NwkDqBIAXofPyUd1JQ4UrF8cijfLNv3ECSaDJs7bWrISDr3Z8ti0uZnN3RUdJDCYDvAWBVqGC82Q1fmLkYJhd33o2B9DzjmvO+i7+buNyDB3dBIY5Fa3rnLKsIY7WB5EASBG3TzDlsZOtLvNgKo/3fLJP2RFyczSVCFZeHlppJbyXCakj50eCNbxjP6SLaD3oE+M0xGvyPyKTk0OGoJTGKM13q30WKbM6cMfL87BbUueGkBFDZeNMWU8Mz/fdGG21WqNN1p7k3CilJJQz7ZEE9bBhlsIX5j5rvL2qNYJoQbJQbxVjyoWHOOlqA62WUTOZhyiHD3OWQ58Fd9JqGDiIhg+ChIBWzyEXNdE6GQr7/qEiAQDbEsU06WOzfj3uxAV//iy/noalpyhlnr0TUu5xKSnoR7jQhCtvOdlrmgs8y+mTEpwDjXCR0S7jDxp+cEbVHb57Rl8N5thVrOs5RQfshhcqwBR/scCM9iCr0v3D7uyGMinTBT3A8lwerN8iO17FhtEerovn4Zhg2p7quZRiUcYLdx4EOlIMWuORyDk3s0S4VZ27t92NYwMlwMA1TbUQ/XuN1oZaQQ9ipSDjNDDVZto3Q4vwlqL3g1TIs1JyxfHkwUTpuFjg3ZqY+uRNxeJTDlj9JHXiAIZ+VeBggB7EixKE+wMi1A6a+Si/ZpBbroK5gP1gODShXYUN4eGmodxqF2/gVrJcimEeHkyBZ74dZIa9gTSIOxeo1OS70fFU+hQy9/V0/q4PElPZn+EzLTGknWh1EDmqReZ1svv0tYf0Ve/l5szhdNGsb2LUEZ7G/r0Bs7fyQjA5YZI+byOPTSA1Q9vlT63sodpBRDURWkqTRFRPWlaEY2kMZu/vJ422PSjK51X4EPHWmpOkDkxFzx2WAs2rKZ9QXCkU0RGu0Ctial/zNVhm20eVklcuIirEnmUK9Kod0KBmjl+U6U6jHvlhOEC4zp2QcDsrLSQu7gDHvJWbYmaKBTiXrEvk52G/EN9aD86Am5k0bwPU5ktj8z38+5sxVns1R4e9J1WaZgD2dtFvpSxJbjVf09AZHIeyNw/BRu3GfJU6dX6KJVMCMtN+R5xv/ZckylI355R4nrf+7PLNsGg2tqlemvHiwdQkOb3/TOLrJpO94JRjm9k16huysztkpgJIGyKvHXT6z1A3cwCoJzrK7sQ1awedPvO+N8UGJ7kXHRgLLhQ2yWfZfIsD/s0Ji5GFrItm1nlqHAd/ZFh82jNKmvh6+n42l5TimH9Q0Cf+7bK5Y7SVYzhSAW2B8ivHsPMpAkLJ6d17ZMxtrr4/Q=", + "1.3.2": { + "sha256": "a8b9bff91d0f0685041737cfa40b4bc8ef765d24419104f3dd90f977023e7858", + "sig": "CBEtKUDJwjPrchhNXvzulpfaBWFElDD+Kn9b14oF426IuKncsmqTWUesG3cT/beDk1onaDOhDIchyan6iW/BCdB+sVAuGAoRpm2lJ4lWba7ZPnXP7H10uIjVf1xASwIciP4jpAUPo0bO8hi9kqu1zkF9GeVHHb+SXlLhDP31wN7kHwgb/MeZ95/NqfucumYcwfFOZOnofSKaGQwHpbypy57YzyVCf/NzQDnYC46lcH9xVMmbgodT+y5MIIF0kkSJn0DbSfxLVMWTx1pnZUzJ7J827EKUgAS4d4uLI7ShskS+d84i8rNV9gXgqwYkqDvYbdFi7ArJZB7GJtyZ4VPTqRqGfxwF8rL3K0ml+635DfEXiHN8MbTuqwLHD2giChOfsdAAV4ngJ8xg7+Th8dqpgC92GXoOjNK7GSAyrOFsQ7xeqdVOBZMNk/dHVAb9eCTbPIsOjGFTAzOk8n3roM8naDUOq7PefUj1Jb2EGVhWnwS2ngvhNfRggZmmr3l9IElddaHro0JpnubsFmiAa+akV0P8VLb1jjpIJRfr2CIEnPTQbT4UQ1DdBitgkWiPbagTp8BQF1YGcVZ8jc9mbOxmF46z0MyuMQZjDHw2Vai0uPsoLIJHhy3I7nJqsnEw6gQX/l1VGj9wPHeaqMgGYGFykFfvVssh0CH45tUCdWL6Q9Hgx8+yLw0Lky/HIGMQc0qZUM9ute/9Buifd9cOK8+S5PaA0Zg0G/pIY6fThtO86wKJQnoPeiuBkJ9yXc20ZGrfb39Qnf2nZxrPyVl2iQJlven6CDBxc88henxzvxK61bXUynK8zHVuoIAC7ejWZEbPOqDV3DOOSVDz1+eq1MU2KZ4JmaLipzbdy/y+ph1TnCGwdL9R3s+xLYSaxA+ybhQVNXHhQ7+eZD6CWXytaIVYe8giL1ki8oN/18Bm1B2dVxCZ4KKbAToFpBOGvW+w8JFAC5nBK5aj2BGWEocyWQ1XIJmqVBd8RSOMYVYjQOhVnIvyJxOqvnrLUoRzJruj8R/riuCSMnfq17ykpjCzoNzIjvimCPyAib9kdWx7M8dyOS9Sls2sMLwJvDcsGi/FfuGqBmV2v28XagRZz70iypqNaIUrj4CShfz8e110su3BtLQHr1O6yffxy+whbB7w+ogZ6gz86AZ/63Zz6xbLIk4wuNx1UL/ZuRMGq4xOW/7zRpOYYSe/h98YFd9/UTcoi8Osjl+o1eVup6YWVeDvOG69uqwfID8XHivJnEV2NVFx8fbb6fHSrMg/QbjSngdyQ3b+5rWiZG01DGCDB5RFOvEKY24qrXXWQGAx+JXbj+/7xYWts+/Fv7hSqvpvf7H8aVCoOKXGtjJiy+K/9tAJJLQDAzo=", "urls": [ - "https://pixeldrain.com/api/file/KfWzWfxp", - "https://bitbucket.org/blockstorage/repertory-ui/downloads/repertory-ui_1.1.4_linux_x86_64.AppImage" - ] - } - }, - "tumbleweed": { - "1.1.4": { - "sha256": "85347471f33dd41a35eb296cda03590d451322cd54a077cef470ccbfe52a141b", - "sig": "CGialiJMT6nETdGgP3vQvsXSWQYUEX7j7Cck0NSiW0cE4A1kW3mabM2I/5Yt4NwkDqBIAXofPyUd1JQ4UrF8cijfLNv3ECSaDJs7bWrISDr3Z8ti0uZnN3RUdJDCYDvAWBVqGC82Q1fmLkYJhd33o2B9DzjmvO+i7+buNyDB3dBIY5Fa3rnLKsIY7WB5EASBG3TzDlsZOtLvNgKo/3fLJP2RFyczSVCFZeHlppJbyXCakj50eCNbxjP6SLaD3oE+M0xGvyPyKTk0OGoJTGKM13q30WKbM6cMfL87BbUueGkBFDZeNMWU8Mz/fdGG21WqNN1p7k3CilJJQz7ZEE9bBhlsIX5j5rvL2qNYJoQbJQbxVjyoWHOOlqA62WUTOZhyiHD3OWQ58Fd9JqGDiIhg+ChIBWzyEXNdE6GQr7/qEiAQDbEsU06WOzfj3uxAV//iy/noalpyhlnr0TUu5xKSnoR7jQhCtvOdlrmgs8y+mTEpwDjXCR0S7jDxp+cEbVHb57Rl8N5thVrOs5RQfshhcqwBR/scCM9iCr0v3D7uyGMinTBT3A8lwerN8iO17FhtEerovn4Zhg2p7quZRiUcYLdx4EOlIMWuORyDk3s0S4VZ27t92NYwMlwMA1TbUQ/XuN1oZaQQ9ipSDjNDDVZto3Q4vwlqL3g1TIs1JyxfHkwUTpuFjg3ZqY+uRNxeJTDlj9JHXiAIZ+VeBggB7EixKE+wMi1A6a+Si/ZpBbroK5gP1gODShXYUN4eGmodxqF2/gVrJcimEeHkyBZ74dZIa9gTSIOxeo1OS70fFU+hQy9/V0/q4PElPZn+EzLTGknWh1EDmqReZ1svv0tYf0Ve/l5szhdNGsb2LUEZ7G/r0Bs7fyQjA5YZI+byOPTSA1Q9vlT63sodpBRDURWkqTRFRPWlaEY2kMZu/vJ422PSjK51X4EPHWmpOkDkxFzx2WAs2rKZ9QXCkU0RGu0Ctial/zNVhm20eVklcuIirEnmUK9Kod0KBmjl+U6U6jHvlhOEC4zp2QcDsrLSQu7gDHvJWbYmaKBTiXrEvk52G/EN9aD86Am5k0bwPU5ktj8z38+5sxVns1R4e9J1WaZgD2dtFvpSxJbjVf09AZHIeyNw/BRu3GfJU6dX6KJVMCMtN+R5xv/ZckylI355R4nrf+7PLNsGg2tqlemvHiwdQkOb3/TOLrJpO94JRjm9k16huysztkpgJIGyKvHXT6z1A3cwCoJzrK7sQ1awedPvO+N8UGJ7kXHRgLLhQ2yWfZfIsD/s0Ji5GFrItm1nlqHAd/ZFh82jNKmvh6+n42l5TimH9Q0Cf+7bK5Y7SVYzhSAW2B8ivHsPMpAkLJ6d17ZMxtrr4/Q=", - "urls": [ - "https://pixeldrain.com/api/file/KfWzWfxp", - "https://bitbucket.org/blockstorage/repertory-ui/downloads/repertory-ui_1.1.4_linux_x86_64.AppImage" - ] - } - }, - "ubuntu18.04": { - "1.1.4": { - "sha256": "85347471f33dd41a35eb296cda03590d451322cd54a077cef470ccbfe52a141b", - "sig": "CGialiJMT6nETdGgP3vQvsXSWQYUEX7j7Cck0NSiW0cE4A1kW3mabM2I/5Yt4NwkDqBIAXofPyUd1JQ4UrF8cijfLNv3ECSaDJs7bWrISDr3Z8ti0uZnN3RUdJDCYDvAWBVqGC82Q1fmLkYJhd33o2B9DzjmvO+i7+buNyDB3dBIY5Fa3rnLKsIY7WB5EASBG3TzDlsZOtLvNgKo/3fLJP2RFyczSVCFZeHlppJbyXCakj50eCNbxjP6SLaD3oE+M0xGvyPyKTk0OGoJTGKM13q30WKbM6cMfL87BbUueGkBFDZeNMWU8Mz/fdGG21WqNN1p7k3CilJJQz7ZEE9bBhlsIX5j5rvL2qNYJoQbJQbxVjyoWHOOlqA62WUTOZhyiHD3OWQ58Fd9JqGDiIhg+ChIBWzyEXNdE6GQr7/qEiAQDbEsU06WOzfj3uxAV//iy/noalpyhlnr0TUu5xKSnoR7jQhCtvOdlrmgs8y+mTEpwDjXCR0S7jDxp+cEbVHb57Rl8N5thVrOs5RQfshhcqwBR/scCM9iCr0v3D7uyGMinTBT3A8lwerN8iO17FhtEerovn4Zhg2p7quZRiUcYLdx4EOlIMWuORyDk3s0S4VZ27t92NYwMlwMA1TbUQ/XuN1oZaQQ9ipSDjNDDVZto3Q4vwlqL3g1TIs1JyxfHkwUTpuFjg3ZqY+uRNxeJTDlj9JHXiAIZ+VeBggB7EixKE+wMi1A6a+Si/ZpBbroK5gP1gODShXYUN4eGmodxqF2/gVrJcimEeHkyBZ74dZIa9gTSIOxeo1OS70fFU+hQy9/V0/q4PElPZn+EzLTGknWh1EDmqReZ1svv0tYf0Ve/l5szhdNGsb2LUEZ7G/r0Bs7fyQjA5YZI+byOPTSA1Q9vlT63sodpBRDURWkqTRFRPWlaEY2kMZu/vJ422PSjK51X4EPHWmpOkDkxFzx2WAs2rKZ9QXCkU0RGu0Ctial/zNVhm20eVklcuIirEnmUK9Kod0KBmjl+U6U6jHvlhOEC4zp2QcDsrLSQu7gDHvJWbYmaKBTiXrEvk52G/EN9aD86Am5k0bwPU5ktj8z38+5sxVns1R4e9J1WaZgD2dtFvpSxJbjVf09AZHIeyNw/BRu3GfJU6dX6KJVMCMtN+R5xv/ZckylI355R4nrf+7PLNsGg2tqlemvHiwdQkOb3/TOLrJpO94JRjm9k16huysztkpgJIGyKvHXT6z1A3cwCoJzrK7sQ1awedPvO+N8UGJ7kXHRgLLhQ2yWfZfIsD/s0Ji5GFrItm1nlqHAd/ZFh82jNKmvh6+n42l5TimH9Q0Cf+7bK5Y7SVYzhSAW2B8ivHsPMpAkLJ6d17ZMxtrr4/Q=", - "urls": [ - "https://pixeldrain.com/api/file/KfWzWfxp", - "https://bitbucket.org/blockstorage/repertory-ui/downloads/repertory-ui_1.1.4_linux_x86_64.AppImage" - ] - } - }, - "ubuntu18.10": { - "1.1.4": { - "sha256": "85347471f33dd41a35eb296cda03590d451322cd54a077cef470ccbfe52a141b", - "sig": "CGialiJMT6nETdGgP3vQvsXSWQYUEX7j7Cck0NSiW0cE4A1kW3mabM2I/5Yt4NwkDqBIAXofPyUd1JQ4UrF8cijfLNv3ECSaDJs7bWrISDr3Z8ti0uZnN3RUdJDCYDvAWBVqGC82Q1fmLkYJhd33o2B9DzjmvO+i7+buNyDB3dBIY5Fa3rnLKsIY7WB5EASBG3TzDlsZOtLvNgKo/3fLJP2RFyczSVCFZeHlppJbyXCakj50eCNbxjP6SLaD3oE+M0xGvyPyKTk0OGoJTGKM13q30WKbM6cMfL87BbUueGkBFDZeNMWU8Mz/fdGG21WqNN1p7k3CilJJQz7ZEE9bBhlsIX5j5rvL2qNYJoQbJQbxVjyoWHOOlqA62WUTOZhyiHD3OWQ58Fd9JqGDiIhg+ChIBWzyEXNdE6GQr7/qEiAQDbEsU06WOzfj3uxAV//iy/noalpyhlnr0TUu5xKSnoR7jQhCtvOdlrmgs8y+mTEpwDjXCR0S7jDxp+cEbVHb57Rl8N5thVrOs5RQfshhcqwBR/scCM9iCr0v3D7uyGMinTBT3A8lwerN8iO17FhtEerovn4Zhg2p7quZRiUcYLdx4EOlIMWuORyDk3s0S4VZ27t92NYwMlwMA1TbUQ/XuN1oZaQQ9ipSDjNDDVZto3Q4vwlqL3g1TIs1JyxfHkwUTpuFjg3ZqY+uRNxeJTDlj9JHXiAIZ+VeBggB7EixKE+wMi1A6a+Si/ZpBbroK5gP1gODShXYUN4eGmodxqF2/gVrJcimEeHkyBZ74dZIa9gTSIOxeo1OS70fFU+hQy9/V0/q4PElPZn+EzLTGknWh1EDmqReZ1svv0tYf0Ve/l5szhdNGsb2LUEZ7G/r0Bs7fyQjA5YZI+byOPTSA1Q9vlT63sodpBRDURWkqTRFRPWlaEY2kMZu/vJ422PSjK51X4EPHWmpOkDkxFzx2WAs2rKZ9QXCkU0RGu0Ctial/zNVhm20eVklcuIirEnmUK9Kod0KBmjl+U6U6jHvlhOEC4zp2QcDsrLSQu7gDHvJWbYmaKBTiXrEvk52G/EN9aD86Am5k0bwPU5ktj8z38+5sxVns1R4e9J1WaZgD2dtFvpSxJbjVf09AZHIeyNw/BRu3GfJU6dX6KJVMCMtN+R5xv/ZckylI355R4nrf+7PLNsGg2tqlemvHiwdQkOb3/TOLrJpO94JRjm9k16huysztkpgJIGyKvHXT6z1A3cwCoJzrK7sQ1awedPvO+N8UGJ7kXHRgLLhQ2yWfZfIsD/s0Ji5GFrItm1nlqHAd/ZFh82jNKmvh6+n42l5TimH9Q0Cf+7bK5Y7SVYzhSAW2B8ivHsPMpAkLJ6d17ZMxtrr4/Q=", - "urls": [ - "https://pixeldrain.com/api/file/KfWzWfxp", - "https://bitbucket.org/blockstorage/repertory-ui/downloads/repertory-ui_1.1.4_linux_x86_64.AppImage" - ] - } - }, - "ubuntu19.04": { - "1.1.4": { - "sha256": "85347471f33dd41a35eb296cda03590d451322cd54a077cef470ccbfe52a141b", - "sig": "CGialiJMT6nETdGgP3vQvsXSWQYUEX7j7Cck0NSiW0cE4A1kW3mabM2I/5Yt4NwkDqBIAXofPyUd1JQ4UrF8cijfLNv3ECSaDJs7bWrISDr3Z8ti0uZnN3RUdJDCYDvAWBVqGC82Q1fmLkYJhd33o2B9DzjmvO+i7+buNyDB3dBIY5Fa3rnLKsIY7WB5EASBG3TzDlsZOtLvNgKo/3fLJP2RFyczSVCFZeHlppJbyXCakj50eCNbxjP6SLaD3oE+M0xGvyPyKTk0OGoJTGKM13q30WKbM6cMfL87BbUueGkBFDZeNMWU8Mz/fdGG21WqNN1p7k3CilJJQz7ZEE9bBhlsIX5j5rvL2qNYJoQbJQbxVjyoWHOOlqA62WUTOZhyiHD3OWQ58Fd9JqGDiIhg+ChIBWzyEXNdE6GQr7/qEiAQDbEsU06WOzfj3uxAV//iy/noalpyhlnr0TUu5xKSnoR7jQhCtvOdlrmgs8y+mTEpwDjXCR0S7jDxp+cEbVHb57Rl8N5thVrOs5RQfshhcqwBR/scCM9iCr0v3D7uyGMinTBT3A8lwerN8iO17FhtEerovn4Zhg2p7quZRiUcYLdx4EOlIMWuORyDk3s0S4VZ27t92NYwMlwMA1TbUQ/XuN1oZaQQ9ipSDjNDDVZto3Q4vwlqL3g1TIs1JyxfHkwUTpuFjg3ZqY+uRNxeJTDlj9JHXiAIZ+VeBggB7EixKE+wMi1A6a+Si/ZpBbroK5gP1gODShXYUN4eGmodxqF2/gVrJcimEeHkyBZ74dZIa9gTSIOxeo1OS70fFU+hQy9/V0/q4PElPZn+EzLTGknWh1EDmqReZ1svv0tYf0Ve/l5szhdNGsb2LUEZ7G/r0Bs7fyQjA5YZI+byOPTSA1Q9vlT63sodpBRDURWkqTRFRPWlaEY2kMZu/vJ422PSjK51X4EPHWmpOkDkxFzx2WAs2rKZ9QXCkU0RGu0Ctial/zNVhm20eVklcuIirEnmUK9Kod0KBmjl+U6U6jHvlhOEC4zp2QcDsrLSQu7gDHvJWbYmaKBTiXrEvk52G/EN9aD86Am5k0bwPU5ktj8z38+5sxVns1R4e9J1WaZgD2dtFvpSxJbjVf09AZHIeyNw/BRu3GfJU6dX6KJVMCMtN+R5xv/ZckylI355R4nrf+7PLNsGg2tqlemvHiwdQkOb3/TOLrJpO94JRjm9k16huysztkpgJIGyKvHXT6z1A3cwCoJzrK7sQ1awedPvO+N8UGJ7kXHRgLLhQ2yWfZfIsD/s0Ji5GFrItm1nlqHAd/ZFh82jNKmvh6+n42l5TimH9Q0Cf+7bK5Y7SVYzhSAW2B8ivHsPMpAkLJ6d17ZMxtrr4/Q=", - "urls": [ - "https://pixeldrain.com/api/file/KfWzWfxp", - "https://bitbucket.org/blockstorage/repertory-ui/downloads/repertory-ui_1.1.4_linux_x86_64.AppImage" - ] - } - }, - "ubuntu19.10": { - "1.1.4": { - "sha256": "85347471f33dd41a35eb296cda03590d451322cd54a077cef470ccbfe52a141b", - "sig": "CGialiJMT6nETdGgP3vQvsXSWQYUEX7j7Cck0NSiW0cE4A1kW3mabM2I/5Yt4NwkDqBIAXofPyUd1JQ4UrF8cijfLNv3ECSaDJs7bWrISDr3Z8ti0uZnN3RUdJDCYDvAWBVqGC82Q1fmLkYJhd33o2B9DzjmvO+i7+buNyDB3dBIY5Fa3rnLKsIY7WB5EASBG3TzDlsZOtLvNgKo/3fLJP2RFyczSVCFZeHlppJbyXCakj50eCNbxjP6SLaD3oE+M0xGvyPyKTk0OGoJTGKM13q30WKbM6cMfL87BbUueGkBFDZeNMWU8Mz/fdGG21WqNN1p7k3CilJJQz7ZEE9bBhlsIX5j5rvL2qNYJoQbJQbxVjyoWHOOlqA62WUTOZhyiHD3OWQ58Fd9JqGDiIhg+ChIBWzyEXNdE6GQr7/qEiAQDbEsU06WOzfj3uxAV//iy/noalpyhlnr0TUu5xKSnoR7jQhCtvOdlrmgs8y+mTEpwDjXCR0S7jDxp+cEbVHb57Rl8N5thVrOs5RQfshhcqwBR/scCM9iCr0v3D7uyGMinTBT3A8lwerN8iO17FhtEerovn4Zhg2p7quZRiUcYLdx4EOlIMWuORyDk3s0S4VZ27t92NYwMlwMA1TbUQ/XuN1oZaQQ9ipSDjNDDVZto3Q4vwlqL3g1TIs1JyxfHkwUTpuFjg3ZqY+uRNxeJTDlj9JHXiAIZ+VeBggB7EixKE+wMi1A6a+Si/ZpBbroK5gP1gODShXYUN4eGmodxqF2/gVrJcimEeHkyBZ74dZIa9gTSIOxeo1OS70fFU+hQy9/V0/q4PElPZn+EzLTGknWh1EDmqReZ1svv0tYf0Ve/l5szhdNGsb2LUEZ7G/r0Bs7fyQjA5YZI+byOPTSA1Q9vlT63sodpBRDURWkqTRFRPWlaEY2kMZu/vJ422PSjK51X4EPHWmpOkDkxFzx2WAs2rKZ9QXCkU0RGu0Ctial/zNVhm20eVklcuIirEnmUK9Kod0KBmjl+U6U6jHvlhOEC4zp2QcDsrLSQu7gDHvJWbYmaKBTiXrEvk52G/EN9aD86Am5k0bwPU5ktj8z38+5sxVns1R4e9J1WaZgD2dtFvpSxJbjVf09AZHIeyNw/BRu3GfJU6dX6KJVMCMtN+R5xv/ZckylI355R4nrf+7PLNsGg2tqlemvHiwdQkOb3/TOLrJpO94JRjm9k16huysztkpgJIGyKvHXT6z1A3cwCoJzrK7sQ1awedPvO+N8UGJ7kXHRgLLhQ2yWfZfIsD/s0Ji5GFrItm1nlqHAd/ZFh82jNKmvh6+n42l5TimH9Q0Cf+7bK5Y7SVYzhSAW2B8ivHsPMpAkLJ6d17ZMxtrr4/Q=", - "urls": [ - "https://pixeldrain.com/api/file/KfWzWfxp", - "https://bitbucket.org/blockstorage/repertory-ui/downloads/repertory-ui_1.1.4_linux_x86_64.AppImage" + "https://bitbucket.org/blockstorage/repertory-ui/downloads/repertory-ui_1.3.2_linux_x86_64.AppImage" ] } }, "win32": { - "1.1.4": { - "sha256": "c942d2779e7da597605d9fb8fa2876f9c82e5255ee859dac47d209e64f6d1707", - "sig": "AhYYFZxYLVibiRvc0PyOSnU+CWoaVwWvKfMWibdYsxINuwPUMVRjvXe2dPB8ghqe3qODw4XswZnwu7BwqTbCwaEDNdj8f4kpmd0cNnFTP4jP9q0qKcM4thOq1rCr8VuptS8UsTT0UXVqExf2K06efyrG1GYjeTG9LJpCJ5YFiet2vrarqHap/FiRjgVhRcE6mkoDPLj+eu9z9AFPQ4uNrMazFgHj7Vbq4H+oEIwMiuC6umbd3xGBSvlmudp3OONYrybwIuMpqaUPv874eFQOfrlYVPadAr9vn6QxFEjl1rBkd9xQNte/CBYNe1/fD5p0iLjJOAqz24cgZCMpKsRUOpgJcwf7NVU819Ymbu9/zVtBJ2F/T2wg2o8wTyymWqTdMSEDZu0fUb3StHzcrEqFzAHckyDF6d6qrKBXc8bzs0T85FQUZUqzoZng3b+Y2xtSoaiJA/6Es+Qx6t1T7dXqtN7xu43ZRrNNLcLG/FtHx8X7UuAzNt4FL5kbPM3EMtK1J3gsDpTQSsLKPKTWZXuEfUOCI/b1psL3YcsQv9Ta1o2I9bGqYTJtsGTvCkXG20KoqcqXiYFyGWTnztd8jcPhvxjI9aI0sblOTMN4lBmkNroOkSu39/+z8UvsKgioE1FNmjr5edtqbXdJ2C/6PZITKe3Hl+sfJDHinn3QhYp/Hl9gzL64KD2lJRiM7rCWYfyUvMnwewG5aQvkE/Jf9t05DYCX9rwbUoz8QSV/HBGOXrrDpo+tJeZ74FbaNVlW4IApnpSdQpVqwdJCf7rdPwOm13DvkgSDjlz02BdLKk93X0fX4zCGnF/RNYw4meLkbs0UmrDml9hCfEHRjrYJe0i9GqRwyBH9kp+sbBTYcomZgro24pEQRXi6DoK5xjpu8K+ywAAjWFn7vrZQeuNTmw5Itib2xQQnFzbg/u35KFXvaZ6c0MBi+rIwUQTqOO1l6U6PN5+U7imRxDKvy6y1GsusJGXee4HATJiZc/5PCRK42A2YJ1NBHDJOm0aLcx8oboYtmvGOIObAcpEIkfrDdykxBvpxFPBW6AXacj5vwi0Io+1TjB7aXmyRiOGV/nzerUdFTtnbkvgOLIGiOy+B3NN6b8WZVkbubcaWBqW0yuHwVcRJtsbhtiLhGXc4n3iFPR+1gJCHd0rUKF2HKs3MALk4Gh/V1rZqY7iklceEJkMgCHwKZ56vIYiNkwT5uco0UNEpOAedAfRMBAvs1WQuyltdYlDL/9XwPfc6Wg7BHL1wfmq/wFaE4kKtbEXM+Esh9GmLXPcsNrDU71hkhTTl0edmXlp4f8olJjJxas0YerwyVvhIDlG9RSV0PewYIWnLevb9kA9xAGmFbgp4yfyWAqC2ORY=", + "1.3.1": { + "sig": "29b91fcba36fc7cac38837674559c6af1169b3dc54bd57284c3ecf44a1af869d", + "sha256":"BLy7sutkbfkK39sOPPlDdn8DVoorVC7NiEl7LvCqp9Dcnt+6afmszRLFYNu0ipu2krN8HdA2uCqCS2lAlNwOzGzkCGN6RHfobHRqj/HObNrWsvGKSp+Vdt96J76TmrV/gjPGLJOBq5dobBGmN1KJSrkLpWj6IOoEuR4/7WkSJah4XWMIfVlPAZKwP6yNv6OaYqjIy74geKkoCI5/mmwDzUX/T8M3DsdSbm3kuYJ0S3E3mEO2lGH++nxDDPMdA2yjFbBwHU2RFQShbL7jB/AqodSrIU4wOstbRWiF34KUZ/KYG+ZFvwEBshbgDoZQyNbVmFDD86g/sEatnQRpN7juGBWwScgPfoTbdl9y0lf5U85dicOe7+iholAUVprLuPk9Y3NVXoBFM9g9mkqgMVoYoSUgh/BJBnomDgvt1pd4Id/CO26buhSU28fRbQ/c8i+x5zdsfqN7p/64sj/2Xp0HQMwFmc3IotjDEtUTcfI+VGP62pJLMao5vheZ8JU05GXn7ZA7Sojfov9luuoajguukXHEclaxgWKyo0u/ZcowExrKpkegxui6v/3+W/pTv/cSg01CFyJTMTvT9cT7O0bWSdUcxOgpYptV5wVOdglUm/aQscqtDVaVv90ZMNldQ2YVI6wuFTIcUpWNCa/r5oIcGVWWrxBu9uq0jLF3AoTNpLeLJuJL37KacJwNqNDUolG6bwdjvAI1cpcy7fGrzbGE95pPmHpruVfKpLpSQ7tKnT5dV9H2gQz63gl/QzvVGnov0pLUNuJwQQhdvcGZXnVcB96u0i8GBacr4WZVhhJWGWk/u5zx5ganXcXYkodDLN4zpI/aV/TdW2QH2xN8OOmQOZ8yZS9toS0vcIUeoT6eQUg5clJniKtivUv2GSldGzKG9xk3s/2IQlivOX2BxnTSYaP1AkWTUSyJeXcEYbYytLiFrMj875NxeYfKD74SGfxWh//NWyzL7GG/q8G77xw/1s4LorzhSN5jifyPgtSWI4h3WaSu6nfLJHioujAEMDwhkwP9mPmPmBUbTveKWdTZy7YQGGN+4DMJLoGQnx0qBbsIOWfmt+/cjQ72Sx8V7oRzElSohxg9q/oCKkMo4f1JuS1kOGasbPnXjjjuWTX1bOeQ86TjBi+wSt1Y5VgifvyfEdEeDvvwrcm2Cp3NnWYAXhqE5tgVUIYLEtsbHaAtWOv4XSlp8EISd1XIDeTADHNonEEWUWGjNJvylQ05iGUjQny6CObSN3gNbwL0xO/gI1o1+SR4HsM5u2leIKaD5hU/6OdsorVX53b1xPNLyLrDr1uMgfM6lGgCyrs8DY5hVIujIycTSEbaAGpMA2+ovzpa9jO/cZ0/slMMf55Roic2yCQ=", "urls": [ - "https://pixeldrain.com/api/file/h5HoAqxF", - "https://bitbucket.org/blockstorage/repertory-ui/downloads/repertory-ui_1.1.4_win.exe" + "https://bitbucket.org/blockstorage/repertory-ui/downloads/repertory-ui_1.3.2_win.exe" + ] + } + }, + "debian9": { + "1.3.2": { + "sig": "CBEtKUDJwjPrchhNXvzulpfaBWFElDD+Kn9b14oF426IuKncsmqTWUesG3cT/beDk1onaDOhDIchyan6iW/BCdB+sVAuGAoRpm2lJ4lWba7ZPnXP7H10uIjVf1xASwIciP4jpAUPo0bO8hi9kqu1zkF9GeVHHb+SXlLhDP31wN7kHwgb/MeZ95/NqfucumYcwfFOZOnofSKaGQwHpbypy57YzyVCf/NzQDnYC46lcH9xVMmbgodT+y5MIIF0kkSJn0DbSfxLVMWTx1pnZUzJ7J827EKUgAS4d4uLI7ShskS+d84i8rNV9gXgqwYkqDvYbdFi7ArJZB7GJtyZ4VPTqRqGfxwF8rL3K0ml+635DfEXiHN8MbTuqwLHD2giChOfsdAAV4ngJ8xg7+Th8dqpgC92GXoOjNK7GSAyrOFsQ7xeqdVOBZMNk/dHVAb9eCTbPIsOjGFTAzOk8n3roM8naDUOq7PefUj1Jb2EGVhWnwS2ngvhNfRggZmmr3l9IElddaHro0JpnubsFmiAa+akV0P8VLb1jjpIJRfr2CIEnPTQbT4UQ1DdBitgkWiPbagTp8BQF1YGcVZ8jc9mbOxmF46z0MyuMQZjDHw2Vai0uPsoLIJHhy3I7nJqsnEw6gQX/l1VGj9wPHeaqMgGYGFykFfvVssh0CH45tUCdWL6Q9Hgx8+yLw0Lky/HIGMQc0qZUM9ute/9Buifd9cOK8+S5PaA0Zg0G/pIY6fThtO86wKJQnoPeiuBkJ9yXc20ZGrfb39Qnf2nZxrPyVl2iQJlven6CDBxc88henxzvxK61bXUynK8zHVuoIAC7ejWZEbPOqDV3DOOSVDz1+eq1MU2KZ4JmaLipzbdy/y+ph1TnCGwdL9R3s+xLYSaxA+ybhQVNXHhQ7+eZD6CWXytaIVYe8giL1ki8oN/18Bm1B2dVxCZ4KKbAToFpBOGvW+w8JFAC5nBK5aj2BGWEocyWQ1XIJmqVBd8RSOMYVYjQOhVnIvyJxOqvnrLUoRzJruj8R/riuCSMnfq17ykpjCzoNzIjvimCPyAib9kdWx7M8dyOS9Sls2sMLwJvDcsGi/FfuGqBmV2v28XagRZz70iypqNaIUrj4CShfz8e110su3BtLQHr1O6yffxy+whbB7w+ogZ6gz86AZ/63Zz6xbLIk4wuNx1UL/ZuRMGq4xOW/7zRpOYYSe/h98YFd9/UTcoi8Osjl+o1eVup6YWVeDvOG69uqwfID8XHivJnEV2NVFx8fbb6fHSrMg/QbjSngdyQ3b+5rWiZG01DGCDB5RFOvEKY24qrXXWQGAx+JXbj+/7xYWts+/Fv7hSqvpvf7H8aVCoOKXGtjJiy+K/9tAJJLQDAzo=", + "sha256": "a8b9bff91d0f0685041737cfa40b4bc8ef765d24419104f3dd90f977023e7858", + "urls": [ + "https://bitbucket.org/blockstorage/repertory-ui/downloads/repertory-ui_1.3.2_linux_x86_64.AppImage" + ] + } + }, + "debian10": { + "1.3.2": { + "sig": "CBEtKUDJwjPrchhNXvzulpfaBWFElDD+Kn9b14oF426IuKncsmqTWUesG3cT/beDk1onaDOhDIchyan6iW/BCdB+sVAuGAoRpm2lJ4lWba7ZPnXP7H10uIjVf1xASwIciP4jpAUPo0bO8hi9kqu1zkF9GeVHHb+SXlLhDP31wN7kHwgb/MeZ95/NqfucumYcwfFOZOnofSKaGQwHpbypy57YzyVCf/NzQDnYC46lcH9xVMmbgodT+y5MIIF0kkSJn0DbSfxLVMWTx1pnZUzJ7J827EKUgAS4d4uLI7ShskS+d84i8rNV9gXgqwYkqDvYbdFi7ArJZB7GJtyZ4VPTqRqGfxwF8rL3K0ml+635DfEXiHN8MbTuqwLHD2giChOfsdAAV4ngJ8xg7+Th8dqpgC92GXoOjNK7GSAyrOFsQ7xeqdVOBZMNk/dHVAb9eCTbPIsOjGFTAzOk8n3roM8naDUOq7PefUj1Jb2EGVhWnwS2ngvhNfRggZmmr3l9IElddaHro0JpnubsFmiAa+akV0P8VLb1jjpIJRfr2CIEnPTQbT4UQ1DdBitgkWiPbagTp8BQF1YGcVZ8jc9mbOxmF46z0MyuMQZjDHw2Vai0uPsoLIJHhy3I7nJqsnEw6gQX/l1VGj9wPHeaqMgGYGFykFfvVssh0CH45tUCdWL6Q9Hgx8+yLw0Lky/HIGMQc0qZUM9ute/9Buifd9cOK8+S5PaA0Zg0G/pIY6fThtO86wKJQnoPeiuBkJ9yXc20ZGrfb39Qnf2nZxrPyVl2iQJlven6CDBxc88henxzvxK61bXUynK8zHVuoIAC7ejWZEbPOqDV3DOOSVDz1+eq1MU2KZ4JmaLipzbdy/y+ph1TnCGwdL9R3s+xLYSaxA+ybhQVNXHhQ7+eZD6CWXytaIVYe8giL1ki8oN/18Bm1B2dVxCZ4KKbAToFpBOGvW+w8JFAC5nBK5aj2BGWEocyWQ1XIJmqVBd8RSOMYVYjQOhVnIvyJxOqvnrLUoRzJruj8R/riuCSMnfq17ykpjCzoNzIjvimCPyAib9kdWx7M8dyOS9Sls2sMLwJvDcsGi/FfuGqBmV2v28XagRZz70iypqNaIUrj4CShfz8e110su3BtLQHr1O6yffxy+whbB7w+ogZ6gz86AZ/63Zz6xbLIk4wuNx1UL/ZuRMGq4xOW/7zRpOYYSe/h98YFd9/UTcoi8Osjl+o1eVup6YWVeDvOG69uqwfID8XHivJnEV2NVFx8fbb6fHSrMg/QbjSngdyQ3b+5rWiZG01DGCDB5RFOvEKY24qrXXWQGAx+JXbj+/7xYWts+/Fv7hSqvpvf7H8aVCoOKXGtjJiy+K/9tAJJLQDAzo=", + "sha256": "a8b9bff91d0f0685041737cfa40b4bc8ef765d24419104f3dd90f977023e7858", + "urls": [ + "https://bitbucket.org/blockstorage/repertory-ui/downloads/repertory-ui_1.3.2_linux_x86_64.AppImage" ] } } }, "Versions": { - "arch": [ - "1.1.4" - ], "centos7": [ - "1.1.4" + "1.3.2" ], "darwin": [ - "1.1.4" - ], - "debian9": [ - "1.1.4" - ], - "debian10": [ - "1.1.4" - ], - "fedora28": [ - "1.1.4" - ], - "fedora29": [ - "1.1.4" - ], - "fedora30": [ - "1.1.4" - ], - "fedora31": [ - "1.1.4" + "1.3.2" ], "linux": [ "unavailable" ], - "opensuse15": [ - "1.1.4" - ], - "opensuse15.1": [ - "1.1.4" - ], "solus": [ - "1.1.4" - ], - "tumbleweed": [ - "1.1.4" - ], - "ubuntu18.04": [ - "1.1.4" - ], - "ubuntu18.10": [ - "1.1.4" - ], - "ubuntu19.04": [ - "1.1.4" - ], - "ubuntu19.10": [ - "1.1.4" + "1.3.2" ], "unknown": [ "unavailable" ], "win32": [ - "1.1.4" + "1.3.2" ], - "centos8": [ - "1.1.4" + "debian9": [ + "1.3.2" + ], + "debian10": [ + "1.3.2" ] } } diff --git a/src/App.js b/src/App.jsx similarity index 59% rename from src/App.js rename to src/App.jsx index e2cdd81..ec9708e 100644 --- a/src/App.js +++ b/src/App.jsx @@ -11,8 +11,13 @@ import InfoDetails from './components/InfoDetails/InfoDetails'; import IPCContainer from './containers/IPCContainer/IPCContainer'; import Loading from './components/UI/Loading/Loading'; import MountItems from './containers/MountItems/MountItems'; +import NewReleases from './components/NewReleases/NewReleases'; import {notifyError} from './redux/actions/error_actions'; import Reboot from './components/Reboot/Reboot'; +import { + setDismissNewReleasesAvailable, + setNewReleasesAvailable +} from './redux/actions/release_version_actions'; import ReleaseVersionDisplay from './components/ReleaseVersionDisplay/ReleaseVersionDisplay'; import { displaySelectAppPlatform, @@ -28,9 +33,13 @@ import { } from './redux/actions/release_version_actions'; import YesNo from './components/YesNo/YesNo'; import {createModalConditionally} from './utils'; +import SkynetImport from './containers/SkynetImport/SkynetImport'; +import ApplicationBusy from './components/ApplicationBusy/ApplicationBusy'; +import SkynetExport from './containers/SkynetExport/SkynetExport'; +import PinnedManager from './containers/PinnedManager/PinnedManager'; const Constants = require('./constants'); -const Scheduler = require('node-schedule'); +const Scheduler = require('node-cron'); class App extends IPCContainer { componentDidMount() { @@ -46,7 +55,7 @@ class App extends IPCContainer { } }; detectUpgrades(); - this.scheduledUpdateJob = Scheduler.scheduleJob('23 11 * * *', detectUpgrades); + this.scheduledUpdateJob = Scheduler.schedule('23 11 * * *', detectUpgrades); } componentDidUpdate(prevProps) { @@ -54,15 +63,15 @@ class App extends IPCContainer { (prevProps.ReleaseVersion !== this.props.ReleaseVersion) || (prevProps.VersionLookup !== this.props.VersionLookup)) { this.props.saveState(); - } else if (Object.keys(this.props.ProviderState).filter(k=> { - return this.props.ProviderState[k] !== prevProps.ProviderState[k]; - }).length > 0) { + } else if (Object.keys(this.props.ProviderState).filter(k => { + return this.props.ProviderState[k] !== prevProps.ProviderState[k]; + }).length > 0) { this.props.saveState(); } } componentWillUnmount() { - Scheduler.cancelJob(this.scheduledUpdateJob); + this.scheduledUpdateJob.stop(); super.componentWillUnmount(); } @@ -72,6 +81,15 @@ class App extends IPCContainer { this.props.VersionLookup[Constants.RELEASE_TYPES[this.props.Release]][this.props.ReleaseVersion]; }; + handleUpgradeIconClicked = () => { + if (this.props.UpgradeAvailable) { + this.props.setDismissUIUpgrade(false) + } else if (this.props.NewReleasesAvailable2.length > 0) { + this.props.setNewReleasesAvailable(this.props.NewReleasesAvailable2); + this.props.setDismissNewReleasesAvailable(false); + } + }; + render() { const selectedVersion = this.getSelectedVersion(); @@ -89,13 +107,30 @@ class App extends IPCContainer { !missingDependencies && !this.props.InstallActive; - const remoteSupported = this.props.LocationsLookup[selectedVersion] && + const remoteSupported = this.props.LocationsLookup[selectedVersion] && this.props.LocationsLookup[selectedVersion].supports_remote; + const s3Supported = this.props.LocationsLookup[selectedVersion] && + this.props.LocationsLookup[selectedVersion].s3_support; + + const skynetSupported = this.props.LocationsLookup[selectedVersion] && + this.props.LocationsLookup[selectedVersion].skynet_support; + + const scPrimeSupported = this.props.LocationsLookup[selectedVersion] && + this.props.LocationsLookup[selectedVersion].siaprime_support; + + const siaSupported = this.props.LocationsLookup[selectedVersion] && + this.props.LocationsLookup[selectedVersion].sia_support; + const showConfig = !missingDependencies && + !this.props.DisplayPinnedManager && this.props.DisplayConfiguration && !this.props.RebootRequired; + const showPinnedManager = !missingDependencies && + !this.props.RebootRequired && + this.props.DisplayPinnedManager; + const showUpgrade = this.props.UpgradeAvailable && !this.props.DisplayError && !showConfig && @@ -111,15 +146,61 @@ class App extends IPCContainer { !this.props.DismissDependencies && this.props.AllowMount; - const configDisplay = createModalConditionally(showConfig, ); + const showNewReleases = !showConfig && + !this.props.DisplayConfirmYesNo && + !showDependencies && + !this.props.DownloadActive && + !this.props.DisplayError && + !this.props.DisplayInfo && + !this.props.InstallActive && + !this.props.RebootRequired && + !this.props.DisplaySelectAppPlatform && + !showUpgrade && + !this.props.DismissNewReleasesAvailable && + (this.props.NewReleasesAvailable.length > 0); + + const showSkynetImport = !showConfig && + !showDependencies && + !this.props.DownloadActive && + !showNewReleases && + !this.props.RebootRequired && + !this.props.DisplaySelectAppPlatform && + !showUpgrade && + this.props.DisplayImport; + + const showSkynetExport = !showConfig && + !showDependencies && + !this.props.DownloadActive && + !showNewReleases && + !this.props.RebootRequired && + !this.props.DisplaySelectAppPlatform && + !showUpgrade && + this.props.DisplayExport; + + const configDisplay = createModalConditionally(showConfig, ); + const pinnedManagerDisplay = createModalConditionally(showPinnedManager, ) const confirmDisplay = createModalConditionally(this.props.DisplayConfirmYesNo, ); - const dependencyDisplay = createModalConditionally(showDependencies, ); - const downloadDisplay = createModalConditionally(this.props.DownloadActive, ); + const dependencyDisplay = createModalConditionally(showDependencies, + , false, this.props.InstallActive); + const downloadDisplay = createModalConditionally(this.props.DownloadActive, + , false, true); const errorDisplay = createModalConditionally(this.props.DisplayError, , true); const infoDisplay = createModalConditionally(this.props.DisplayInfo, , true); - const rebootDisplay = createModalConditionally(this.props.RebootRequired, ); - const selectAppPlatformDisplay = createModalConditionally(this.props.DisplaySelectAppPlatform, ); + const newReleasesDisplay = createModalConditionally(showNewReleases, ); + const rebootDisplay = createModalConditionally(this.props.RebootRequired, ); + const selectAppPlatformDisplay = createModalConditionally(this.props.DisplaySelectAppPlatform, + ); const upgradeDisplay = createModalConditionally(showUpgrade, ); + const importDisplay = createModalConditionally(showSkynetImport, ); + const exportDisplay = createModalConditionally(showSkynetExport, ) + const appBusyDisplay = createModalConditionally(this.props.AppBusy, + , false, true, this.props.AppBusyTransparent); let mainContent = []; if (this.props.DisplaySelectAppPlatform || !this.props.AppReady) { @@ -142,7 +223,18 @@ class App extends IPCContainer { mainContent.push(( - + + + )); + } else if (selectedVersion !== 'unavailable') { + mainContent.push(( + + )); } @@ -162,12 +254,13 @@ class App extends IPCContainer { textAlign={'center'} type={'Heading1'}/> this.props.setDismissUIUpgrade(false)} + available={this.props.UpgradeAvailable || (this.props.NewReleasesAvailable2.length > 0)} + newReleases={!this.props.UpgradeAvailable && (this.props.NewReleasesAvailable2.length > 0)} + clicked={this.handleUpgradeIconClicked} col={dimensions => dimensions.columns - 6} colSpan={5} row={1} - rowSpan={remain=>remain - 1}/> + rowSpan={remain => remain - 1}/> @@ -175,14 +268,19 @@ class App extends IPCContainer { {mainContent} + {importDisplay} + {exportDisplay} + {newReleasesDisplay} {selectAppPlatformDisplay} {dependencyDisplay} {upgradeDisplay} + {pinnedManagerDisplay} {configDisplay} {infoDisplay} {confirmDisplay} {downloadDisplay} {rebootDisplay} + {appBusyDisplay} {errorDisplay} ); @@ -194,19 +292,27 @@ const mapStateToProps = state => { AllowDownload: state.download.AllowDownload, AllowMount: state.common.AllowMount, AppPlatform: state.common.AppPlatform, + AppBusy: state.common.AppBusy, + AppBusyTransparent: state.common.AppBusyTransparent, AppReady: state.common.AppReady, DismissDependencies: state.install.DismissDependencies, DisplayConfiguration: state.mounts.DisplayConfiguration, DisplayConfirmYesNo: state.common.DisplayConfirmYesNo, DisplayError: state.error.DisplayError, + DisplayExport: state.skynet.DisplayExport, + DisplayImport: state.skynet.DisplayImport, DisplayInfo: state.error.DisplayInfo, + DisplayPinnedManager: state.pinned.DisplayPinnedManager, DisplaySelectAppPlatform: state.common.DisplaySelectAppPlatform, + DismissNewReleasesAvailable: state.relver.DismissNewReleasesAvailable, DownloadActive: state.download.DownloadActive, InstallActive: state.install.InstallActive, InstalledVersion: state.relver.InstalledVersion, LocationsLookup: state.relver.LocationsLookup, MissingDependencies: state.install.MissingDependencies, MountsBusy: state.mounts.MountsBusy, + NewReleasesAvailable: state.relver.NewReleasesAvailable, + NewReleasesAvailable2: state.relver.NewReleasesAvailable2, Platform: state.common.Platform, ProviderState: state.mounts.ProviderState, RebootRequired: state.common.RebootRequired, @@ -222,9 +328,11 @@ const mapStateToProps = state => { const mapDispatchToProps = dispatch => { return { displaySelectAppPlatform: display => dispatch(displaySelectAppPlatform(display)), - loadReleases: ()=> dispatch(loadReleases()), + loadReleases: () => dispatch(loadReleases()), notifyError: (msg, critical, callback) => dispatch(notifyError(msg, critical, callback)), saveState: () => dispatch(saveState()), + setDismissNewReleasesAvailable: dismiss => dispatch(setDismissNewReleasesAvailable(dismiss)), + setNewReleasesAvailable: items => dispatch(setNewReleasesAvailable(items)), setDismissUIUpgrade: dismiss => dispatch(setDismissUIUpgrade(dismiss)), }; }; diff --git a/src/assets/images/release_available.png b/src/assets/images/release_available.png deleted file mode 100644 index 4dbba4c..0000000 Binary files a/src/assets/images/release_available.png and /dev/null differ diff --git a/src/assets/settings.json b/src/assets/settings.json index d889e31..bbe24f0 100644 --- a/src/assets/settings.json +++ b/src/assets/settings.json @@ -30,12 +30,19 @@ "EventLevel": "Internally, events are fired during certain operations. This setting determines which events should be logged to repertory.log. Valid values are Error, Warn, Normal, Debug, and Verbose.", "EvictionDelaySeconds": "Number of seconds to wait after all file handles are closed before allowing file to be evicted from cache.", "EvictionDelayMinutes": "Number of minutes to wait after all file handles are closed before allowing file to be evicted from cache.", + "EvictionUsesAccessedTime": "Use oldest accessed time instead of oldest modified time when evicting files.", "MaxCacheSizeBytes": "This value specifies the maximum amount of local space to consume before files are removed from cache. EnableMaxCacheSize must also be set to true for this value to take affect.", + "MaxUploadCount": "Maximum number of simultaneous uploads.", "MinimumRedundancy": "Files are elected for removal once this value has been reached. Be aware that this value cannot be set to less than 1.5x.", "OnlineCheckRetrySeconds": "Number of seconds to wait for Sia/ScPrime daemon to become available/connectable.", "OrphanedFileRetentionDays": "Repertory attempts to keep modifications between Sia-UI and the mounted location in sync as much as possible. In the event a file is removed from Sia-UI, it will be marked as orphaned in Repertory and moved into an 'orphaned' directory within Repertory's data directory. This setting specifies the number of days this file is retained before final deletion.", "PreferredDownloadType": "Repertory supports 3 download modes for reading files that are not cached locally: full file allocation, ring buffer mode and direct mode.\n\nFull file allocation mode pre-allocates the entire file prior to downloading. This mode is required for writes but also ensures the best performance when reading data.\n\nRing buffer mode utilizes a fixed size file buffer to enable a reasonable amount of seeking. This alleviates the need to fully allocate a file. By default, it is 512MiB. When the buffer is full, it attempts to maintain the ability to seek 50% ahead or behind the current read location without the need to re-download data from Sia/ScPrime.\n\nDirect mode utilizes no disk space. All data is read directly from Sia/ScPrime.\n\nPreferred download type modes are:\n\nFallback - If there isn't enough local space to allocate the full file, ring buffer mode is used. If there isn't enough local space to create the ring buffer's file, then direct mode is used.\nRingBuffer - Full file allocation is always bypassed; however, if there isn't enough space to create the ring buffer's file, then direct mode will be chosen.\nDirect - All files will be read directly from Sia/ScPrime.", "ReadAheadCount": "This value specifies the number of read-ahead chunks to use when downloading a file. This is a per-open file setting and will result in the creation of an equal number of threads.", + "RetryReadCount": "Number of times to retry a failed read operation. A 1 second delay is used between retries. This setting applies to downloads only.", "RingBufferFileSize": "The size of the ring buffer file in MiB. Default is 512. Valid values are: 64, 128, 256, 512, 1024." + }, + "SkynetConfig": { + "EncryptionToken": "Encryption token used to encrypt files in Skynet. Set this value once as it applies to all files stored.", + "PortalList": "List of Skynet portals used to load-balance uploads and downloads." } } diff --git a/src/components/ApplicationBusy/ApplicationBusy.js b/src/components/ApplicationBusy/ApplicationBusy.js new file mode 100644 index 0000000..dc28d08 --- /dev/null +++ b/src/components/ApplicationBusy/ApplicationBusy.js @@ -0,0 +1,21 @@ +import React from 'react'; +import Box from '../UI/Box/Box'; +import Loader from 'react-loader-spinner'; +import Text from '../UI/Text/Text'; + +export default ({title}) => { + return ( + + +
+ +
+
+ ); +} diff --git a/src/components/DependencyList/Dependency/Dependency.js b/src/components/DependencyList/Dependency/Dependency.js index f869874..71bc437 100644 --- a/src/components/DependencyList/Dependency/Dependency.js +++ b/src/components/DependencyList/Dependency/Dependency.js @@ -22,9 +22,9 @@ export default connect(mapStateToProps)(props => { {props.AllowDownload ? - {props.onDownload(); return false;}}>Install : + {props.onDownload(); return false;}}>Install : 'Installing...'} @@ -32,4 +32,4 @@ export default connect(mapStateToProps)(props => { ); -}); \ No newline at end of file +}); diff --git a/src/components/DependencyList/DependencyList.js b/src/components/DependencyList/DependencyList.js index 43d35af..ea4054d 100644 --- a/src/components/DependencyList/DependencyList.js +++ b/src/components/DependencyList/DependencyList.js @@ -31,15 +31,13 @@ export default connect(mapStateToProps, mapDispatchToProps)(props => { ); }); - let dismissDisplay; - if (props.AllowDismissDependencies) { - dismissDisplay = ( -
- props.setDismissDependencies(true)}>X - -
); - } + const dismissDisplay = ( + + ); return ( @@ -50,4 +48,4 @@ export default connect(mapStateToProps, mapDispatchToProps)(props => { {items} ); -}); \ No newline at end of file +}); diff --git a/src/components/InfoDetails/InfoDetails.css b/src/components/InfoDetails/InfoDetails.css index 5034a36..2dc812e 100644 --- a/src/components/InfoDetails/InfoDetails.css +++ b/src/components/InfoDetails/InfoDetails.css @@ -6,6 +6,14 @@ .InfoDetailsContent { max-height: 60vh; min-width: 80vw; + max-width: 90vw; overflow-y: auto; + overflow-x: auto; + white-space: pre-line; margin-bottom: var(--default_spacing); -} \ No newline at end of file +} + +.InfoDetailsContent.Alternate { + white-space: pre; + hyphens: none; +} diff --git a/src/components/InfoDetails/InfoDetails.js b/src/components/InfoDetails/InfoDetails.js index afc6f04..aaf52fc 100644 --- a/src/components/InfoDetails/InfoDetails.js +++ b/src/components/InfoDetails/InfoDetails.js @@ -18,13 +18,50 @@ const mapDispatchToProps = dispatch => { }; export default connect(mapStateToProps, mapDispatchToProps)(props => { + let msg = props.InfoMessage.message; + const classes = ['InfoDetailsContent']; + + let changed = true; + let copyable = false; + while (changed) { + changed = false; + if (msg.startsWith('!alternate!')) { + classes.push('Alternate'); + msg = msg.substr('!alternate!'.length); + changed = true; + } + if (msg.startsWith('!copyable!')) { + classes.push('Copyable'); + msg = msg.substr('!copyable!'.length); + copyable = changed = true; + } + } + + const scrollToTop = textArea => { + if (!textArea.firstClick) { + textArea.firstClick = true; + textArea.scrollTop = 0; + textArea.setSelectionRange(0, 0); + } + }; + return (

{props.InfoMessage.title}

-
-

{props.InfoMessage.message}

+
+ { + copyable ? ( +