cardano-up 0.1.2 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7dc6e5153ea10a283c8076a763034d89334e0ec285265ce8fa47cb7d41dddbaa
4
- data.tar.gz: fc58a1646113ff3c52faaadb6807f1147029a4716d06b750f07783041eac4149
3
+ metadata.gz: c55536463a8a275a7a370bac31474072c837a1411e08455934aa23a9b9d18932
4
+ data.tar.gz: b884c70ea66053c81bb91c3eefdef6447bd855e5a91595f0d7cf6ea0d5216b23
5
5
  SHA512:
6
- metadata.gz: e098510d7c479a9d1570c1f9ba803875908b509365b556045c8530f1548e13356593592c3985c30d6711c84c2afd077b54cd417bf5eba0505590bb9b1b6fb30d
7
- data.tar.gz: 54d8a545a3f1ebdea7cca06829672c337de7eac3403469d6ed33033869e7e08431b86dd495be49def0359063d004c0a363fdba397a8cd69ef4852d852582aa92
6
+ metadata.gz: 84a039aeab642b1e9eb5adcc30ebf1eccc8af53edbf6aebb28025ade0a69a858c9f8f8f7cb66ea4c84f1ff547065c19682347e7e4e5eef1039f47dfec70d14c4
7
+ data.tar.gz: 948ba5bad9619f2aaacad6c0cc6a9c1e5f114b8aa3eb1ea40c47141922b6d373eba19be5e8ff586db6f770296ab6cb868efa09773c82523b9fa61b6823e22b34
data/README.md CHANGED
@@ -23,7 +23,19 @@ This Ruby gem provides easy way for:
23
23
 
24
24
  ## Installation
25
25
 
26
+ #### Rubygem:
27
+
26
28
  $ gem install cardano-up
29
+ $ cardano-up --help
30
+
31
+ #### Nix:
32
+
33
+ $ nix develop github:piotr-iohk/cardano-up?dir=nix
34
+ $ cardano-up --help
35
+
36
+ or run directly
37
+
38
+ $ nix run github:piotr-iohk/cardano-up?dir=nix -- --help
27
39
 
28
40
  ## Usage
29
41
 
@@ -52,7 +64,7 @@ By default cardano-up keeps all files at `$HOME/.cardano-up/` however this can b
52
64
 
53
65
  **Configurations** for the networks are downloaded from [Cardano Book](https://book.world.dev.cardano.org/environments.html).
54
66
 
55
- **Binaries** come from [cardano-wallet](https://github.com/input-output-hk/cardano-wallet) which actually provides `cardano-node`, `cardano-cli`, `cardano-wallet`, `cardano-addresses` and `bech32` tools in each of its release bundles. This ensures that all components are compatible and work smoothly together. You can get any public release of the cardano-wallet bundle as well as `master` version and even any of the PRs that are currently being worked on.
67
+ **Binaries** come from [cardano-wallet](https://github.com/input-output-hk/cardano-wallet) which actually provides `cardano-node`, `cardano-cli`, `cardano-wallet`, `cardano-addresses` and `bech32` tools in each of its release bundles. This ensures that all components are compatible and work smoothly together. You can get any public release of the cardano-wallet bundle.
56
68
 
57
69
  **Starting** `cardano-node` and `cardano-wallet`, cardano-up attempts to launch separate [`screen`](https://www.gnu.org/software/screen/) sessions for wallet and node respectively. If screen is not present on your system you can install it using package manager, e.g.:
58
70
 
data/bin/cardano-up CHANGED
@@ -21,7 +21,7 @@ doc = <<~DOCOPT
21
21
 
22
22
  Options:
23
23
  install Install cardano-node, cardano-cli, cardano-wallet, cardano-addresses and bech32.
24
- <release> latest | release tag | master | pr num. [default: latest]
24
+ <release> latest | release tag [default: latest]
25
25
  get-configs Get configs for particular Cardano environment.
26
26
  <env> mainnet | preview | preprod etc.
27
27
  up Start particular service. If any configs are missing #{File.basename(__FILE__)}
@@ -261,7 +261,7 @@ Stop mainnet node and wallet:
261
261
  $stderr.puts
262
262
  warn "Congratulations! You've just started cardano-node and cardano-wallet!"
263
263
  end
264
- rescue CardanoUp::EnvNotSupportedError => e
264
+ rescue CardanoUp::EnvNotSupportedError, CardanoUp::NoScreenError => e
265
265
  warn "⚠️ #{e}"
266
266
  exit 1
267
267
  rescue CardanoUp::SessionHasNodeError => e
@@ -307,7 +307,7 @@ Stop mainnet node and wallet:
307
307
  end
308
308
  warn 'Wallet stopped.'
309
309
  end
310
- rescue CardanoUp::EnvNotSupportedError, CardanoUp::SessionNotExistsError => e
310
+ rescue CardanoUp::EnvNotSupportedError, CardanoUp::SessionNotExistsError, CardanoUp::NoScreenError => e
311
311
  warn "⚠️ #{e}"
312
312
  exit 1
313
313
  end
@@ -4,7 +4,7 @@ module CardanoUp
4
4
  # Installing binaries for Cardano
5
5
  module Bins
6
6
  # Get cardano-wallet bundle binaries to your computer.
7
- # @param release [String] - 'latest' | /^v20.{2}-.{2}-.{2}/ | 'master' | '3341'
7
+ # @param release [String] - 'latest' | /^v20.{2}-.{2}-.{2}/
8
8
  # @raise CardanoUp::VersionNotSupportedError
9
9
  def self.install(release)
10
10
  CardanoUp.configure_default unless CardanoUp.configured?
@@ -67,8 +67,15 @@ module CardanoUp
67
67
  # Thrown when version of bundle to download is not supported
68
68
  class VersionNotSupportedError < StandardError
69
69
  def initialize(ver)
70
- super(["Not supported version: #{ver}. Supported are: 'latest', 'master',",
71
- "tag (e.g. 'v2022-08-16') or pr number ('3045')"].join(' '))
70
+ super(["Not supported version: #{ver}. Supported are: 'latest' or",
71
+ "tag (e.g. 'v2022-08-16')"].join(' '))
72
+ end
73
+ end
74
+
75
+ # Thrown when there is no screen on the system
76
+ class NoScreenError < StandardError
77
+ def initialize
78
+ super('There is no screen tool on the system!')
72
79
  end
73
80
  end
74
81
  end
@@ -73,6 +73,7 @@ module CardanoUp
73
73
  # @param configuration [Hash] output of setup
74
74
  # @raise CardanoUp::SessionHasNodeError
75
75
  # @raise CardanoUp::SessionHasWalletError
76
+ # @raise CardanoUp::NoScreenError
76
77
  def self.node_up(configuration)
77
78
  env = configuration[:env]
78
79
  bin_dir = configuration[:bin_dir]
@@ -82,6 +83,8 @@ module CardanoUp
82
83
  node_socket = configuration[:node_socket]
83
84
  session_name = configuration[:session_name]
84
85
 
86
+ raise CardanoUp::NoScreenError if !CardanoUp::Utils.win? && !CardanoUp::Utils.screen?
87
+
85
88
  exe = CardanoUp::Utils.win? ? '.exe' : ''
86
89
  cardano_node = "#{File.join(bin_dir, 'cardano-node')}#{exe}"
87
90
  version = CardanoUp::Utils.cmd "#{cardano_node} version"
@@ -146,11 +149,15 @@ module CardanoUp
146
149
  end
147
150
 
148
151
  # @param configuration [Hash] output of setup
152
+ # @raise CardanoUp::NoScreenError
153
+ # @raise CardanoUp::WalletPortUsedError
149
154
  def self.wallet_up(configuration)
150
155
  if CardanoUp::Utils.port_used?(configuration[:wallet_port].to_i)
151
156
  raise CardanoUp::WalletPortUsedError, configuration[:wallet_port]
152
157
  end
153
158
 
159
+ raise CardanoUp::NoScreenError if !CardanoUp::Utils.win? && !CardanoUp::Utils.screen?
160
+
154
161
  env = configuration[:env]
155
162
  wallet_port = configuration[:wallet_port]
156
163
  token_metadata_server = configuration[:token_metadata_server]
@@ -211,9 +218,12 @@ module CardanoUp
211
218
  end
212
219
 
213
220
  # @raise CardanoUp::EnvNotSupportedError
221
+ # @raise CardanoUp::NoScreenError
214
222
  def self.node_down(env, session_name = '0')
215
223
  raise CardanoUp::EnvNotSupportedError, env unless CardanoUp::ENVS.include? env
216
224
 
225
+ raise CardanoUp::NoScreenError if !CardanoUp::Utils.win? && !CardanoUp::Utils.screen?
226
+
217
227
  if CardanoUp::Utils.win?
218
228
  CardanoUp::Utils.cmd "nssm stop cardano-node-#{env}-#{session_name}"
219
229
  CardanoUp::Utils.cmd "nssm remove cardano-node-#{env}-#{session_name} confirm"
@@ -225,9 +235,12 @@ module CardanoUp
225
235
  end
226
236
 
227
237
  # @raise CardanoUp::EnvNotSupportedError
238
+ # @raise CardanoUp::NoScreenError
228
239
  def self.wallet_down(env, session_name = '0')
229
240
  raise CardanoUp::EnvNotSupportedError, env unless CardanoUp::ENVS.include? env
230
241
 
242
+ raise CardanoUp::NoScreenError if !CardanoUp::Utils.win? && !CardanoUp::Utils.screen?
243
+
231
244
  if CardanoUp::Utils.win?
232
245
  CardanoUp::Utils.cmd "nssm stop cardano-wallet-#{env}-#{session_name}"
233
246
  CardanoUp::Utils.cmd "nssm remove cardano-wallet-#{env}-#{session_name} confirm"
@@ -11,6 +11,11 @@ module CardanoUp
11
11
  res.gsub("\n", ' ').strip
12
12
  end
13
13
 
14
+ # Check if screen command is available
15
+ def self.screen?
16
+ cmd('which screen').chomp.length.positive?
17
+ end
18
+
14
19
  def self.wget(url, file = nil)
15
20
  file ||= File.basename(url)
16
21
  resp = HTTParty.get(url)
@@ -61,40 +66,21 @@ module CardanoUp
61
66
 
62
67
  ##
63
68
  # Latest binary url for latest release or particular tag, from master or pr num.
64
- # @param release [String] - 'latest' | /^v20.{2}-.{2}-.{2}/ | 'master' | '3341'
69
+ # @param release [String] - 'latest' | /^v20.{2}-.{2}-.{2}/
65
70
  # @raise CardanoUp::VersionNotSupportedError
66
71
  def self.get_binary_url(release = 'latest')
67
- unless release == 'master' || release == 'latest' || release =~ /^v20.{2}-.{2}-.{2}/ || release =~ /^\d+$/
68
- raise CardanoUp::VersionNotSupportedError, release
72
+ raise CardanoUp::VersionNotSupportedError, release unless release == 'latest' || release =~ /^v20.{2}-.{2}-.{2}/
73
+
74
+ tag = release == 'latest' ? latest_tag : release
75
+ if linux?
76
+ file = "cardano-wallet-#{tag}-linux64.tar.gz"
77
+ elsif mac?
78
+ file = "cardano-wallet-#{tag}-macos-intel.tar.gz"
79
+ elsif win?
80
+ file = "cardano-wallet-#{tag}-win64.zip"
69
81
  end
70
82
 
71
- url = ''
72
- if release == 'latest' || release =~ /^v20.{2}-.{2}-.{2}/
73
- tag = release == 'latest' ? latest_tag : release
74
- if linux?
75
- file = "cardano-wallet-#{tag}-linux64.tar.gz"
76
- elsif mac?
77
- file = "cardano-wallet-#{tag}-macos-intel.tar.gz"
78
- elsif win?
79
- file = "cardano-wallet-#{tag}-win64.zip"
80
- end
81
- url = "#{CardanoUp::BINS_BASE_URL}/releases/download/#{tag}/#{file}"
82
- else
83
- if linux?
84
- os = 'linux.musl.cardano-wallet-linux64'
85
- elsif mac?
86
- os = 'macos.intel.cardano-wallet-macos-intel'
87
- elsif win?
88
- os = 'linux.windows.cardano-wallet-win64'
89
- end
90
-
91
- url = if release == 'master'
92
- "#{CardanoUp::HYDRA_BASE_URL}/#{os}/latest/download-by-type/file/binary-dist"
93
- else
94
- "#{CardanoUp::HYDRA_BASE_URL}-pr-#{release}/#{os}/latest/download-by-type/file/binary-dist"
95
- end
96
- end
97
- url
83
+ "#{CardanoUp::BINS_BASE_URL}/releases/download/#{tag}/#{file}"
98
84
  end
99
85
 
100
86
  ##
@@ -2,5 +2,5 @@
2
2
 
3
3
  # Version
4
4
  module CardanoUp
5
- VERSION ||= '0.1.2'
5
+ VERSION ||= '0.1.3'
6
6
  end
data/lib/cardano-up.rb CHANGED
@@ -27,7 +27,6 @@ require 'cardano-up/tail'
27
27
  module CardanoUp
28
28
  CONFIGS_BASE_URL = 'https://book.world.dev.cardano.org/environments'
29
29
  BINS_BASE_URL = 'https://github.com/input-output-hk/cardano-wallet'
30
- HYDRA_BASE_URL = 'https://hydra.iohk.io/job/Cardano/cardano-wallet'
31
30
  ENVS = %w[mainnet preview preprod shelley-qa
32
31
  staging vasil-qa vasil-dev mixed testnet].freeze
33
32
  CONFIG_FILES = ['alonzo-genesis.json', 'byron-genesis.json', 'shelley-genesis.json',
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cardano-up
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Piotr Stachyra
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-10-15 00:00:00.000000000 Z
11
+ date: 2023-02-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: docopt
@@ -44,14 +44,14 @@ dependencies:
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 0.18.0
47
+ version: 0.21.0
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 0.18.0
54
+ version: 0.21.0
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rubyzip
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -100,14 +100,14 @@ dependencies:
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: '1.36'
103
+ version: '1.46'
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: '1.36'
110
+ version: '1.46'
111
111
  description: |-
112
112
  Cardano Up lets you get all essential Cardano
113
113
  tools on your system: cardano-node, cardano-cli, cardano-wallet,
@@ -162,7 +162,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
162
162
  - !ruby/object:Gem::Version
163
163
  version: '0'
164
164
  requirements: []
165
- rubygems_version: 3.0.3.1
165
+ rubygems_version: 3.3.7
166
166
  signing_key:
167
167
  specification_version: 4
168
168
  summary: Lightweight manager for Cardano binaries and configs.