mirror of
https://github.com/LBRYFoundation/lbry-desktop.git
synced 2025-09-02 18:25:12 +00:00
Merge branch 'yarn'
* yarn: forgot to edit appveyor build move keytar into main app process, so webpack doesnt package it and fuck up the keytar.node path switch to yarn devtron
This commit is contained in:
commit
ada379f873
14 changed files with 8961 additions and 44 deletions
20
app/main.js
20
app/main.js
|
@ -3,13 +3,21 @@ const url = require('url');
|
||||||
const isDebug = process.env.NODE_ENV === 'development'
|
const isDebug = process.env.NODE_ENV === 'development'
|
||||||
|
|
||||||
if (isDebug) {
|
if (isDebug) {
|
||||||
require('electron-debug')({showDevTools: true});
|
try
|
||||||
|
{
|
||||||
|
require('electron-debug')({showDevTools: true});
|
||||||
|
}
|
||||||
|
catch (err) // electron-debug is in devDependencies, but some
|
||||||
|
{
|
||||||
|
console.error(err)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const path = require('path');
|
const path = require('path');
|
||||||
const jayson = require('jayson');
|
const jayson = require('jayson');
|
||||||
const semver = require('semver');
|
const semver = require('semver');
|
||||||
const https = require('https');
|
const https = require('https');
|
||||||
|
const keytar = require('keytar');
|
||||||
// tree-kill has better cross-platform handling of
|
// tree-kill has better cross-platform handling of
|
||||||
// killing a process. child-process.kill was unreliable
|
// killing a process. child-process.kill was unreliable
|
||||||
const kill = require('tree-kill');
|
const kill = require('tree-kill');
|
||||||
|
@ -389,3 +397,13 @@ if (process.platform == 'darwin') {
|
||||||
win.webContents.send('open-uri-requested', denormalizeUri(process.argv[1]));
|
win.webContents.send('open-uri-requested', denormalizeUri(process.argv[1]));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ipcMain.on('get-auth-token', (event) => {
|
||||||
|
keytar.getPassword("LBRY", "auth_token").then(token => {
|
||||||
|
event.sender.send('auth-token-response', token ? token.toString().trim() : null)
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
ipcMain.on('set-auth-token', (event, token) => {
|
||||||
|
keytar.setPassword("LBRY", "auth_token", token ? token.toString().trim() : null);
|
||||||
|
});
|
|
@ -11,8 +11,12 @@
|
||||||
"electron-dl": "^1.6.0",
|
"electron-dl": "^1.6.0",
|
||||||
"install": "^0.8.7",
|
"install": "^0.8.7",
|
||||||
"jayson": "^2.0.2",
|
"jayson": "^2.0.2",
|
||||||
|
"keytar": "^4.0.3",
|
||||||
"npm": "^4.2.0",
|
"npm": "^4.2.0",
|
||||||
"semver": "^5.3.0",
|
"semver": "^5.3.0",
|
||||||
"tree-kill": "^1.1.0"
|
"tree-kill": "^1.1.0"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"electron-rebuild": "^1.5.11"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
2016
app/yarn.lock
Normal file
2016
app/yarn.lock
Normal file
File diff suppressed because it is too large
Load diff
|
@ -1,30 +1,34 @@
|
||||||
pip install -r build\requirements.txt
|
pip install -r build\requirements.txt
|
||||||
python build\set_version.py
|
python build\set_version.py
|
||||||
|
|
||||||
|
|
||||||
# Get the latest stable version of Node.js or io.js
|
# Get the latest stable version of Node.js or io.js
|
||||||
Install-Product node $env:nodejs_version
|
Install-Product node $env:nodejs_version
|
||||||
|
npm install -g yarn
|
||||||
|
yarn install
|
||||||
|
|
||||||
# install node modules
|
|
||||||
npm install
|
# do app
|
||||||
cd app
|
cd app
|
||||||
npm install
|
yarn install
|
||||||
cd ..
|
|
||||||
|
|
||||||
# build ui
|
|
||||||
cd ui
|
|
||||||
npm install
|
|
||||||
|
|
||||||
# necessary to ensure native Node modules (e.g. keytar) are built against the correct version of Node)
|
# necessary to ensure native Node modules (e.g. keytar) are built against the correct version of Node)
|
||||||
# yes, it needs to be run twice. it fails the first time, not sure why
|
# yes, it needs to be run twice. it fails the first time, not sure why
|
||||||
node_modules\.bin\electron-rebuild
|
node_modules\.bin\electron-rebuild
|
||||||
node_modules\.bin\electron-rebuild
|
node_modules\.bin\electron-rebuild
|
||||||
|
cd ..
|
||||||
|
|
||||||
|
|
||||||
|
# build ui
|
||||||
|
cd ui
|
||||||
|
yarn install
|
||||||
|
npm rebuild node-sass
|
||||||
node extractLocals.js
|
node extractLocals.js
|
||||||
node_modules\.bin\node-sass --output dist\css --sourcemap=none scss\
|
node_modules\.bin\node-sass --output dist\css --sourcemap=none scss\
|
||||||
node_modules\.bin\webpack
|
node_modules\.bin\webpack
|
||||||
Copy-Item dist ..\app\ -recurse
|
Copy-Item dist ..\app\ -recurse
|
||||||
cd ..
|
cd ..
|
||||||
|
|
||||||
|
|
||||||
# get daemon and cli executable
|
# get daemon and cli executable
|
||||||
$daemon_url = (Get-Content build\DAEMON_URL -Raw).replace("OSNAME", "windows")
|
$daemon_url = (Get-Content build\DAEMON_URL -Raw).replace("OSNAME", "windows")
|
||||||
Invoke-WebRequest -Uri $daemon_url -OutFile daemon.zip
|
Invoke-WebRequest -Uri $daemon_url -OutFile daemon.zip
|
||||||
|
@ -32,6 +36,7 @@ Expand-Archive daemon.zip -DestinationPath app\dist\
|
||||||
dir app\dist\ # verify that daemon binary is there
|
dir app\dist\ # verify that daemon binary is there
|
||||||
rm daemon.zip
|
rm daemon.zip
|
||||||
|
|
||||||
|
|
||||||
# build electron app
|
# build electron app
|
||||||
node_modules\.bin\build -p never
|
node_modules\.bin\build -p never
|
||||||
$binary_name = Get-ChildItem -Path dist -Filter '*.exe' -Name
|
$binary_name = Get-ChildItem -Path dist -Filter '*.exe' -Name
|
||||||
|
@ -39,9 +44,11 @@ $new_name = $binary_name -replace '^LBRY Setup (.*)\.exe$', 'LBRY_$1.exe'
|
||||||
Rename-Item -Path "dist\$binary_name" -NewName $new_name
|
Rename-Item -Path "dist\$binary_name" -NewName $new_name
|
||||||
dir dist # verify that binary was built/named correctly
|
dir dist # verify that binary was built/named correctly
|
||||||
|
|
||||||
|
|
||||||
# sign binary
|
# sign binary
|
||||||
nuget install secure-file -ExcludeVersion
|
nuget install secure-file -ExcludeVersion
|
||||||
secure-file\tools\secure-file -decrypt build\lbry2.pfx.enc -secret "$env:pfx_key"
|
secure-file\tools\secure-file -decrypt build\lbry2.pfx.enc -secret "$env:pfx_key"
|
||||||
& ${env:SIGNTOOL_PATH} sign /f build\lbry2.pfx /p "$env:key_pass" /tr http://tsa.starfieldtech.com /td SHA256 /fd SHA256 dist\*.exe
|
& ${env:SIGNTOOL_PATH} sign /f build\lbry2.pfx /p "$env:key_pass" /tr http://tsa.starfieldtech.com /td SHA256 /fd SHA256 dist\*.exe
|
||||||
|
|
||||||
|
|
||||||
python build\upload_assets.py
|
python build\upload_assets.py
|
|
@ -45,19 +45,12 @@ if [ "$FULL_BUILD" == "true" ]; then
|
||||||
python "$BUILD_DIR/set_version.py"
|
python "$BUILD_DIR/set_version.py"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
libsecret="libsecret-1-dev"
|
|
||||||
if $LINUX && [ -z "$(dpkg-query --show --showformat='${Status}\n' "$libsecret" 2>/dev/null | grep "install ok installed")" ]; then
|
|
||||||
# this is needed for keytar, which does secure password/token management
|
|
||||||
sudo apt-get install --no-install-recommends -y "$libsecret"
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
[ -d "$ROOT/dist" ] && rm -rf "$ROOT/dist"
|
[ -d "$ROOT/dist" ] && rm -rf "$ROOT/dist"
|
||||||
mkdir -p "$ROOT/dist"
|
mkdir -p "$ROOT/dist"
|
||||||
[ -d "$ROOT/app/dist" ] && rm -rf "$ROOT/app/dist"
|
[ -d "$ROOT/app/dist" ] && rm -rf "$ROOT/app/dist"
|
||||||
mkdir -p "$ROOT/app/dist"
|
mkdir -p "$ROOT/app/dist"
|
||||||
|
|
||||||
npm install
|
yarn install
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -67,16 +60,8 @@ npm install
|
||||||
|
|
||||||
(
|
(
|
||||||
cd "$ROOT/ui"
|
cd "$ROOT/ui"
|
||||||
npm install
|
yarn install
|
||||||
|
npm rebuild node-sass
|
||||||
# necessary to ensure native Node modules (e.g. keytar) are built against the correct version of Node)
|
|
||||||
# yes, it needs to be run twice. it fails the first time, not sure why
|
|
||||||
set +e
|
|
||||||
# DEBUG=electron-rebuild node_modules/.bin/electron-rebuild .
|
|
||||||
node_modules/.bin/electron-rebuild "$ROOT/ui"
|
|
||||||
set -e
|
|
||||||
node_modules/.bin/electron-rebuild "$ROOT/ui"
|
|
||||||
|
|
||||||
node extractLocals.js
|
node extractLocals.js
|
||||||
node_modules/.bin/node-sass --output dist/css --sourcemap=none scss/
|
node_modules/.bin/node-sass --output dist/css --sourcemap=none scss/
|
||||||
node_modules/.bin/webpack
|
node_modules/.bin/webpack
|
||||||
|
@ -105,7 +90,15 @@ rm "$BUILD_DIR/daemon.zip"
|
||||||
|
|
||||||
(
|
(
|
||||||
cd "$ROOT/app"
|
cd "$ROOT/app"
|
||||||
npm install
|
yarn install
|
||||||
|
|
||||||
|
# necessary to ensure native Node modules (e.g. keytar) are built against the correct version of Node)
|
||||||
|
# yes, it needs to be run twice. it fails the first time, not sure why
|
||||||
|
set +e
|
||||||
|
# DEBUG=electron-rebuild node_modules/.bin/electron-rebuild .
|
||||||
|
node_modules/.bin/electron-rebuild "$ROOT/app"
|
||||||
|
set -e
|
||||||
|
node_modules/.bin/electron-rebuild "$ROOT/app"
|
||||||
)
|
)
|
||||||
|
|
||||||
if [ "$FULL_BUILD" == "true" ]; then
|
if [ "$FULL_BUILD" == "true" ]; then
|
||||||
|
|
|
@ -41,7 +41,7 @@ set -eu
|
||||||
|
|
||||||
if $LINUX; then
|
if $LINUX; then
|
||||||
INSTALL="$SUDO apt-get install --no-install-recommends -y"
|
INSTALL="$SUDO apt-get install --no-install-recommends -y"
|
||||||
$INSTALL build-essential libssl-dev libffi-dev libgmp3-dev python2.7-dev
|
$INSTALL build-essential libssl-dev libffi-dev libgmp3-dev python2.7-dev libsecret-1-dev
|
||||||
elif $OSX && ! cmd_exists brew ; then
|
elif $OSX && ! cmd_exists brew ; then
|
||||||
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
|
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
|
||||||
fi
|
fi
|
||||||
|
@ -88,6 +88,17 @@ if ! cmd_exists node; then
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if ! cmd_exists yarn; then
|
||||||
|
if $LINUX; then
|
||||||
|
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | $SUDO apt-key add -
|
||||||
|
echo "deb https://dl.yarnpkg.com/debian/ stable main" | $SUDO tee /etc/apt/sources.list.d/yarn.list
|
||||||
|
$SUDO apt-get update
|
||||||
|
$SUDO apt-get install yarn
|
||||||
|
elif $OSX; then
|
||||||
|
brew install yarn
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
if ! cmd_exists unzip; then
|
if ! cmd_exists unzip; then
|
||||||
if $LINUX; then
|
if $LINUX; then
|
||||||
$INSTALL unzip
|
$INSTALL unzip
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
GitPython==2.1.1
|
|
||||||
PyGithub==1.32
|
PyGithub==1.32
|
||||||
requests[security]==2.13.0
|
requests[security]==2.13.0
|
||||||
PyInstaller==3.2.1
|
|
||||||
uritemplate==3.0.0
|
uritemplate==3.0.0
|
||||||
git+https://github.com/lbryio/bumpversion.git
|
git+https://github.com/lbryio/bumpversion.git
|
||||||
boto3==1.4.4
|
boto3==1.4.4
|
|
@ -56,6 +56,7 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
"devtron": "^1.4.0",
|
||||||
"electron": "^1.4.15",
|
"electron": "^1.4.15",
|
||||||
"electron-builder": "^11.7.0",
|
"electron-builder": "^11.7.0",
|
||||||
"electron-debug": "^1.1.0"
|
"electron-debug": "^1.1.0"
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
## Development Setup
|
## Development Setup
|
||||||
|
|
||||||
- Install node and npm (linux users: [use this](https://github.com/nodesource/distributions). if that doesn't work, [this gist may be useful](https://gist.github.com/isaacs/579814))
|
- Install node and npm (linux users: [use this](https://github.com/nodesource/distributions). if that doesn't work, [this gist may be useful](https://gist.github.com/isaacs/579814))
|
||||||
- Run `./watch.sh` (this will `npm install` dependencies)
|
- `npm install -g yarn` (or see https://yarnpkg.com/en/docs/install)
|
||||||
|
- Run `./watch.sh` (this will `yarn install` dependencies)
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
import lbry from "./lbry.js";
|
import lbry from "./lbry.js";
|
||||||
|
|
||||||
const querystring = require("querystring");
|
const querystring = require("querystring");
|
||||||
const keytar = require("keytar");
|
const { ipcRenderer } = require("electron");
|
||||||
|
|
||||||
const lbryio = {
|
const lbryio = {
|
||||||
enabled: true,
|
enabled: true,
|
||||||
|
@ -114,17 +114,16 @@ lbryio.call = function(resource, action, params = {}, method = "get") {
|
||||||
};
|
};
|
||||||
|
|
||||||
lbryio.getAuthToken = () => {
|
lbryio.getAuthToken = () => {
|
||||||
return keytar.getPassword("LBRY", "auth_token").then(token => {
|
return new Promise((resolve, reject) => {
|
||||||
return token ? token.toString().trim() : null;
|
ipcRenderer.once("auth-token-response", (event, token) => {
|
||||||
|
return resolve(token);
|
||||||
|
});
|
||||||
|
ipcRenderer.send("get-auth-token");
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
lbryio.setAuthToken = token => {
|
lbryio.setAuthToken = token => {
|
||||||
return keytar.setPassword(
|
ipcRenderer.send("set-auth-token", token);
|
||||||
"LBRY",
|
|
||||||
"auth_token",
|
|
||||||
token ? token.toString().trim() : null
|
|
||||||
);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
lbryio.getCurrentUser = () => {
|
lbryio.getCurrentUser = () => {
|
||||||
|
|
|
@ -28,7 +28,6 @@
|
||||||
"from2": "^2.3.0",
|
"from2": "^2.3.0",
|
||||||
"jshashes": "^1.0.6",
|
"jshashes": "^1.0.6",
|
||||||
"localforage": "^1.5.0",
|
"localforage": "^1.5.0",
|
||||||
"keytar": "^4.0.3",
|
|
||||||
"node-sass": "^3.8.0",
|
"node-sass": "^3.8.0",
|
||||||
"rc-progress": "^2.0.6",
|
"rc-progress": "^2.0.6",
|
||||||
"react": "^15.4.0",
|
"react": "^15.4.0",
|
||||||
|
@ -55,7 +54,6 @@
|
||||||
"babel-preset-es2015": "^6.18.0",
|
"babel-preset-es2015": "^6.18.0",
|
||||||
"babel-preset-react": "^6.16.0",
|
"babel-preset-react": "^6.16.0",
|
||||||
"babel-preset-stage-2": "^6.18.0",
|
"babel-preset-stage-2": "^6.18.0",
|
||||||
"electron-rebuild": "^1.5.11",
|
|
||||||
"eslint": "^3.10.2",
|
"eslint": "^3.10.2",
|
||||||
"eslint-config-airbnb": "^13.0.0",
|
"eslint-config-airbnb": "^13.0.0",
|
||||||
"eslint-loader": "^1.6.1",
|
"eslint-loader": "^1.6.1",
|
||||||
|
|
|
@ -14,7 +14,7 @@ DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
|
|
||||||
if [ ! -d "$DIR/node_modules" ]; then
|
if [ ! -d "$DIR/node_modules" ]; then
|
||||||
echo "Installing NPM modules"
|
echo "Installing NPM modules"
|
||||||
npm install
|
yarn install
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# run sass once without --watch to force update. then run with --watch to keep watching
|
# run sass once without --watch to force update. then run with --watch to keep watching
|
||||||
|
|
5285
ui/yarn.lock
Normal file
5285
ui/yarn.lock
Normal file
File diff suppressed because it is too large
Load diff
Loading…
Add table
Reference in a new issue