Merge branch 'master' into send-tx-errors
Conflicts: Cargo.lock
This commit is contained in:
commit
b89888eda1
9
Cargo.lock
generated
9
Cargo.lock
generated
@ -20,7 +20,7 @@ dependencies = [
|
|||||||
"ethsync 1.2.0",
|
"ethsync 1.2.0",
|
||||||
"fdlimit 0.1.0",
|
"fdlimit 0.1.0",
|
||||||
"hyper 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"hyper 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"json-ipc-server 0.2.2 (git+https://github.com/ethcore/json-ipc-server.git)",
|
"json-ipc-server 0.2.3 (git+https://github.com/ethcore/json-ipc-server.git)",
|
||||||
"log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"num_cpus 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
"num_cpus 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"number_prefix 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
"number_prefix 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
@ -30,6 +30,7 @@ dependencies = [
|
|||||||
"semver 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
"semver 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"syntex 0.33.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"syntex 0.33.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"time 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
|
"time 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"winapi 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -346,7 +347,7 @@ dependencies = [
|
|||||||
"ethcore-util 1.2.0",
|
"ethcore-util 1.2.0",
|
||||||
"ethjson 0.1.0",
|
"ethjson 0.1.0",
|
||||||
"ethsync 1.2.0",
|
"ethsync 1.2.0",
|
||||||
"json-ipc-server 0.2.2 (git+https://github.com/ethcore/json-ipc-server.git)",
|
"json-ipc-server 0.2.3 (git+https://github.com/ethcore/json-ipc-server.git)",
|
||||||
"jsonrpc-core 2.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
"jsonrpc-core 2.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"jsonrpc-http-server 5.1.0 (git+https://github.com/ethcore/jsonrpc-http-server.git)",
|
"jsonrpc-http-server 5.1.0 (git+https://github.com/ethcore/jsonrpc-http-server.git)",
|
||||||
"log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
@ -570,8 +571,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "json-ipc-server"
|
name = "json-ipc-server"
|
||||||
version = "0.2.2"
|
version = "0.2.3"
|
||||||
source = "git+https://github.com/ethcore/json-ipc-server.git#15ef25e5f859d2d27469c92cc13dd1ddea03e444"
|
source = "git+https://github.com/ethcore/json-ipc-server.git#b224bdbcb53cab349c278484bd3e5e22390167c9"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bytes 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"bytes 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"env_logger 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
"env_logger 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
@ -36,6 +36,9 @@ ethcore-ipc = { path = "ipc/rpc" }
|
|||||||
json-ipc-server = { git = "https://github.com/ethcore/json-ipc-server.git" }
|
json-ipc-server = { git = "https://github.com/ethcore/json-ipc-server.git" }
|
||||||
ansi_term = "0.7"
|
ansi_term = "0.7"
|
||||||
|
|
||||||
|
[target.'cfg(windows)'.dependencies]
|
||||||
|
winapi = "0.2"
|
||||||
|
|
||||||
[target.'cfg(not(windows))'.dependencies]
|
[target.'cfg(not(windows))'.dependencies]
|
||||||
daemonize = "0.2"
|
daemonize = "0.2"
|
||||||
|
|
||||||
|
112
nsis/installer.nsi
Normal file
112
nsis/installer.nsi
Normal file
@ -0,0 +1,112 @@
|
|||||||
|
|
||||||
|
!define APPNAME "Parity"
|
||||||
|
!define COMPANYNAME "ETHCORE"
|
||||||
|
!define DESCRIPTION "Fast, light, robust Ethereum implementation"
|
||||||
|
!define VERSIONMAJOR 1
|
||||||
|
!define VERSIONMINOR 2
|
||||||
|
!define VERSIONBUILD 0
|
||||||
|
|
||||||
|
!define HELPURL "https://github.com/ethcore/parity/wiki" # "Support Information" link
|
||||||
|
!define UPDATEURL "https://github.com/ethcore/parity/releases" # "Product Updates" link
|
||||||
|
!define ABOUTURL "https://github.com/ethcore/parity" # "Publisher" link
|
||||||
|
!define INSTALLSIZE 26120
|
||||||
|
|
||||||
|
RequestExecutionLevel admin ;Require admin rights on NT6+ (When UAC is turned on)
|
||||||
|
|
||||||
|
InstallDir "$PROGRAMFILES\${COMPANYNAME}\${APPNAME}"
|
||||||
|
|
||||||
|
LicenseData "..\LICENSE"
|
||||||
|
Name "${COMPANYNAME} ${APPNAME}"
|
||||||
|
Icon "logo.ico"
|
||||||
|
outFile "installer.exe"
|
||||||
|
|
||||||
|
!include LogicLib.nsh
|
||||||
|
|
||||||
|
page license
|
||||||
|
page directory
|
||||||
|
Page instfiles
|
||||||
|
|
||||||
|
!macro VerifyUserIsAdmin
|
||||||
|
UserInfo::GetAccountType
|
||||||
|
pop $0
|
||||||
|
${If} $0 != "admin" ;Require admin rights on NT4+
|
||||||
|
messageBox mb_iconstop "Administrator rights required!"
|
||||||
|
setErrorLevel 740 ;ERROR_ELEVATION_REQUIRED
|
||||||
|
quit
|
||||||
|
${EndIf}
|
||||||
|
!macroend
|
||||||
|
|
||||||
|
function .onInit
|
||||||
|
setShellVarContext all
|
||||||
|
!insertmacro VerifyUserIsAdmin
|
||||||
|
functionEnd
|
||||||
|
|
||||||
|
section "install"
|
||||||
|
# Files for the install directory - to build the installer, these should be in the same directory as the install script (this file)
|
||||||
|
setOutPath $INSTDIR
|
||||||
|
# Files added here should be removed by the uninstaller (see section "uninstall")
|
||||||
|
file /oname=parity.exe ..\target\release\parity.exe
|
||||||
|
file "logo.ico"
|
||||||
|
# Add any other files for the install directory (license files, app data, etc) here
|
||||||
|
|
||||||
|
# Uninstaller - See function un.onInit and section "uninstall" for configuration
|
||||||
|
writeUninstaller "$INSTDIR\uninstall.exe"
|
||||||
|
|
||||||
|
# Start Menu
|
||||||
|
createDirectory "$SMPROGRAMS\${COMPANYNAME}"
|
||||||
|
createShortCut "$SMPROGRAMS\${COMPANYNAME}\${APPNAME}.lnk" "$INSTDIR\parity.exe" "ui" "$INSTDIR\logo.ico"
|
||||||
|
|
||||||
|
# Registry information for add/remove programs
|
||||||
|
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "DisplayName" "${COMPANYNAME} - ${APPNAME} - ${DESCRIPTION}"
|
||||||
|
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "UninstallString" "$\"$INSTDIR\uninstall.exe$\""
|
||||||
|
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "QuietUninstallString" "$\"$INSTDIR\uninstall.exe$\" /S"
|
||||||
|
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "InstallLocation" "$\"$INSTDIR$\""
|
||||||
|
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "DisplayIcon" "$\"$INSTDIR\logo.ico$\""
|
||||||
|
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "Publisher" "$\"${COMPANYNAME}$\""
|
||||||
|
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "HelpLink" "$\"${HELPURL}$\""
|
||||||
|
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "URLUpdateInfo" "$\"${UPDATEURL}$\""
|
||||||
|
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "URLInfoAbout" "$\"${ABOUTURL}$\""
|
||||||
|
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "DisplayVersion" "$\"${VERSIONMAJOR}.${VERSIONMINOR}.${VERSIONBUILD}$\""
|
||||||
|
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "VersionMajor" ${VERSIONMAJOR}
|
||||||
|
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "VersionMinor" ${VERSIONMINOR}
|
||||||
|
# There is no option for modifying or repairing the install
|
||||||
|
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "NoModify" 1
|
||||||
|
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "NoRepair" 1
|
||||||
|
# Set the INSTALLSIZE constant (!defined at the top of this script) so Add/Remove Programs can accurately report the size
|
||||||
|
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "EstimatedSize" ${INSTALLSIZE}
|
||||||
|
sectionEnd
|
||||||
|
|
||||||
|
# Uninstaller
|
||||||
|
|
||||||
|
function un.onInit
|
||||||
|
SetShellVarContext all
|
||||||
|
|
||||||
|
#Verify the uninstaller - last chance to back out
|
||||||
|
MessageBox MB_OKCANCEL "Permanantly remove ${APPNAME}?" IDOK next
|
||||||
|
Abort
|
||||||
|
|
||||||
|
next:
|
||||||
|
!insertmacro VerifyUserIsAdmin
|
||||||
|
functionEnd
|
||||||
|
|
||||||
|
section "uninstall"
|
||||||
|
|
||||||
|
# Remove Start Menu launcher
|
||||||
|
delete "$SMPROGRAMS\${COMPANYNAME}\${APPNAME}.lnk"
|
||||||
|
# Try to remove the Start Menu folder - this will only happen if it is empty
|
||||||
|
rmDir "$SMPROGRAMS\${COMPANYNAME}"
|
||||||
|
|
||||||
|
# Remove files
|
||||||
|
delete $INSTDIR\parity.exe
|
||||||
|
delete $INSTDIR\logo.ico
|
||||||
|
|
||||||
|
# Always delete uninstaller as the last action
|
||||||
|
delete $INSTDIR\uninstall.exe
|
||||||
|
|
||||||
|
# Try to remove the install directory - this will only happen if it is empty
|
||||||
|
rmDir $INSTDIR
|
||||||
|
|
||||||
|
# Remove uninstaller information from the registry
|
||||||
|
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}"
|
||||||
|
|
||||||
|
sectionEnd
|
BIN
nsis/logo.ico
Normal file
BIN
nsis/logo.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 97 KiB |
@ -29,6 +29,7 @@ Usage:
|
|||||||
parity export [ <file> ] [options]
|
parity export [ <file> ] [options]
|
||||||
parity signer new-token [options]
|
parity signer new-token [options]
|
||||||
parity [options]
|
parity [options]
|
||||||
|
parity ui [options]
|
||||||
|
|
||||||
Protocol Options:
|
Protocol Options:
|
||||||
--chain CHAIN Specify the blockchain type. CHAIN may be either a
|
--chain CHAIN Specify the blockchain type. CHAIN may be either a
|
||||||
@ -211,6 +212,7 @@ pub struct Args {
|
|||||||
pub cmd_import: bool,
|
pub cmd_import: bool,
|
||||||
pub cmd_signer: bool,
|
pub cmd_signer: bool,
|
||||||
pub cmd_new_token: bool,
|
pub cmd_new_token: bool,
|
||||||
|
pub cmd_ui: bool,
|
||||||
pub arg_pid_file: String,
|
pub arg_pid_file: String,
|
||||||
pub arg_file: Option<String>,
|
pub arg_file: Option<String>,
|
||||||
pub arg_path: Vec<String>,
|
pub arg_path: Vec<String>,
|
||||||
|
@ -68,6 +68,7 @@ mod configuration;
|
|||||||
mod migration;
|
mod migration;
|
||||||
mod signer;
|
mod signer;
|
||||||
mod rpc_apis;
|
mod rpc_apis;
|
||||||
|
mod url;
|
||||||
|
|
||||||
use std::io::{Write, Read, BufReader, BufRead};
|
use std::io::{Write, Read, BufReader, BufRead};
|
||||||
use std::ops::Deref;
|
use std::ops::Deref;
|
||||||
@ -272,6 +273,10 @@ fn execute_client(conf: Configuration, spec: Spec, client_config: ClientConfig)
|
|||||||
});
|
});
|
||||||
service.io().register_handler(io_handler).expect("Error registering IO handler");
|
service.io().register_handler(io_handler).expect("Error registering IO handler");
|
||||||
|
|
||||||
|
if conf.args.cmd_ui {
|
||||||
|
url::open("http://localhost:8080/")
|
||||||
|
}
|
||||||
|
|
||||||
// Handle exit
|
// Handle exit
|
||||||
wait_for_exit(panic_handler, rpc_server, dapps_server, signer_server);
|
wait_for_exit(panic_handler, rpc_server, dapps_server, signer_server);
|
||||||
}
|
}
|
||||||
|
59
parity/url.rs
Normal file
59
parity/url.rs
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
// Copyright 2015, 2016 Ethcore (UK) Ltd.
|
||||||
|
// This file is part of Parity.
|
||||||
|
|
||||||
|
// Parity is free software: you can redistribute it and/or modify
|
||||||
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
// the Free Software Foundation, either version 3 of the License, or
|
||||||
|
// (at your option) any later version.
|
||||||
|
|
||||||
|
// Parity is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU General Public License for more details.
|
||||||
|
|
||||||
|
// You should have received a copy of the GNU General Public License
|
||||||
|
// along with Parity. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
//! Cross-platform open url in default browser
|
||||||
|
|
||||||
|
#[cfg(windows)]
|
||||||
|
mod shell {
|
||||||
|
extern crate winapi;
|
||||||
|
|
||||||
|
use self::winapi::*;
|
||||||
|
extern "system" {
|
||||||
|
pub fn ShellExecuteA(
|
||||||
|
hwnd: HWND, lpOperation: LPCSTR, lpFile: LPCSTR, lpParameters: LPCSTR, lpDirectory: LPCSTR,
|
||||||
|
nShowCmd: c_int
|
||||||
|
) -> HINSTANCE;
|
||||||
|
}
|
||||||
|
|
||||||
|
pub use self::winapi::SW_SHOWNORMAL as Normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
#[cfg(windows)]
|
||||||
|
pub fn open(url: &str) {
|
||||||
|
use std::ffi::CString;
|
||||||
|
use std::ptr;
|
||||||
|
|
||||||
|
unsafe {
|
||||||
|
shell::ShellExecuteA(ptr::null_mut(),
|
||||||
|
CString::new("open").unwrap().as_ptr(),
|
||||||
|
CString::new(url.to_owned().replace("\n", "%0A")).unwrap().as_ptr(),
|
||||||
|
ptr::null(),
|
||||||
|
ptr::null(),
|
||||||
|
shell::Normal);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[cfg(target_os="macos")]
|
||||||
|
pub fn open(url: &str) {
|
||||||
|
use std;
|
||||||
|
let _ = std::process::Command::new("open").arg(url).output();
|
||||||
|
}
|
||||||
|
|
||||||
|
#[cfg(target_os="linux")]
|
||||||
|
pub fn open(url: &str) {
|
||||||
|
use std;
|
||||||
|
let _ = std::process::Command::new("xdg-open").arg(url).output();
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user