pbmenv 0.1.5 → 0.1.9

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: 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: