pbmenv 0.1.5 → 0.1.9

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: a9a7bfc60b36d4c37090e73b0b8ce6e2c0bba454bc15d1eb868a7c79bdbe1bf4
4
- data.tar.gz: 7ab067f69450da109588bb69f4fbb5ab4cb928f77335b312988db6bc261aac62
3
+ metadata.gz: d84d71d3bcf5e7e79a41197911ac54faf9af6dbda23ccedc35975efbb7e6a58b
4
+ data.tar.gz: 210058e9076ada3295ce82f03b0194c42539d12ae6bc231c004d9d2dbbf94e2d
5
5
  SHA512:
6
- metadata.gz: 6d8d3cccb07cbaca61a8e677ff49d03ec30025db9855bed03277e0ce7ddb18b15216978250fa6f15503bdff1cb08988eaec84ab15f9d1ad886e047e05f9da0ef
7
- data.tar.gz: 4f3d85457dc011d46f05b820b2f145c34e02b5fbe75b9cf6fa91a4c11300e39179d343b5f3a0bb269bd9232713fa0ffaf39d8bbede5d68280799741aecc15fcc
6
+ metadata.gz: 5f4c9d3ba339adb0c6be98c276eb78e41648735035cf817b02986d8aa1c8c2b5829c3bbbc0bdb716f2cbfae7e25a311282a2af1c52af5990b5876baf91077c7b
7
+ data.tar.gz: 0352bcc42d5561ca37d6a20554138d1cfffe744adb06700c5443f6068efa5b2a3d77db00c319b147b78f7939e829f51501e86d80b4790ce89e30628a6808a225
data/.gitignore CHANGED
@@ -6,3 +6,4 @@
6
6
  /pkg/
7
7
  /spec/reports/
8
8
  /tmp/
9
+ procon_bypass_man-*
data/CHANGELOG.md CHANGED
@@ -1,6 +1,21 @@
1
- ## [0.1.5] - 2021-11-16
1
+ ## [0.1.9] - 2022-02-18
2
+ - Pbmenv.installにenable_pbm_cloudオプションを追加しました
3
+ - Pbmenv.installにuse_optionオプションを追加しました
4
+ - また、 `pbmenv intall xxx --use` が使えるようになりました
5
+
6
+ ## [0.1.8] - 2022-02-08
7
+ - 不具合修正
8
+
9
+ ## [0.1.7] - 2022-01-11
10
+ - currentが存在しないときに、installを実行するとcurrentを貼るようにしました
2
11
 
12
+ ## [0.1.6] - 2021-12-01
13
+ - Improve spec
14
+ - installコマンドでcurrentの張り替えをしないようにしました。currentの参照を変えるときはuseコマンドを使ってください
15
+
16
+ ## [0.1.5] - 2021-11-16
3
17
  - `/usr/share/pbm/shared/device_id` を作成するようにしました
18
+
4
19
  ## [0.1.4] - 2021-11-15
5
20
 
6
21
  - `/usr/share/pbm/current/device_id` にシムリンクを作成するようにしました
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- pbmenv (0.1.5)
4
+ pbmenv (0.1.9)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -25,11 +25,12 @@ GEM
25
25
  rspec-mocks (3.10.2)
26
26
  diff-lcs (>= 1.2.0, < 2.0)
27
27
  rspec-support (~> 3.10.0)
28
- rspec-support (3.10.2)
28
+ rspec-support (3.10.3)
29
29
 
30
30
  PLATFORMS
31
31
  aarch64-linux
32
32
  arm64-darwin-20
33
+ arm64-darwin-21
33
34
  x86_64-linux
34
35
 
35
36
  DEPENDENCIES
@@ -39,4 +40,4 @@ DEPENDENCIES
39
40
  rspec
40
41
 
41
42
  BUNDLED WITH
42
- 2.2.16
43
+ 2.2.31
data/README.md CHANGED
@@ -17,6 +17,9 @@ gem 'pbmenv'
17
17
  * pbmenv available_versions
18
18
  * pbmenv versions
19
19
  * pbmenv install $version
20
+ * --use
21
+ * そのまま/usr/share/pbm/currentディレクトリへのシンボリックリンクを貼ります
22
+ * pbmenv use $version
20
23
  * pbmenv uninstall $version
21
24
  * API
22
25
  * Pbmenv.available_versions
@@ -26,6 +29,7 @@ gem 'pbmenv'
26
29
  * Pbmenv.install(version)
27
30
  * https://github.com/splaplapla/procon_bypass_man/archive/refs/tags/v#{version}.tar.gz をダウンロードして、
28
31
  * /usr/share/pbm/#{version} に app.rb, pbm.servive, setting.yml を配備する
32
+ * Pbmenv.use(version)
29
33
  * /usr/share/pbm/#{version} を /usr/share/pbm/current へのシムリンクを作成する
30
34
  * Pbmenv.uninstall(version)
31
35
  * /usr/share/pbm/current が削除対象だったら例外を投げる
@@ -40,6 +44,6 @@ Bug reports and pull requests are welcome on GitHub at https://github.com/[USERN
40
44
  The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
41
45
 
42
46
  ## Development
43
- * docker-compose build --no-cache
47
+ * docker-compose build --no-cache
44
48
  * docker-compose run app bash
