cardano-up 0.1.2 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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.