mnenv 0.1.0 → 0.1.1

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.
Files changed (303) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +3 -0
  3. data/PROPOSAL.md +197 -0
  4. data/README.adoc +168 -461
  5. data/Rakefile +7 -4
  6. data/bin/Install-Mnenv.ps1 +145 -0
  7. data/bin/mnenv-installer +72 -0
  8. data/completions/bash +47 -0
  9. data/completions/fish +29 -0
  10. data/completions/powershell.ps1 +94 -0
  11. data/completions/zsh +43 -0
  12. data/lib/mnenv/binary_repository.rb +189 -0
  13. data/lib/mnenv/chocolatey.rb +7 -0
  14. data/lib/mnenv/cli.rb +110 -10
  15. data/lib/mnenv/commands/available_command.rb +169 -0
  16. data/lib/mnenv/commands/chocolatey_command.rb +4 -5
  17. data/lib/mnenv/commands/gemfile_command.rb +4 -5
  18. data/lib/mnenv/commands/homebrew_command.rb +4 -5
  19. data/lib/mnenv/commands/install_command.rb +234 -0
  20. data/lib/mnenv/commands/snap_command.rb +5 -7
  21. data/lib/mnenv/commands/uninstall_command.rb +42 -0
  22. data/lib/mnenv/commands/version_command.rb +213 -0
  23. data/lib/mnenv/commands.rb +9 -4
  24. data/lib/mnenv/gemfile/extractor.rb +10 -3
  25. data/lib/mnenv/gemfile.rb +8 -0
  26. data/lib/mnenv/gemfile_repository.rb +0 -2
  27. data/lib/mnenv/homebrew.rb +7 -0
  28. data/lib/mnenv/installer/base.rb +62 -0
  29. data/lib/mnenv/installer/factory.rb +17 -0
  30. data/lib/mnenv/installer.rb +12 -0
  31. data/lib/mnenv/installers/binary_installer.rb +242 -0
  32. data/lib/mnenv/installers/gemfile_installer.rb +76 -0
  33. data/lib/mnenv/json_formatter.rb +3 -13
  34. data/lib/mnenv/logger.rb +9 -1
  35. data/lib/mnenv/models/binary_version.rb +78 -0
  36. data/lib/mnenv/models/chocolatey_version.rb +7 -0
  37. data/lib/mnenv/models/gemfile_version.rb +19 -5
  38. data/lib/mnenv/models/homebrew_version.rb +7 -0
  39. data/lib/mnenv/models/snap_version.rb +8 -0
  40. data/lib/mnenv/models/version.rb +16 -0
  41. data/lib/mnenv/models.rb +7 -5
  42. data/lib/mnenv/paths.rb +69 -0
  43. data/lib/mnenv/repository.rb +50 -35
  44. data/lib/mnenv/resolver +72 -0
  45. data/lib/mnenv/shells/base.rb +32 -0
  46. data/lib/mnenv/shells/bash.rb +72 -0
  47. data/lib/mnenv/shells/cmd.rb +108 -0
  48. data/lib/mnenv/shells/factory.rb +82 -0
  49. data/lib/mnenv/shells/power_shell.rb +110 -0
  50. data/lib/mnenv/shim_manager.rb +121 -0
  51. data/lib/mnenv/snap.rb +7 -0
  52. data/lib/mnenv/snap_repository.rb +2 -19
  53. data/lib/mnenv/source_registry.rb +69 -0
  54. data/lib/mnenv/version.rb +1 -1
  55. data/lib/mnenv/versions_manager.rb +92 -0
  56. data/lib/mnenv.rb +3 -0
  57. data/mnenv.gemspec +4 -1
  58. data/scripts/cross-source-switching-test.sh +214 -0
  59. data/scripts/integration-test.sh +89 -0
  60. data/scripts/version-switching-test.sh +151 -0
  61. metadata +82 -247
  62. data/data/chocolatey/versions.yaml +0 -812
  63. data/data/gemfile/v1.1.6/Gemfile +0 -4
  64. data/data/gemfile/v1.1.6/Gemfile.lock.archived +0 -232
  65. data/data/gemfile/v1.1.7/Gemfile +0 -4
  66. data/data/gemfile/v1.1.7/Gemfile.lock.archived +0 -235
  67. data/data/gemfile/v1.1.8/Gemfile +0 -4
  68. data/data/gemfile/v1.1.8/Gemfile.lock.archived +0 -238
  69. data/data/gemfile/v1.10.0/Gemfile +0 -5
  70. data/data/gemfile/v1.10.0/Gemfile.lock.archived +0 -930
  71. data/data/gemfile/v1.10.1/Gemfile +0 -5
  72. data/data/gemfile/v1.10.1/Gemfile.lock.archived +0 -929
  73. data/data/gemfile/v1.10.10/Gemfile +0 -5
  74. data/data/gemfile/v1.10.10/Gemfile.lock.archived +0 -973
  75. data/data/gemfile/v1.10.11/Gemfile +0 -5
  76. data/data/gemfile/v1.10.11/Gemfile.lock.archived +0 -975
  77. data/data/gemfile/v1.10.2/Gemfile +0 -5
  78. data/data/gemfile/v1.10.2/Gemfile.lock.archived +0 -939
  79. data/data/gemfile/v1.10.3/Gemfile +0 -5
  80. data/data/gemfile/v1.10.3/Gemfile.lock.archived +0 -946
  81. data/data/gemfile/v1.10.5/Gemfile +0 -5
  82. data/data/gemfile/v1.10.5/Gemfile.lock.archived +0 -958
  83. data/data/gemfile/v1.10.6/Gemfile +0 -5
  84. data/data/gemfile/v1.10.6/Gemfile.lock.archived +0 -969
  85. data/data/gemfile/v1.10.7/Gemfile +0 -5
  86. data/data/gemfile/v1.10.7/Gemfile.lock.archived +0 -969
  87. data/data/gemfile/v1.10.8/Gemfile +0 -5
  88. data/data/gemfile/v1.10.8/Gemfile.lock.archived +0 -968
  89. data/data/gemfile/v1.10.9/Gemfile +0 -5
  90. data/data/gemfile/v1.10.9/Gemfile.lock.archived +0 -972
  91. data/data/gemfile/v1.11.0/Gemfile +0 -5
  92. data/data/gemfile/v1.11.0/Gemfile.lock.archived +0 -971
  93. data/data/gemfile/v1.11.1/Gemfile +0 -5
  94. data/data/gemfile/v1.11.1/Gemfile.lock.archived +0 -975
  95. data/data/gemfile/v1.11.4/Gemfile +0 -5
  96. data/data/gemfile/v1.11.4/Gemfile.lock.archived +0 -1046
  97. data/data/gemfile/v1.11.5/Gemfile +0 -5
  98. data/data/gemfile/v1.11.5/Gemfile.lock.archived +0 -1047
  99. data/data/gemfile/v1.12.10/Gemfile +0 -3
  100. data/data/gemfile/v1.12.10/Gemfile.lock.archived +0 -1073
  101. data/data/gemfile/v1.12.3/Gemfile +0 -3
  102. data/data/gemfile/v1.12.3/Gemfile.lock.archived +0 -1050
  103. data/data/gemfile/v1.12.4/Gemfile +0 -3
  104. data/data/gemfile/v1.12.4/Gemfile.lock.archived +0 -1056
  105. data/data/gemfile/v1.12.5/Gemfile +0 -3
  106. data/data/gemfile/v1.12.5/Gemfile.lock.archived +0 -1054
  107. data/data/gemfile/v1.12.6/Gemfile +0 -3
  108. data/data/gemfile/v1.12.6/Gemfile.lock.archived +0 -1056
  109. data/data/gemfile/v1.12.8/Gemfile +0 -3
  110. data/data/gemfile/v1.12.8/Gemfile.lock.archived +0 -1063
  111. data/data/gemfile/v1.13.0/Gemfile +0 -3
  112. data/data/gemfile/v1.13.0/Gemfile.lock.archived +0 -1074
  113. data/data/gemfile/v1.13.2/Gemfile +0 -3
  114. data/data/gemfile/v1.13.2/Gemfile.lock.archived +0 -899
  115. data/data/gemfile/v1.13.3/Gemfile +0 -3
  116. data/data/gemfile/v1.13.3/Gemfile.lock.archived +0 -938
  117. data/data/gemfile/v1.13.4/Gemfile +0 -3
  118. data/data/gemfile/v1.13.4/Gemfile.lock.archived +0 -938
  119. data/data/gemfile/v1.13.5/Gemfile +0 -3
  120. data/data/gemfile/v1.13.5/Gemfile.lock.archived +0 -944
  121. data/data/gemfile/v1.13.7/Gemfile +0 -3
  122. data/data/gemfile/v1.13.7/Gemfile.lock.archived +0 -944
  123. data/data/gemfile/v1.13.8/Gemfile +0 -3
  124. data/data/gemfile/v1.13.8/Gemfile.lock.archived +0 -944
  125. data/data/gemfile/v1.13.9/Gemfile +0 -3
  126. data/data/gemfile/v1.13.9/Gemfile.lock.archived +0 -956
  127. data/data/gemfile/v1.14.3/Gemfile +0 -3
  128. data/data/gemfile/v1.14.3/Gemfile.lock.archived +0 -950
  129. data/data/gemfile/v1.2.12/Gemfile +0 -3
  130. data/data/gemfile/v1.2.12/Gemfile.lock.archived +0 -283
  131. data/data/gemfile/v1.2.2/Gemfile +0 -4
  132. data/data/gemfile/v1.2.2/Gemfile.lock.archived +0 -224
  133. data/data/gemfile/v1.2.3/Gemfile +0 -4
  134. data/data/gemfile/v1.2.3/Gemfile.lock.archived +0 -231
  135. data/data/gemfile/v1.2.6/Gemfile +0 -4
  136. data/data/gemfile/v1.2.6/Gemfile.lock.archived +0 -239
  137. data/data/gemfile/v1.2.8/Gemfile +0 -4
  138. data/data/gemfile/v1.2.8/Gemfile.lock.archived +0 -233
  139. data/data/gemfile/v1.2.9/Gemfile +0 -4
  140. data/data/gemfile/v1.2.9/Gemfile.lock.archived +0 -245
  141. data/data/gemfile/v1.3.1/Gemfile +0 -3
  142. data/data/gemfile/v1.3.1/Gemfile.lock.archived +0 -296
  143. data/data/gemfile/v1.3.2/Gemfile +0 -3
  144. data/data/gemfile/v1.3.2/Gemfile.lock.archived +0 -296
  145. data/data/gemfile/v1.3.4/Gemfile +0 -3
  146. data/data/gemfile/v1.3.4/Gemfile.lock.archived +0 -284
  147. data/data/gemfile/v1.3.5/Gemfile +0 -3
  148. data/data/gemfile/v1.3.5/Gemfile.lock.archived +0 -284
  149. data/data/gemfile/v1.3.6/Gemfile +0 -3
  150. data/data/gemfile/v1.3.6/Gemfile.lock.archived +0 -286
  151. data/data/gemfile/v1.3.9/Gemfile +0 -3
  152. data/data/gemfile/v1.3.9/Gemfile.lock.archived +0 -334
  153. data/data/gemfile/v1.4.0/Gemfile +0 -3
  154. data/data/gemfile/v1.4.0/Gemfile.lock.archived +0 -330
  155. data/data/gemfile/v1.4.10/Gemfile +0 -4
  156. data/data/gemfile/v1.4.10/Gemfile.lock.archived +0 -461
  157. data/data/gemfile/v1.4.11/Gemfile +0 -4
  158. data/data/gemfile/v1.4.11/Gemfile.lock.archived +0 -452
  159. data/data/gemfile/v1.4.12/Gemfile +0 -4
  160. data/data/gemfile/v1.4.12/Gemfile.lock.archived +0 -452
  161. data/data/gemfile/v1.4.13/Gemfile +0 -4
  162. data/data/gemfile/v1.4.13/Gemfile.lock.archived +0 -455
  163. data/data/gemfile/v1.4.14/Gemfile +0 -4
  164. data/data/gemfile/v1.4.14/Gemfile.lock.archived +0 -456
  165. data/data/gemfile/v1.4.18/Gemfile +0 -3
  166. data/data/gemfile/v1.4.18/Gemfile.lock.archived +0 -486
  167. data/data/gemfile/v1.4.3/Gemfile +0 -3
  168. data/data/gemfile/v1.4.3/Gemfile.lock.archived +0 -339
  169. data/data/gemfile/v1.4.4/Gemfile +0 -3
  170. data/data/gemfile/v1.4.4/Gemfile.lock.archived +0 -339
  171. data/data/gemfile/v1.4.5/Gemfile +0 -3
  172. data/data/gemfile/v1.4.5/Gemfile.lock.archived +0 -348
  173. data/data/gemfile/v1.4.6/Gemfile +0 -3
  174. data/data/gemfile/v1.4.6/Gemfile.lock.archived +0 -357
  175. data/data/gemfile/v1.4.7/Gemfile +0 -3
  176. data/data/gemfile/v1.4.7/Gemfile.lock.archived +0 -391
  177. data/data/gemfile/v1.4.8/Gemfile +0 -3
  178. data/data/gemfile/v1.4.8/Gemfile.lock.archived +0 -445
  179. data/data/gemfile/v1.4.9/Gemfile +0 -3
  180. data/data/gemfile/v1.4.9/Gemfile.lock.archived +0 -448
  181. data/data/gemfile/v1.5.0/Gemfile +0 -3
  182. data/data/gemfile/v1.5.0/Gemfile.lock.archived +0 -478
  183. data/data/gemfile/v1.5.10/Gemfile +0 -3
  184. data/data/gemfile/v1.5.10/Gemfile.lock.archived +0 -668
  185. data/data/gemfile/v1.5.11/Gemfile +0 -3
  186. data/data/gemfile/v1.5.11/Gemfile.lock.archived +0 -668
  187. data/data/gemfile/v1.5.15/Gemfile +0 -3
  188. data/data/gemfile/v1.5.15/Gemfile.lock.archived +0 -686
  189. data/data/gemfile/v1.5.16/Gemfile +0 -3
  190. data/data/gemfile/v1.5.16/Gemfile.lock.archived +0 -684
  191. data/data/gemfile/v1.5.17/Gemfile +0 -3
  192. data/data/gemfile/v1.5.17/Gemfile.lock.archived +0 -684
  193. data/data/gemfile/v1.5.18/Gemfile +0 -5
  194. data/data/gemfile/v1.5.18/Gemfile.lock.archived +0 -691
  195. data/data/gemfile/v1.5.19/Gemfile +0 -5
  196. data/data/gemfile/v1.5.19/Gemfile.lock.archived +0 -703
  197. data/data/gemfile/v1.5.20/Gemfile +0 -5
  198. data/data/gemfile/v1.5.20/Gemfile.lock.archived +0 -703
  199. data/data/gemfile/v1.5.21/Gemfile +0 -5
  200. data/data/gemfile/v1.5.21/Gemfile.lock.archived +0 -707
  201. data/data/gemfile/v1.5.22/Gemfile +0 -5
  202. data/data/gemfile/v1.5.22/Gemfile.lock.archived +0 -707
  203. data/data/gemfile/v1.5.23/Gemfile +0 -5
  204. data/data/gemfile/v1.5.23/Gemfile.lock.archived +0 -711
  205. data/data/gemfile/v1.5.24/Gemfile +0 -5
  206. data/data/gemfile/v1.5.24/Gemfile.lock.archived +0 -711
  207. data/data/gemfile/v1.5.3/Gemfile +0 -3
  208. data/data/gemfile/v1.5.3/Gemfile.lock.archived +0 -651
  209. data/data/gemfile/v1.5.4/Gemfile +0 -3
  210. data/data/gemfile/v1.5.4/Gemfile.lock.archived +0 -657
  211. data/data/gemfile/v1.5.5/Gemfile +0 -3
  212. data/data/gemfile/v1.5.5/Gemfile.lock.archived +0 -657
  213. data/data/gemfile/v1.5.6/Gemfile +0 -3
  214. data/data/gemfile/v1.5.6/Gemfile.lock.archived +0 -657
  215. data/data/gemfile/v1.5.7/Gemfile +0 -3
  216. data/data/gemfile/v1.5.7/Gemfile.lock.archived +0 -657
  217. data/data/gemfile/v1.5.8/Gemfile +0 -3
  218. data/data/gemfile/v1.5.8/Gemfile.lock.archived +0 -655
  219. data/data/gemfile/v1.5.9/Gemfile +0 -3
  220. data/data/gemfile/v1.5.9/Gemfile.lock.archived +0 -656
  221. data/data/gemfile/v1.6.1/Gemfile +0 -5
  222. data/data/gemfile/v1.6.1/Gemfile.lock.archived +0 -721
  223. data/data/gemfile/v1.6.10/Gemfile +0 -5
  224. data/data/gemfile/v1.6.10/Gemfile.lock.archived +0 -744
  225. data/data/gemfile/v1.6.11/Gemfile +0 -5
  226. data/data/gemfile/v1.6.11/Gemfile.lock.archived +0 -744
  227. data/data/gemfile/v1.6.12/Gemfile +0 -5
  228. data/data/gemfile/v1.6.12/Gemfile.lock.archived +0 -745
  229. data/data/gemfile/v1.6.13/Gemfile +0 -5
  230. data/data/gemfile/v1.6.13/Gemfile.lock.archived +0 -745
  231. data/data/gemfile/v1.6.14/Gemfile +0 -5
  232. data/data/gemfile/v1.6.14/Gemfile.lock.archived +0 -754
  233. data/data/gemfile/v1.6.15/Gemfile +0 -5
  234. data/data/gemfile/v1.6.15/Gemfile.lock.archived +0 -757
  235. data/data/gemfile/v1.6.2/Gemfile +0 -5
  236. data/data/gemfile/v1.6.2/Gemfile.lock.archived +0 -718
  237. data/data/gemfile/v1.6.3/Gemfile +0 -5
  238. data/data/gemfile/v1.6.3/Gemfile.lock.archived +0 -728
  239. data/data/gemfile/v1.6.4/Gemfile +0 -5
  240. data/data/gemfile/v1.6.4/Gemfile.lock.archived +0 -730
  241. data/data/gemfile/v1.6.5/Gemfile +0 -5
  242. data/data/gemfile/v1.6.5/Gemfile.lock.archived +0 -733
  243. data/data/gemfile/v1.6.6/Gemfile +0 -5
  244. data/data/gemfile/v1.6.6/Gemfile.lock.archived +0 -733
  245. data/data/gemfile/v1.6.7/Gemfile +0 -5
  246. data/data/gemfile/v1.6.7/Gemfile.lock.archived +0 -733
  247. data/data/gemfile/v1.6.9/Gemfile +0 -5
  248. data/data/gemfile/v1.6.9/Gemfile.lock.archived +0 -744
  249. data/data/gemfile/v1.7.0/Gemfile +0 -5
  250. data/data/gemfile/v1.7.0/Gemfile.lock.archived +0 -750
  251. data/data/gemfile/v1.7.1/Gemfile +0 -5
  252. data/data/gemfile/v1.7.1/Gemfile.lock.archived +0 -750
  253. data/data/gemfile/v1.7.2/Gemfile +0 -5
  254. data/data/gemfile/v1.7.2/Gemfile.lock.archived +0 -747
  255. data/data/gemfile/v1.7.3/Gemfile +0 -5
  256. data/data/gemfile/v1.7.3/Gemfile.lock.archived +0 -755
  257. data/data/gemfile/v1.7.4/Gemfile +0 -5
  258. data/data/gemfile/v1.7.4/Gemfile.lock.archived +0 -756
  259. data/data/gemfile/v1.7.5/Gemfile +0 -5
  260. data/data/gemfile/v1.7.5/Gemfile.lock.archived +0 -759
  261. data/data/gemfile/v1.7.6/Gemfile +0 -5
  262. data/data/gemfile/v1.7.6/Gemfile.lock.archived +0 -768
  263. data/data/gemfile/v1.8.10/Gemfile +0 -5
  264. data/data/gemfile/v1.8.10/Gemfile.lock.archived +0 -792
  265. data/data/gemfile/v1.8.11/Gemfile +0 -5
  266. data/data/gemfile/v1.8.11/Gemfile.lock.archived +0 -862
  267. data/data/gemfile/v1.8.3/Gemfile +0 -5
  268. data/data/gemfile/v1.8.3/Gemfile.lock.archived +0 -773
  269. data/data/gemfile/v1.8.4/Gemfile +0 -5
  270. data/data/gemfile/v1.8.4/Gemfile.lock.archived +0 -768
  271. data/data/gemfile/v1.8.5/Gemfile +0 -5
  272. data/data/gemfile/v1.8.5/Gemfile.lock.archived +0 -768
  273. data/data/gemfile/v1.8.6/Gemfile +0 -5
  274. data/data/gemfile/v1.8.6/Gemfile.lock.archived +0 -777
  275. data/data/gemfile/v1.8.7/Gemfile +0 -5
  276. data/data/gemfile/v1.8.7/Gemfile.lock.archived +0 -777
  277. data/data/gemfile/v1.8.8/Gemfile +0 -5
  278. data/data/gemfile/v1.8.8/Gemfile.lock.archived +0 -778
  279. data/data/gemfile/v1.8.9/Gemfile +0 -5
  280. data/data/gemfile/v1.8.9/Gemfile.lock.archived +0 -775
  281. data/data/gemfile/v1.9.0/Gemfile +0 -5
  282. data/data/gemfile/v1.9.0/Gemfile.lock.archived +0 -871
  283. data/data/gemfile/v1.9.1/Gemfile +0 -5
  284. data/data/gemfile/v1.9.1/Gemfile.lock.archived +0 -906
  285. data/data/gemfile/v1.9.2/Gemfile +0 -5
  286. data/data/gemfile/v1.9.2/Gemfile.lock.archived +0 -898
  287. data/data/gemfile/v1.9.3/Gemfile +0 -5
  288. data/data/gemfile/v1.9.3/Gemfile.lock.archived +0 -898
  289. data/data/gemfile/v1.9.4/Gemfile +0 -5
  290. data/data/gemfile/v1.9.4/Gemfile.lock.archived +0 -901
  291. data/data/gemfile/v1.9.5/Gemfile +0 -5
  292. data/data/gemfile/v1.9.5/Gemfile.lock.archived +0 -903
  293. data/data/gemfile/v1.9.6/Gemfile +0 -5
  294. data/data/gemfile/v1.9.6/Gemfile.lock.archived +0 -900
  295. data/data/gemfile/v1.9.7/Gemfile +0 -5
  296. data/data/gemfile/v1.9.7/Gemfile.lock.archived +0 -922
  297. data/data/gemfile/v1.9.8/Gemfile +0 -5
  298. data/data/gemfile/v1.9.8/Gemfile.lock.archived +0 -933
  299. data/data/gemfile/versions.yaml +0 -751
  300. data/data/homebrew/versions.yaml +0 -567
  301. data/data/snap/github_tags.json +0 -42
  302. data/data/snap/versions.yaml +0 -589
  303. data/snapcraft-list-copied-from-site.md +0 -101
@@ -0,0 +1,151 @@
1
+ #!/bin/bash
2
+ # Local version switching test script for mnenv
3
+ # Usage: ./scripts/version-switching-test.sh
4
+
5
+ set -e
6
+
7
+ # Colors
8
+ RED='\033[0;31m'
9
+ GREEN='\033[0;32m'
10
+ YELLOW='\033[1;33m'
11
+ NC='\033[0m' # No Color
12
+
13
+ log_info() {
14
+ echo -e "${GREEN}[INFO]${NC} $1"
15
+ }
16
+
17
+ log_warn() {
18
+ echo -e "${YELLOW}[WARN]${NC} $1"
19
+ }
20
+
21
+ log_error() {
22
+ echo -e "${RED}[ERROR]${NC} $1"
23
+ }
24
+
25
+ # Versions to test
26
+ VERSIONS=("1.13.9" "1.14.3")
27
+ SOURCE="gemfile"
28
+
29
+ # Check if we're in the mnenv directory
30
+ if [ ! -f "mnenv.gemspec" ]; then
31
+ log_error "Please run this script from the mnenv root directory"
32
+ exit 1
33
+ fi
34
+
35
+ # Install mnenv
36
+ log_info "Installing mnenv..."
37
+ bundle install > /dev/null 2>&1
38
+ rake install > /dev/null 2>&1
39
+ log_info "mnenv $(mnenv version) installed"
40
+
41
+ # Add mnenv to PATH
42
+ export PATH="$HOME/.mnenv/shims:$PATH"
43
+
44
+ # Clean up any existing test state
45
+ log_info "Cleaning up previous test state..."
46
+ rm -f ~/.mnenv/version ~/.mnenv/source
47
+ rm -rf /tmp/mnenv-test-*
48
+
49
+ # Install test versions
50
+ log_info "Installing Metanorma versions: ${VERSIONS[*]}..."
51
+ for version in "${VERSIONS[@]}"; do
52
+ if mnenv install "$version" --source "$SOURCE" > /dev/null 2>&1; then
53
+ log_info " ✓ Installed $version"
54
+ else
55
+ log_warn " ⚠ Failed to install $version (may already be installed)"
56
+ fi
57
+ done
58
+
59
+ echo ""
60
+ log_info "=== Test 1: Global Version Switching ==="
61
+ mnenv global "${VERSIONS[0]}" --source "$SOURCE"
62
+ v1=$(metanorma --version 2>&1 | grep -oP '\d+\.\d+\.\d+' || echo "failed")
63
+ if [ "$v1" = "${VERSIONS[0]}" ]; then
64
+ log_info " ✓ Global ${VERSIONS[0]} verified"
65
+ else
66
+ log_error " ✗ Expected ${VERSIONS[0]}, got $v1"
67
+ exit 1
68
+ fi
69
+
70
+ mnenv global "${VERSIONS[1]}" --source "$SOURCE"
71
+ v2=$(metanorma --version 2>&1 | grep -oP '\d+\.\d+\.\d+' || echo "failed")
72
+ if [ "$v2" = "${VERSIONS[1]}" ]; then
73
+ log_info " ✓ Global ${VERSIONS[1]} verified"
74
+ else
75
+ log_error " ✗ Expected ${VERSIONS[1]}, got $v2"
76
+ exit 1
77
+ fi
78
+
79
+ echo ""
80
+ log_info "=== Test 2: Local Version Override ==="
81
+ mnenv global "${VERSIONS[1]}" --source "$SOURCE"
82
+ TEST_DIR="/tmp/mnenv-test-local"
83
+ mkdir -p "$TEST_DIR"
84
+ cd "$TEST_DIR"
85
+ mnenv local "${VERSIONS[0]}" --source "$SOURCE"
86
+
87
+ v_local=$(metanorma --version 2>&1 | grep -oP '\d+\.\d+\.\d+' || echo "failed")
88
+ if [ "$v_local" = "${VERSIONS[0]}" ]; then
89
+ log_info " ✓ Local ${VERSIONS[0]} overrides global ${VERSIONS[1]}"
90
+ else
91
+ log_error " ✗ Expected ${VERSIONS[0]}, got $v_local"
92
+ exit 1
93
+ fi
94
+
95
+ cd /tmp
96
+ v_outside=$(metanorma --version 2>&1 | grep -oP '\d+\.\d+\.\d+' || echo "failed")
97
+ if [ "$v_outside" = "${VERSIONS[1]}" ]; then
98
+ log_info " ✓ Global ${VERSIONS[1]} restored outside project"
99
+ else
100
+ log_error " ✗ Expected ${VERSIONS[1]}, got $v_outside"
101
+ exit 1
102
+ fi
103
+
104
+ echo ""
105
+ log_info "=== Test 3: Shell Session Override ==="
106
+ cd "$TEST_DIR"
107
+ export METANORMA_VERSION="${VERSIONS[1]}"
108
+ export METANORMA_SOURCE="$SOURCE"
109
+ v_env=$(metanorma --version 2>&1 | grep -oP '\d+\.\d+\.\d+' || echo "failed")
110
+ if [ "$v_env" = "${VERSIONS[1]}" ]; then
111
+ log_info " ✓ METANORMA_VERSION=${VERSIONS[1]} overrides local ${VERSIONS[0]}"
112
+ else
113
+ log_error " ✗ Expected ${VERSIONS[1]}, got $v_env"
114
+ exit 1
115
+ fi
116
+ unset METANORMA_VERSION METANORMA_SOURCE
117
+
118
+ echo ""
119
+ log_info "=== Test 4: Consecutive Switches ==="
120
+ for i in 1 2 3; do
121
+ mnenv global "${VERSIONS[0]}" --source "$SOURCE"
122
+ v1=$(metanorma --version 2>&1 | grep -oP '\d+\.\d+\.\d+' || echo "failed")
123
+
124
+ mnenv global "${VERSIONS[1]}" --source "$SOURCE"
125
+ v2=$(metanorma --version 2>&1 | grep -oP '\d+\.\d+\.\d+' || echo "failed")
126
+
127
+ if [ "$v1" != "${VERSIONS[0]}" ] || [ "$v2" != "${VERSIONS[1]}" ]; then
128
+ log_error " ✗ Round $i failed: v1=$v1, v2=$v2"
129
+ exit 1
130
+ fi
131
+ done
132
+ log_info " ✓ 3 rounds of consecutive switches successful"
133
+
134
+ echo ""
135
+ log_info "=== Test 5: Version List Command ==="
136
+ mnenv versions | grep -q "${VERSIONS[0]}"
137
+ log_info " ✓ ${VERSIONS[0]} in version list"
138
+
139
+ mnenv versions | grep -q "${VERSIONS[1]}"
140
+ log_info " ✓ ${VERSIONS[1]} in version list"
141
+
142
+ echo ""
143
+ log_info "=== All tests passed! ==="
144
+ echo ""
145
+ log_info "Final state:"
146
+ echo " Global version: $(cat ~/.mnenv/version 2>/dev/null || echo 'not set')"
147
+ echo " Global source: $(cat ~/.mnenv/source 2>/dev/null || echo 'not set')"
148
+ echo " Current metanorma: $(metanorma --version 2>&1 | head -1)"
149
+
150
+ # Clean up test directory
151
+ rm -rf "$TEST_DIR"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mnenv
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2026-02-11 00:00:00.000000000 Z
11
+ date: 2026-02-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: git
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: lutaml-model
29
43
  requirement: !ruby/object:Gem::Requirement
@@ -80,6 +94,20 @@ dependencies:
80
94
  - - ">="
81
95
  - !ruby/object:Gem::Version
82
96
  version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: octokit
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
83
111
  - !ruby/object:Gem::Dependency
84
112
  name: paint
85
113
  requirement: !ruby/object:Gem::Requirement
@@ -108,6 +136,20 @@ dependencies:
108
136
  - - "~>"
109
137
  - !ruby/object:Gem::Version
110
138
  version: '1.0'
139
+ - !ruby/object:Gem::Dependency
140
+ name: tty-prompt
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ type: :runtime
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
111
153
  description: Unified interface for discovering and managing Metanorma versions from
112
154
  Gemfile (Docker), Snap, Homebrew, and Chocolatey sources. Provides mnenv CLI command
113
155
  for querying version information.
@@ -119,285 +161,78 @@ extensions: []
119
161
  extra_rdoc_files: []
120
162
  files:
121
163
  - Gemfile
164
+ - PROPOSAL.md
122
165
  - README.adoc
123
166
  - Rakefile
124
- - data/chocolatey/versions.yaml
125
- - data/gemfile/v1.1.6/Gemfile
126
- - data/gemfile/v1.1.6/Gemfile.lock.archived
127
- - data/gemfile/v1.1.7/Gemfile
128
- - data/gemfile/v1.1.7/Gemfile.lock.archived
129
- - data/gemfile/v1.1.8/Gemfile
130
- - data/gemfile/v1.1.8/Gemfile.lock.archived
131
- - data/gemfile/v1.10.0/Gemfile
132
- - data/gemfile/v1.10.0/Gemfile.lock.archived
133
- - data/gemfile/v1.10.1/Gemfile
134
- - data/gemfile/v1.10.1/Gemfile.lock.archived
135
- - data/gemfile/v1.10.10/Gemfile
136
- - data/gemfile/v1.10.10/Gemfile.lock.archived
137
- - data/gemfile/v1.10.11/Gemfile
138
- - data/gemfile/v1.10.11/Gemfile.lock.archived
139
- - data/gemfile/v1.10.2/Gemfile
140
- - data/gemfile/v1.10.2/Gemfile.lock.archived
141
- - data/gemfile/v1.10.3/Gemfile
142
- - data/gemfile/v1.10.3/Gemfile.lock.archived
143
- - data/gemfile/v1.10.5/Gemfile
144
- - data/gemfile/v1.10.5/Gemfile.lock.archived
145
- - data/gemfile/v1.10.6/Gemfile
146
- - data/gemfile/v1.10.6/Gemfile.lock.archived
147
- - data/gemfile/v1.10.7/Gemfile
148
- - data/gemfile/v1.10.7/Gemfile.lock.archived
149
- - data/gemfile/v1.10.8/Gemfile
150
- - data/gemfile/v1.10.8/Gemfile.lock.archived
151
- - data/gemfile/v1.10.9/Gemfile
152
- - data/gemfile/v1.10.9/Gemfile.lock.archived
153
- - data/gemfile/v1.11.0/Gemfile
154
- - data/gemfile/v1.11.0/Gemfile.lock.archived
155
- - data/gemfile/v1.11.1/Gemfile
156
- - data/gemfile/v1.11.1/Gemfile.lock.archived
157
- - data/gemfile/v1.11.4/Gemfile
158
- - data/gemfile/v1.11.4/Gemfile.lock.archived
159
- - data/gemfile/v1.11.5/Gemfile
160
- - data/gemfile/v1.11.5/Gemfile.lock.archived
161
- - data/gemfile/v1.12.10/Gemfile
162
- - data/gemfile/v1.12.10/Gemfile.lock.archived
163
- - data/gemfile/v1.12.3/Gemfile
164
- - data/gemfile/v1.12.3/Gemfile.lock.archived
165
- - data/gemfile/v1.12.4/Gemfile
166
- - data/gemfile/v1.12.4/Gemfile.lock.archived
167
- - data/gemfile/v1.12.5/Gemfile
168
- - data/gemfile/v1.12.5/Gemfile.lock.archived
169
- - data/gemfile/v1.12.6/Gemfile
170
- - data/gemfile/v1.12.6/Gemfile.lock.archived
171
- - data/gemfile/v1.12.8/Gemfile
172
- - data/gemfile/v1.12.8/Gemfile.lock.archived
173
- - data/gemfile/v1.13.0/Gemfile
174
- - data/gemfile/v1.13.0/Gemfile.lock.archived
175
- - data/gemfile/v1.13.2/Gemfile
176
- - data/gemfile/v1.13.2/Gemfile.lock.archived
177
- - data/gemfile/v1.13.3/Gemfile
178
- - data/gemfile/v1.13.3/Gemfile.lock.archived
179
- - data/gemfile/v1.13.4/Gemfile
180
- - data/gemfile/v1.13.4/Gemfile.lock.archived
181
- - data/gemfile/v1.13.5/Gemfile
182
- - data/gemfile/v1.13.5/Gemfile.lock.archived
183
- - data/gemfile/v1.13.7/Gemfile
184
- - data/gemfile/v1.13.7/Gemfile.lock.archived
185
- - data/gemfile/v1.13.8/Gemfile
186
- - data/gemfile/v1.13.8/Gemfile.lock.archived
187
- - data/gemfile/v1.13.9/Gemfile
188
- - data/gemfile/v1.13.9/Gemfile.lock.archived
189
- - data/gemfile/v1.14.3/Gemfile
190
- - data/gemfile/v1.14.3/Gemfile.lock.archived
191
- - data/gemfile/v1.2.12/Gemfile
192
- - data/gemfile/v1.2.12/Gemfile.lock.archived
193
- - data/gemfile/v1.2.2/Gemfile
194
- - data/gemfile/v1.2.2/Gemfile.lock.archived
195
- - data/gemfile/v1.2.3/Gemfile
196
- - data/gemfile/v1.2.3/Gemfile.lock.archived
197
- - data/gemfile/v1.2.6/Gemfile
198
- - data/gemfile/v1.2.6/Gemfile.lock.archived
199
- - data/gemfile/v1.2.8/Gemfile
200
- - data/gemfile/v1.2.8/Gemfile.lock.archived
201
- - data/gemfile/v1.2.9/Gemfile
202
- - data/gemfile/v1.2.9/Gemfile.lock.archived
203
- - data/gemfile/v1.3.1/Gemfile
204
- - data/gemfile/v1.3.1/Gemfile.lock.archived
205
- - data/gemfile/v1.3.2/Gemfile
206
- - data/gemfile/v1.3.2/Gemfile.lock.archived
207
- - data/gemfile/v1.3.4/Gemfile
208
- - data/gemfile/v1.3.4/Gemfile.lock.archived
209
- - data/gemfile/v1.3.5/Gemfile
210
- - data/gemfile/v1.3.5/Gemfile.lock.archived
211
- - data/gemfile/v1.3.6/Gemfile
212
- - data/gemfile/v1.3.6/Gemfile.lock.archived
213
- - data/gemfile/v1.3.9/Gemfile
214
- - data/gemfile/v1.3.9/Gemfile.lock.archived
215
- - data/gemfile/v1.4.0/Gemfile
216
- - data/gemfile/v1.4.0/Gemfile.lock.archived
217
- - data/gemfile/v1.4.10/Gemfile
218
- - data/gemfile/v1.4.10/Gemfile.lock.archived
219
- - data/gemfile/v1.4.11/Gemfile
220
- - data/gemfile/v1.4.11/Gemfile.lock.archived
221
- - data/gemfile/v1.4.12/Gemfile
222
- - data/gemfile/v1.4.12/Gemfile.lock.archived
223
- - data/gemfile/v1.4.13/Gemfile
224
- - data/gemfile/v1.4.13/Gemfile.lock.archived
225
- - data/gemfile/v1.4.14/Gemfile
226
- - data/gemfile/v1.4.14/Gemfile.lock.archived
227
- - data/gemfile/v1.4.18/Gemfile
228
- - data/gemfile/v1.4.18/Gemfile.lock.archived
229
- - data/gemfile/v1.4.3/Gemfile
230
- - data/gemfile/v1.4.3/Gemfile.lock.archived
231
- - data/gemfile/v1.4.4/Gemfile
232
- - data/gemfile/v1.4.4/Gemfile.lock.archived
233
- - data/gemfile/v1.4.5/Gemfile
234
- - data/gemfile/v1.4.5/Gemfile.lock.archived
235
- - data/gemfile/v1.4.6/Gemfile
236
- - data/gemfile/v1.4.6/Gemfile.lock.archived
237
- - data/gemfile/v1.4.7/Gemfile
238
- - data/gemfile/v1.4.7/Gemfile.lock.archived
239
- - data/gemfile/v1.4.8/Gemfile
240
- - data/gemfile/v1.4.8/Gemfile.lock.archived
241
- - data/gemfile/v1.4.9/Gemfile
242
- - data/gemfile/v1.4.9/Gemfile.lock.archived
243
- - data/gemfile/v1.5.0/Gemfile
244
- - data/gemfile/v1.5.0/Gemfile.lock.archived
245
- - data/gemfile/v1.5.10/Gemfile
246
- - data/gemfile/v1.5.10/Gemfile.lock.archived
247
- - data/gemfile/v1.5.11/Gemfile
248
- - data/gemfile/v1.5.11/Gemfile.lock.archived
249
- - data/gemfile/v1.5.15/Gemfile
250
- - data/gemfile/v1.5.15/Gemfile.lock.archived
251
- - data/gemfile/v1.5.16/Gemfile
252
- - data/gemfile/v1.5.16/Gemfile.lock.archived
253
- - data/gemfile/v1.5.17/Gemfile
254
- - data/gemfile/v1.5.17/Gemfile.lock.archived
255
- - data/gemfile/v1.5.18/Gemfile
256
- - data/gemfile/v1.5.18/Gemfile.lock.archived
257
- - data/gemfile/v1.5.19/Gemfile
258
- - data/gemfile/v1.5.19/Gemfile.lock.archived
259
- - data/gemfile/v1.5.20/Gemfile
260
- - data/gemfile/v1.5.20/Gemfile.lock.archived
261
- - data/gemfile/v1.5.21/Gemfile
262
- - data/gemfile/v1.5.21/Gemfile.lock.archived
263
- - data/gemfile/v1.5.22/Gemfile
264
- - data/gemfile/v1.5.22/Gemfile.lock.archived
265
- - data/gemfile/v1.5.23/Gemfile
266
- - data/gemfile/v1.5.23/Gemfile.lock.archived
267
- - data/gemfile/v1.5.24/Gemfile
268
- - data/gemfile/v1.5.24/Gemfile.lock.archived
269
- - data/gemfile/v1.5.3/Gemfile
270
- - data/gemfile/v1.5.3/Gemfile.lock.archived
271
- - data/gemfile/v1.5.4/Gemfile
272
- - data/gemfile/v1.5.4/Gemfile.lock.archived
273
- - data/gemfile/v1.5.5/Gemfile
274
- - data/gemfile/v1.5.5/Gemfile.lock.archived
275
- - data/gemfile/v1.5.6/Gemfile
276
- - data/gemfile/v1.5.6/Gemfile.lock.archived
277
- - data/gemfile/v1.5.7/Gemfile
278
- - data/gemfile/v1.5.7/Gemfile.lock.archived
279
- - data/gemfile/v1.5.8/Gemfile
280
- - data/gemfile/v1.5.8/Gemfile.lock.archived
281
- - data/gemfile/v1.5.9/Gemfile
282
- - data/gemfile/v1.5.9/Gemfile.lock.archived
283
- - data/gemfile/v1.6.1/Gemfile
284
- - data/gemfile/v1.6.1/Gemfile.lock.archived
285
- - data/gemfile/v1.6.10/Gemfile
286
- - data/gemfile/v1.6.10/Gemfile.lock.archived
287
- - data/gemfile/v1.6.11/Gemfile
288
- - data/gemfile/v1.6.11/Gemfile.lock.archived
289
- - data/gemfile/v1.6.12/Gemfile
290
- - data/gemfile/v1.6.12/Gemfile.lock.archived
291
- - data/gemfile/v1.6.13/Gemfile
292
- - data/gemfile/v1.6.13/Gemfile.lock.archived
293
- - data/gemfile/v1.6.14/Gemfile
294
- - data/gemfile/v1.6.14/Gemfile.lock.archived
295
- - data/gemfile/v1.6.15/Gemfile
296
- - data/gemfile/v1.6.15/Gemfile.lock.archived
297
- - data/gemfile/v1.6.2/Gemfile
298
- - data/gemfile/v1.6.2/Gemfile.lock.archived
299
- - data/gemfile/v1.6.3/Gemfile
300
- - data/gemfile/v1.6.3/Gemfile.lock.archived
301
- - data/gemfile/v1.6.4/Gemfile
302
- - data/gemfile/v1.6.4/Gemfile.lock.archived
303
- - data/gemfile/v1.6.5/Gemfile
304
- - data/gemfile/v1.6.5/Gemfile.lock.archived
305
- - data/gemfile/v1.6.6/Gemfile
306
- - data/gemfile/v1.6.6/Gemfile.lock.archived
307
- - data/gemfile/v1.6.7/Gemfile
308
- - data/gemfile/v1.6.7/Gemfile.lock.archived
309
- - data/gemfile/v1.6.9/Gemfile
310
- - data/gemfile/v1.6.9/Gemfile.lock.archived
311
- - data/gemfile/v1.7.0/Gemfile
312
- - data/gemfile/v1.7.0/Gemfile.lock.archived
313
- - data/gemfile/v1.7.1/Gemfile
314
- - data/gemfile/v1.7.1/Gemfile.lock.archived
315
- - data/gemfile/v1.7.2/Gemfile
316
- - data/gemfile/v1.7.2/Gemfile.lock.archived
317
- - data/gemfile/v1.7.3/Gemfile
318
- - data/gemfile/v1.7.3/Gemfile.lock.archived
319
- - data/gemfile/v1.7.4/Gemfile
320
- - data/gemfile/v1.7.4/Gemfile.lock.archived
321
- - data/gemfile/v1.7.5/Gemfile
322
- - data/gemfile/v1.7.5/Gemfile.lock.archived
323
- - data/gemfile/v1.7.6/Gemfile
324
- - data/gemfile/v1.7.6/Gemfile.lock.archived
325
- - data/gemfile/v1.8.10/Gemfile
326
- - data/gemfile/v1.8.10/Gemfile.lock.archived
327
- - data/gemfile/v1.8.11/Gemfile
328
- - data/gemfile/v1.8.11/Gemfile.lock.archived
329
- - data/gemfile/v1.8.3/Gemfile
330
- - data/gemfile/v1.8.3/Gemfile.lock.archived
331
- - data/gemfile/v1.8.4/Gemfile
332
- - data/gemfile/v1.8.4/Gemfile.lock.archived
333
- - data/gemfile/v1.8.5/Gemfile
334
- - data/gemfile/v1.8.5/Gemfile.lock.archived
335
- - data/gemfile/v1.8.6/Gemfile
336
- - data/gemfile/v1.8.6/Gemfile.lock.archived
337
- - data/gemfile/v1.8.7/Gemfile
338
- - data/gemfile/v1.8.7/Gemfile.lock.archived
339
- - data/gemfile/v1.8.8/Gemfile
340
- - data/gemfile/v1.8.8/Gemfile.lock.archived
341
- - data/gemfile/v1.8.9/Gemfile
342
- - data/gemfile/v1.8.9/Gemfile.lock.archived
343
- - data/gemfile/v1.9.0/Gemfile
344
- - data/gemfile/v1.9.0/Gemfile.lock.archived
345
- - data/gemfile/v1.9.1/Gemfile
346
- - data/gemfile/v1.9.1/Gemfile.lock.archived
347
- - data/gemfile/v1.9.2/Gemfile
348
- - data/gemfile/v1.9.2/Gemfile.lock.archived
349
- - data/gemfile/v1.9.3/Gemfile
350
- - data/gemfile/v1.9.3/Gemfile.lock.archived
351
- - data/gemfile/v1.9.4/Gemfile
352
- - data/gemfile/v1.9.4/Gemfile.lock.archived
353
- - data/gemfile/v1.9.5/Gemfile
354
- - data/gemfile/v1.9.5/Gemfile.lock.archived
355
- - data/gemfile/v1.9.6/Gemfile
356
- - data/gemfile/v1.9.6/Gemfile.lock.archived
357
- - data/gemfile/v1.9.7/Gemfile
358
- - data/gemfile/v1.9.7/Gemfile.lock.archived
359
- - data/gemfile/v1.9.8/Gemfile
360
- - data/gemfile/v1.9.8/Gemfile.lock.archived
361
- - data/gemfile/versions.yaml
362
- - data/homebrew/versions.yaml
363
- - data/snap/github_tags.json
364
- - data/snap/versions.yaml
167
+ - bin/Install-Mnenv.ps1
168
+ - bin/mnenv-installer
169
+ - completions/bash
170
+ - completions/fish
171
+ - completions/powershell.ps1
172
+ - completions/zsh
365
173
  - exe/mnenv
366
174
  - lib/mnenv.rb
175
+ - lib/mnenv/binary_repository.rb
176
+ - lib/mnenv/chocolatey.rb
367
177
  - lib/mnenv/chocolatey/fetcher.rb
368
178
  - lib/mnenv/chocolatey_repository.rb
369
179
  - lib/mnenv/cli.rb
370
180
  - lib/mnenv/commands.rb
181
+ - lib/mnenv/commands/available_command.rb
371
182
  - lib/mnenv/commands/chocolatey_command.rb
372
183
  - lib/mnenv/commands/gemfile_command.rb
373
184
  - lib/mnenv/commands/homebrew_command.rb
185
+ - lib/mnenv/commands/install_command.rb
374
186
  - lib/mnenv/commands/snap_command.rb
187
+ - lib/mnenv/commands/uninstall_command.rb
188
+ - lib/mnenv/commands/version_command.rb
375
189
  - lib/mnenv/fetcher.rb
190
+ - lib/mnenv/gemfile.rb
376
191
  - lib/mnenv/gemfile/extractor.rb
377
192
  - lib/mnenv/gemfile/fetcher.rb
378
193
  - lib/mnenv/gemfile_repository.rb
194
+ - lib/mnenv/homebrew.rb
379
195
  - lib/mnenv/homebrew/fetcher.rb
380
196
  - lib/mnenv/homebrew_repository.rb
197
+ - lib/mnenv/installer.rb
198
+ - lib/mnenv/installer/base.rb
199
+ - lib/mnenv/installer/factory.rb
200
+ - lib/mnenv/installers/binary_installer.rb
201
+ - lib/mnenv/installers/gemfile_installer.rb
381
202
  - lib/mnenv/json_formatter.rb
382
203
  - lib/mnenv/logger.rb
383
204
  - lib/mnenv/models.rb
205
+ - lib/mnenv/models/binary_version.rb
384
206
  - lib/mnenv/models/chocolatey_version.rb
385
207
  - lib/mnenv/models/gemfile_version.rb
386
208
  - lib/mnenv/models/homebrew_version.rb
387
209
  - lib/mnenv/models/snap_version.rb
388
210
  - lib/mnenv/models/version.rb
211
+ - lib/mnenv/paths.rb
389
212
  - lib/mnenv/repository.rb
213
+ - lib/mnenv/resolver
214
+ - lib/mnenv/shells/base.rb
215
+ - lib/mnenv/shells/bash.rb
216
+ - lib/mnenv/shells/cmd.rb
217
+ - lib/mnenv/shells/factory.rb
218
+ - lib/mnenv/shells/power_shell.rb
219
+ - lib/mnenv/shim_manager.rb
220
+ - lib/mnenv/snap.rb
390
221
  - lib/mnenv/snap/fetcher.rb
391
222
  - lib/mnenv/snap_repository.rb
223
+ - lib/mnenv/source_registry.rb
392
224
  - lib/mnenv/version.rb
225
+ - lib/mnenv/versions_manager.rb
393
226
  - mnenv.gemspec
394
- - snapcraft-list-copied-from-site.md
395
- homepage: https://github.com/metanorma/versions
227
+ - scripts/cross-source-switching-test.sh
228
+ - scripts/integration-test.sh
229
+ - scripts/version-switching-test.sh
230
+ homepage: https://github.com/metanorma/mnenv
396
231
  licenses:
397
232
  - MIT
398
233
  metadata:
399
- homepage_uri: https://github.com/metanorma/versions
400
- source_code_uri: https://github.com/metanorma/versions
234
+ homepage_uri: https://github.com/metanorma/mnenv
235
+ source_code_uri: https://github.com/metanorma/mnenv
401
236
  rubygems_mfa_required: 'true'
402
237
  post_install_message:
403
238
  rdoc_options: []