45
49
  * bin/rspec
data/lib/pbmenv/cli.rb CHANGED
@@ -9,7 +9,21 @@ module Pbmenv
9
9
  Pbmenv.versions.each { |x| puts x }
10
10
  when 'install', 'i'
11
11
  sub_command_arg = argv[1]
12
- Pbmenv.install(sub_command_arg)
12
+ case argv[2]
13
+ when "--use"
14
+ use_option = true
15
+ when nil
16
+ use_option = false
17
+ else
18
+ puts <<~EOH
19
+ Unknown option:
20
+ available options: --use
21
+ EOH
22
+ end
23
+ Pbmenv.install(sub_command_arg, use_option: use_option)
24
+ when 'use', 'u'
25
+ sub_command_arg = argv[1]
26
+ Pbmenv.use(sub_command_arg)
13
27
  when 'uninstall'
14
28
  sub_command_arg = argv[1]
15
29
  Pbmenv.uninstall(sub_command_arg)
@@ -18,7 +32,7 @@ module Pbmenv
18
32
  else
19
33
  puts <<~EOH
20
34
  Unknown command:
21
- available commands: available_versions, versions, install, uninstall
35
+ available commands: available_versions, versions, install, use, uninstall
22
36
  EOH
23
37
  end
24
38
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Pbmenv
4
- VERSION = "0.1.5"
4
+ VERSION = "0.1.9"
5
5
  end
data/lib/pbmenv.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "securerandom"
4
+ require "pathname"
4
5
 
5
6
  require_relative "pbmenv/version"
6
7
  require_relative "pbmenv/cli"
@@ -14,10 +15,10 @@ module Pbmenv
14
15
  end
15
16
 
16
17
  def self.versions
17
- Pbmenv::PBM.new.versions.map { |name| Pathname.new(name).basename.to_s =~ /^v([\d.]+)/ && $1 }.compact
18
+ Pbmenv::PBM.new.versions.map { |name| Pathname.new(name).basename.to_s =~ /^v([\d.]+)/ && $1 }.compact.sort_by {|x| Gem::Version.new(x) }.compact
18
19
  end
19
20
 
20
- def self.install(version)
21
+ def self.install(version, use_option: false, enable_pbm_cloud: false)
21
22
  raise "Need a version" if version.nil?
22
23
  if version == 'latest'
23
24
  version = available_versions.first
@@ -32,6 +33,14 @@ module Pbmenv
32
33
  mkdir -p #{PBM_DIR}/v#{version} && cp -r procon_bypass_man-#{version}/project_template/* #{PBM_DIR}/v#{version}/
33
34
  SHELL
34
35
 
36
+ if enable_pbm_cloud
37
+ text = File.read("#{PBM_DIR}/v#{version}/app.rb")
38
+ if text =~ /config\.api_servers\s+=\s+\['(https:\/\/.+)'\]/ && (url = $1)
39
+ text.gsub!(/#\s+config\.api_servers\s+=\s+.+$/, "config.api_servers = '#{url}'")
40
+ end
41
+ File.write("#{PBM_DIR}/v#{version}/app.rb", text)
42
+ end
43
+
35
44
  unless File.exists?("#{PBM_DIR}/shared")
36
45
  system_and_puts <<~SHELL
37
46
  mkdir -p #{PBM_DIR}/shared
@@ -46,7 +55,10 @@ module Pbmenv
46
55
  ln -s #{PBM_DIR}/shared/device_id #{PBM_DIR}/v#{version}/device_id
47
56
  SHELL
48
57
 
49
- use version
58
+ # 初回だけinstall時にcurrentを作成する
59
+ if !File.exists?("#{PBM_DIR}/current") || use_option
60
+ use(version)
61
+ end
50
62
  rescue => e
51
63
  system_and_puts "rm -rf #{PBM_DIR}/v#{version}"
52
64
  raise
@@ -68,15 +80,21 @@ module Pbmenv
68
80
 
69
81
  def self.use(version)
70
82
  raise "Need a version" if version.nil?
83
+ version = versions.last if version == "latest"
71
84
 
72
- unless File.exists?("/usr/share/pbm/v#{version}")
85
+ if !File.exists?("/usr/share/pbm/#{version}") && !File.exists?("/usr/share/pbm/v#{version}")
73
86
  return false
74
87
  end
75
88
 
76
- if File.exists?("#{PBM_DIR}/current")
89
+ if File.symlink?("#{PBM_DIR}/current")
77
90
  system_and_puts "unlink #{PBM_DIR}/current"
78
91
  end
79
- system_and_puts "ln -s #{PBM_DIR}/v#{version} #{PBM_DIR}/current"
92
+
93
+ if(version_number = version.match(/v?([\w.]+)/)[1])
94
+ system_and_puts "ln -s #{PBM_DIR}/v#{version_number} #{PBM_DIR}/current"
95
+ else
96
+ raise "mismatch version number!"
97
+ end
80
98
  end
81
99
 
82
100
  def self.download_src(version)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pbmenv
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.1.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - jiikko
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-11-16 00:00:00.000000000 Z
11
+ date: 2022-02-18 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: A package manager of PBM
14
14
  email: