Skip to content

Commit

Permalink
Merge pull request #1148 from shamil-gadelshin/migrate_runtime_module5
Browse files Browse the repository at this point in the history
Migrate the 'chain-spec-builder' utility project to the Substrate 2.0.0rc4
  • Loading branch information
mnaamani authored Aug 13, 2020
2 parents 46cd91c + abc363b commit 6ee1a56
Show file tree
Hide file tree
Showing 16 changed files with 165 additions and 291 deletions.
130 changes: 29 additions & 101 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ members = [
"runtime-modules/versioned-store-permissions",
"runtime-modules/working-group",
"node",
# "utils/chain-spec-builder/"
"utils/chain-spec-builder/"
]

[profile.release]
Expand Down
9 changes: 6 additions & 3 deletions node/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -54,9 +54,7 @@ sc-rpc-api = { package = 'sc-rpc-api', git = 'https://github.com/paritytech/subs
sc-executor = { package = 'sc-executor', git = 'https://github.com/paritytech/substrate.git', rev = '00768a1f21a579c478fe5d4f51e1fa71f7db9fd4' }

# frame dependencies
pallet-contracts = { package = 'pallet-contracts', git = 'https://github.com/paritytech/substrate.git', rev = '00768a1f21a579c478fe5d4f51e1fa71f7db9fd4' }
pallet-im-online = { package = 'pallet-im-online', default-features = false, git = 'https://github.com/paritytech/substrate.git', rev = '00768a1f21a579c478fe5d4f51e1fa71f7db9fd4' }
pallet-contracts-rpc = { package = 'pallet-contracts-rpc', git = 'https://github.com/paritytech/substrate.git', rev = '00768a1f21a579c478fe5d4f51e1fa71f7db9fd4' }
pallet-transaction-payment-rpc = { package = 'pallet-transaction-payment-rpc', git = 'https://github.com/paritytech/substrate.git', rev = '00768a1f21a579c478fe5d4f51e1fa71f7db9fd4' }
substrate-frame-rpc-system = { package = 'substrate-frame-rpc-system', git = 'https://github.com/paritytech/substrate.git', rev = '00768a1f21a579c478fe5d4f51e1fa71f7db9fd4' }
frame-benchmarking = { package = 'frame-benchmarking', git = 'https://github.com/paritytech/substrate.git', rev = '00768a1f21a579c478fe5d4f51e1fa71f7db9fd4' }
Expand Down Expand Up @@ -86,7 +84,11 @@ pallet-transaction-payment = { package = 'pallet-transaction-payment', git = 'ht
pallet-grandpa = { package = 'pallet-grandpa', git = 'https://github.com/paritytech/substrate.git', rev = '00768a1f21a579c478fe5d4f51e1fa71f7db9fd4' }

[build-dependencies]
vergen = '3'
structopt = { version = "0.3.8", optional = true }
node-inspect = { git = 'https://github.com/paritytech/substrate.git', rev = '00768a1f21a579c478fe5d4f51e1fa71f7db9fd4', optional = true}
sc-cli = { git = 'https://github.com/paritytech/substrate.git', rev = '00768a1f21a579c478fe5d4f51e1fa71f7db9fd4', optional = true}
frame-benchmarking-cli = { git = 'https://github.com/paritytech/substrate.git', rev = '00768a1f21a579c478fe5d4f51e1fa71f7db9fd4', optional = true }
substrate-build-script-utils = { git = 'https://github.com/paritytech/substrate.git', rev = '00768a1f21a579c478fe5d4f51e1fa71f7db9fd4', optional = true }

[features]
default = [ "cli" ]
Expand All @@ -101,6 +103,7 @@ cli = [
"frame-benchmarking-cli",
"sc-service/db",
"structopt",
"substrate-build-script-utils",
]
runtime-benchmarks = [
"node-runtime/runtime-benchmarks",
Expand Down
83 changes: 64 additions & 19 deletions node/build.rs
Original file line number Diff line number Diff line change
@@ -1,27 +1,72 @@
use std::{env, path::PathBuf};
// This file is part of Substrate.

use vergen::{generate_cargo_keys, ConstantsFlags};
// Copyright (C) 2017-2020 Parity Technologies (UK) Ltd.
// SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0

const ERROR_MSG: &str = "Failed to generate metadata files";
// This program 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.

// This program 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 this program. If not, see <https://www.gnu.org/licenses/>.

fn main() {
generate_cargo_keys(ConstantsFlags::SHA_SHORT).expect(ERROR_MSG);

let mut manifest_dir = PathBuf::from(
env::var("CARGO_MANIFEST_DIR").expect("`CARGO_MANIFEST_DIR` is always set by cargo."),
);

while manifest_dir.parent().is_some() {
if manifest_dir.join(".git/HEAD").exists() {
println!(
"cargo:rerun-if-changed={}",
manifest_dir.join(".git/HEAD").display()
);
return;
}
#[cfg(feature = "cli")]
cli::main();
}

#[cfg(feature = "cli")]
mod cli {
include!("src/cli.rs");

use sc_cli::structopt::clap::Shell;
use std::{env, fs, path::Path};
use substrate_build_script_utils::{generate_cargo_keys, rerun_if_git_head_changed};

pub fn main() {
build_shell_completion();
generate_cargo_keys();

manifest_dir.pop();
rerun_if_git_head_changed();
}

println!("cargo:warning=Could not find `.git/HEAD` from manifest dir!");
/// Build shell completion scripts for all known shells
/// Full list in https://github.com/kbknapp/clap-rs/blob/e9d0562a1dc5dfe731ed7c767e6cee0af08f0cf9/src/app/parser.rs#L123
fn build_shell_completion() {
for shell in &[
Shell::Bash,
Shell::Fish,
Shell::Zsh,
Shell::Elvish,
Shell::PowerShell,
] {
build_completion(shell);
}
}

/// Build the shell auto-completion for a given Shell
fn build_completion(shell: &Shell) {
let outdir = match env::var_os("OUT_DIR") {
None => return,
Some(dir) => dir,
};
let path = Path::new(&outdir)
.parent()
.unwrap()
.parent()
.unwrap()
.parent()
.unwrap()
.join("completion-scripts");

fs::create_dir(&path).ok();

Cli::clap().gen_completions("joystream-node", *shell, &path);
}
}
Loading

0 comments on commit 6ee1a56

Please sign in to comment.