pbmenv 0.1.4 → 0.1.8

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: bf5ef3a99a0d05aefe181d42dacabc84929a659205d2af7e315c0deea135fac9
4
- data.tar.gz: 63992a7e432f7c185b06dd2d5346bdc0e33500bd167b7b121a99c3b9681c9474
3
+ metadata.gz: 03103c7de7428f2c8c92aabd221463bed7ec8f5017f119feeb9204673afec788
4
+ data.tar.gz: 30ac40f3e940ef3599a14bf5b27ef1973221955b8bf2d2c0a351da197af40374
5
5
  SHA512:
6
- metadata.gz: 6de90267f2b5501986d8325ef530a943a19933c85c8e28eba7eed879177e479999e65ba2bcddab73d59f61f78397d65bf72e92a256a24e357b7ce1880a0f4777
7
- data.tar.gz: 56487c5af4ce175ec4cda01ca46800ec5b5d586fab88793f37d506a6ed818ce50e67f78952efd12a60d929c573a3ad57178d8e41618c207fe854907bcea9844d
6
+ metadata.gz: 4bf0ffcd4cf070c467363b510cf9239653582e433ce8f2e17d155f226615097520839ed99ab91afd316bb5f3b5c73f73d2219decaf40e923df96f59c6dcfc376
7
+ data.tar.gz: 35015b260bd3721b8d5e2b26541498c7d3e91ea09b970c3140cc8f3c26f1424a53bdf0510cedea325a062f504c94023b3f695b42f1a512dfec79c9dba841f731
data/CHANGELOG.md CHANGED
@@ -1,6 +1,19 @@
1
+ ## [0.1.8] - 2022-02-08
2
+ - 不具合修正
3
+
4
+ ## [0.1.7] - 2022-01-11
5
+ - currentが存在しないときに、installを実行するとcurrentを貼るようにしました
6
+
7
+ ## [0.1.6] - 2021-12-01
8
+ - Improve spec
9
+ - installコマンドでcurrentの張り替えをしないようにしました。currentの参照を変えるときはuseコマンドを使ってください
10
+
11
+ ## [0.1.5] - 2021-11-16
12
+ - `/usr/share/pbm/shared/device_id` を作成するようにしました
13
+
1
14
  ## [0.1.4] - 2021-11-15
2
15
 
3
- - `/usr/share/pbm/shared/device_id` へのシムリンクを作成するようにしました
16
+ - `/usr/share/pbm/current/device_id` にシムリンクを作成するようにしました
4
17
 
5
18
  ## [0.1.3] - 2021-10-22
6
19
 
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- pbmenv (0.1.4)
4
+ pbmenv (0.1.8)
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,7 @@ gem 'pbmenv'
17
17
  * pbmenv available_versions
18
18
  * pbmenv versions
19
19
  * pbmenv install $version
20
+ * pbmenv use $version
20
21
  * pbmenv uninstall $version
21
22
  * API
22
23
  * Pbmenv.available_versions
@@ -26,6 +27,7 @@ gem 'pbmenv'
26
27
  * Pbmenv.install(version)
27
28
  * https://github.com/splaplapla/procon_bypass_man/archive/refs/tags/v#{version}.tar.gz をダウンロードして、
28
29
  * /usr/share/pbm/#{version} に app.rb, pbm.servive, setting.yml を配備する
30
+ * Pbmenv.use(version)
29
31
  * /usr/share/pbm/#{version} を /usr/share/pbm/current へのシムリンクを作成する
30
32
  * Pbmenv.uninstall(version)
31
33
  * /usr/share/pbm/current が削除対象だったら例外を投げる
@@ -40,6 +42,6 @@ Bug reports and pull requests are welcome on GitHub at https://github.com/[USERN
40
42
  The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
41
43
 
42
44
  ## Development
43
- * docker-compose build --no-cache
45
+ * docker-compose build --no-cache
44
46
  * docker-compose run app bash
45
47
  * bin/rspec
data/lib/pbmenv/cli.rb CHANGED
@@ -10,6 +10,9 @@ module Pbmenv
10
10
  when 'install', 'i'
11
11
  sub_command_arg = argv[1]
12
12
  Pbmenv.install(sub_command_arg)
13
+ when 'use', 'u'
14
+ sub_command_arg = argv[1]
15
+ Pbmenv.use(sub_command_arg)
13
16
  when 'uninstall'
14
17
  sub_command_arg = argv[1]
15
18
  Pbmenv.uninstall(sub_command_arg)
@@ -18,7 +21,7 @@ module Pbmenv
18
21
  else
19
22
  puts <<~EOH
20
23
  Unknown command:
21
- available commands: available_versions, versions, install, uninstall
24
+ available commands: available_versions, versions, install, use, uninstall
22
25
  EOH
23
26
  end
24
27
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Pbmenv
4
- VERSION = "0.1.4"
4
+ VERSION = "0.1.8"
5
5
  end
data/lib/pbmenv.rb CHANGED
@@ -1,5 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require "securerandom"
4
+ require "pathname"
5
+
3
6
  require_relative "pbmenv/version"
4
7
  require_relative "pbmenv/cli"
5
8
  require_relative "pbmenv/pbm"
@@ -12,7 +15,7 @@ module Pbmenv
12
15
  end
13
16
 
14
17
  def self.versions
15
- 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
16
19
  end
17
20
 
18
21
  def self.install(version)
@@ -30,22 +33,31 @@ module Pbmenv
30
33
  mkdir -p #{PBM_DIR}/v#{version} && cp -r procon_bypass_man-#{version}/project_template/* #{PBM_DIR}/v#{version}/
31
34
  SHELL
32
35
 
33
- # sharedディレクトリを作成して、device_idへのシムリンクを作成する. device_idの中身はpbmで行う
34
36
  unless File.exists?("#{PBM_DIR}/shared")
35
37
  system_and_puts <<~SHELL
36
38
  mkdir -p #{PBM_DIR}/shared
37
39
  SHELL
38
40
  end
39
41
 
42
+ unless File.exists?("#{PBM_DIR}/shared/device_id")
43
+ File.write("#{PBM_DIR}/shared/device_id", "d_#{SecureRandom.uuid}")
44
+ end
45
+
40
46
  system_and_puts <<~SHELL
41
47
  ln -s #{PBM_DIR}/shared/device_id #{PBM_DIR}/v#{version}/device_id
42
48
  SHELL
43
- use version
49
+
50
+ # 初回だけinstall時にcurrentを作成する
51
+ if not File.exists?("#{PBM_DIR}/current")
52
+ use(version)
53
+ end
44
54
  rescue => e
45
55
  system_and_puts "rm -rf #{PBM_DIR}/v#{version}"
46
56
  raise
47
57
  ensure
48
- system_and_puts "rm -rf ./procon_bypass_man-#{version}"
58
+ if Dir.exists?("./procon_bypass_man-#{version}")
59
+ system_and_puts "rm -rf ./procon_bypass_man-#{version}"
60
+ end
49
61
  end
50
62
 
51
63
  # TODO currentが挿しているバージョンはどうする?
@@ -60,15 +72,21 @@ module Pbmenv
60
72
 
61
73
  def self.use(version)
62
74
  raise "Need a version" if version.nil?
75
+ version = versions.last if version == "latest"
63
76
 
64
- unless File.exists?("/usr/share/pbm/v#{version}")
77
+ if !File.exists?("/usr/share/pbm/#{version}") && !File.exists?("/usr/share/pbm/v#{version}")
65
78
  return false
66
79
  end
67
80
 
68
- if File.exists?("#{PBM_DIR}/current")
81
+ if File.symlink?("#{PBM_DIR}/current")
69
82
  system_and_puts "unlink #{PBM_DIR}/current"
70
83
  end
71
- system_and_puts "ln -s #{PBM_DIR}/v#{version} #{PBM_DIR}/current"
84
+
85
+ if(version_number = version.match(/v?([\w.]+)/)[1])
86
+ system_and_puts "ln -s #{PBM_DIR}/v#{version_number} #{PBM_DIR}/current"
87
+ else
88
+ raise "mismatch version number!"
89
+ end
72
90
  end
73
91
 
74
92
  def self.download_src(version)
@@ -77,6 +95,7 @@ module Pbmenv
77
95
  git clone https://github.com/splaplapla/procon_bypass_man.git procon_bypass_man-#{version}
78
96
  SHELL
79
97
  else
98
+ # TODO cache for testing
80
99
  shell = <<~SHELL
81
100
  curl -L https://github.com/splaplapla/procon_bypass_man/archive/refs/tags/v#{version}.tar.gz | tar xvz
82
101
  SHELL
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.4
4
+ version: 0.1.8
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-15 00:00:00.000000000 Z
11
+ date: 2022-02-08 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: A package manager of PBM
14
14
  email: