kanrisuru 0.13.0 → 0.14.0

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 (252) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +4 -0
  3. data/lib/kanrisuru/core/apt/commands/autoclean.rb +13 -0
  4. data/lib/kanrisuru/core/apt/commands/autoremove.rb +15 -0
  5. data/lib/kanrisuru/core/apt/commands/clean.rb +13 -0
  6. data/lib/kanrisuru/core/apt/commands/full_upgrade.rb +14 -0
  7. data/lib/kanrisuru/core/apt/commands/install.rb +22 -0
  8. data/lib/kanrisuru/core/apt/commands/list.rb +21 -0
  9. data/lib/kanrisuru/core/apt/commands/purge.rb +18 -0
  10. data/lib/kanrisuru/core/apt/commands/remove.rb +18 -0
  11. data/lib/kanrisuru/core/apt/commands/search.rb +18 -0
  12. data/lib/kanrisuru/core/apt/commands/show.rb +21 -0
  13. data/lib/kanrisuru/core/apt/commands/update.rb +14 -0
  14. data/lib/kanrisuru/core/apt/commands/upgrade.rb +14 -0
  15. data/lib/kanrisuru/core/apt/commands.rb +14 -0
  16. data/lib/kanrisuru/core/apt/parser.rb +6 -0
  17. data/lib/kanrisuru/core/apt/parsers/base.rb +51 -0
  18. data/lib/kanrisuru/core/apt/parsers/list.rb +28 -0
  19. data/lib/kanrisuru/core/apt/parsers/search.rb +32 -0
  20. data/lib/kanrisuru/core/apt/parsers/show.rb +90 -0
  21. data/lib/kanrisuru/core/apt/types.rb +36 -0
  22. data/lib/kanrisuru/core/apt.rb +4 -284
  23. data/lib/kanrisuru/core/archive/commands/tar.rb +126 -0
  24. data/lib/kanrisuru/core/archive/commands.rb +3 -0
  25. data/lib/kanrisuru/core/archive/types.rb +9 -0
  26. data/lib/kanrisuru/core/archive.rb +3 -121
  27. data/lib/kanrisuru/core/disk/commands/blkid.rb +35 -0
  28. data/lib/kanrisuru/core/disk/commands/df.rb +26 -0
  29. data/lib/kanrisuru/core/disk/commands/du.rb +24 -0
  30. data/lib/kanrisuru/core/disk/commands/lsblk.rb +54 -0
  31. data/lib/kanrisuru/core/disk/commands.rb +6 -0
  32. data/lib/kanrisuru/core/disk/parser.rb +6 -0
  33. data/lib/kanrisuru/core/disk/parsers/blkid.rb +72 -0
  34. data/lib/kanrisuru/core/disk/parsers/df.rb +33 -0
  35. data/lib/kanrisuru/core/disk/parsers/du.rb +25 -0
  36. data/lib/kanrisuru/core/disk/parsers/lsblk.rb +96 -0
  37. data/lib/kanrisuru/core/disk/types.rb +21 -0
  38. data/lib/kanrisuru/core/disk.rb +5 -290
  39. data/lib/kanrisuru/core/dmi/commands/dmi.rb +42 -0
  40. data/lib/kanrisuru/core/dmi/commands.rb +3 -0
  41. data/lib/kanrisuru/core/dmi/parser.rb +3 -0
  42. data/lib/kanrisuru/core/dmi/parsers/dmi.rb +149 -0
  43. data/lib/kanrisuru/core/dmi/types.rb +361 -0
  44. data/lib/kanrisuru/core/dmi.rb +4 -522
  45. data/lib/kanrisuru/core/file/commands/chmod.rb +29 -0
  46. data/lib/kanrisuru/core/file/commands/chown.rb +35 -0
  47. data/lib/kanrisuru/core/file/commands/copy.rb +56 -0
  48. data/lib/kanrisuru/core/file/commands/link.rb +25 -0
  49. data/lib/kanrisuru/core/file/commands/mkdir.rb +37 -0
  50. data/lib/kanrisuru/core/file/commands/move.rb +48 -0
  51. data/lib/kanrisuru/core/file/commands/rm.rb +38 -0
  52. data/lib/kanrisuru/core/file/commands/symlink.rb +46 -0
  53. data/lib/kanrisuru/core/file/commands/touch.rb +33 -0
  54. data/lib/kanrisuru/core/file/commands/unlink.rb +13 -0
  55. data/lib/kanrisuru/core/file/commands/wc.rb +16 -0
  56. data/lib/kanrisuru/core/file/commands.rb +29 -0
  57. data/lib/kanrisuru/core/file/parser.rb +3 -0
  58. data/lib/kanrisuru/core/file/parsers/wc.rb +16 -0
  59. data/lib/kanrisuru/core/file/types.rb +9 -0
  60. data/lib/kanrisuru/core/file.rb +4 -312
  61. data/lib/kanrisuru/core/find/commands/find.rb +97 -0
  62. data/lib/kanrisuru/core/find/commands.rb +3 -0
  63. data/lib/kanrisuru/core/find/constants.rb +9 -0
  64. data/lib/kanrisuru/core/find/parser.rb +3 -0
  65. data/lib/kanrisuru/core/find/parsers/find.rb +18 -0
  66. data/lib/kanrisuru/core/find/types.rb +9 -0
  67. data/lib/kanrisuru/core/find.rb +5 -97
  68. data/lib/kanrisuru/core/group/commands/create_group.rb +21 -0
  69. data/lib/kanrisuru/core/group/commands/delete_group.rb +16 -0
  70. data/lib/kanrisuru/core/group/commands/get_gid.rb +17 -0
  71. data/lib/kanrisuru/core/group/commands/get_group.rb +29 -0
  72. data/lib/kanrisuru/core/group/commands/is_group.rb +14 -0
  73. data/lib/kanrisuru/core/group/commands/update_group.rb +23 -0
  74. data/lib/kanrisuru/core/group/commands.rb +8 -0
  75. data/lib/kanrisuru/core/group/parser.rb +4 -0
  76. data/lib/kanrisuru/core/group/parsers/gid.rb +15 -0
  77. data/lib/kanrisuru/core/group/parsers/group.rb +15 -0
  78. data/lib/kanrisuru/core/group/types.rb +10 -0
  79. data/lib/kanrisuru/core/group.rb +4 -81
  80. data/lib/kanrisuru/core/ip/commands/address.rb +69 -0
  81. data/lib/kanrisuru/core/ip/commands/address_label.rb +38 -0
  82. data/lib/kanrisuru/core/ip/commands/link.rb +74 -0
  83. data/lib/kanrisuru/core/ip/commands/maddress.rb +33 -0
  84. data/lib/kanrisuru/core/ip/commands/neighbour.rb +55 -0
  85. data/lib/kanrisuru/core/ip/commands/route.rb +115 -0
  86. data/lib/kanrisuru/core/ip/commands/rule.rb +42 -0
  87. data/lib/kanrisuru/core/ip/commands.rb +24 -0
  88. data/lib/kanrisuru/core/ip/constants.rb +13 -0
  89. data/lib/kanrisuru/core/ip/parser.rb +10 -0
  90. data/lib/kanrisuru/core/ip/parsers/address.rb +104 -0
  91. data/lib/kanrisuru/core/ip/parsers/address_label.rb +27 -0
  92. data/lib/kanrisuru/core/ip/parsers/base.rb +166 -0
  93. data/lib/kanrisuru/core/ip/parsers/link.rb +86 -0
  94. data/lib/kanrisuru/core/ip/parsers/maddress.rb +85 -0
  95. data/lib/kanrisuru/core/ip/parsers/neighbour.rb +89 -0
  96. data/lib/kanrisuru/core/ip/parsers/route.rb +76 -0
  97. data/lib/kanrisuru/core/ip/parsers/rule.rb +60 -0
  98. data/lib/kanrisuru/core/ip/types.rb +46 -0
  99. data/lib/kanrisuru/core/ip.rb +5 -995
  100. data/lib/kanrisuru/core/mount/commands/mount.rb +65 -0
  101. data/lib/kanrisuru/core/mount/commands/umount.rb +35 -0
  102. data/lib/kanrisuru/core/mount/commands.rb +49 -0
  103. data/lib/kanrisuru/core/mount.rb +2 -125
  104. data/lib/kanrisuru/core/path/commands/ls.rb +26 -0
  105. data/lib/kanrisuru/core/path/commands/pwd.rb +16 -0
  106. data/lib/kanrisuru/core/path/commands/readlink.rb +22 -0
  107. data/lib/kanrisuru/core/path/commands/realpath.rb +18 -0
  108. data/lib/kanrisuru/core/path/commands/which.rb +19 -0
  109. data/lib/kanrisuru/core/path/commands/whoami.rb +16 -0
  110. data/lib/kanrisuru/core/path/commands.rb +8 -0
  111. data/lib/kanrisuru/core/path/parser.rb +4 -0
  112. data/lib/kanrisuru/core/path/parsers/ls.rb +53 -0
  113. data/lib/kanrisuru/core/path/parsers/which.rb +18 -0
  114. data/lib/kanrisuru/core/path/types.rb +12 -0
  115. data/lib/kanrisuru/core/path.rb +4 -121
  116. data/lib/kanrisuru/core/socket/commands/ss.rb +44 -0
  117. data/lib/kanrisuru/core/socket/commands.rb +3 -0
  118. data/lib/kanrisuru/core/socket/constants.rb +29 -0
  119. data/lib/kanrisuru/core/socket/parser.rb +3 -0
  120. data/lib/kanrisuru/core/socket/parsers/ss.rb +109 -0
  121. data/lib/kanrisuru/core/socket/types.rb +18 -0
  122. data/lib/kanrisuru/core/socket.rb +5 -164
  123. data/lib/kanrisuru/core/stat/commands/stat.rb +62 -0
  124. data/lib/kanrisuru/core/stat/commands.rb +3 -0
  125. data/lib/kanrisuru/core/stat/parser.rb +3 -0
  126. data/lib/kanrisuru/core/stat/parsers/stat.rb +34 -0
  127. data/lib/kanrisuru/core/stat/types.rb +14 -0
  128. data/lib/kanrisuru/core/stat.rb +4 -81
  129. data/lib/kanrisuru/core/stream/commands/cat.rb +25 -0
  130. data/lib/kanrisuru/core/stream/commands/echo.rb +20 -0
  131. data/lib/kanrisuru/core/stream/commands/head.rb +18 -0
  132. data/lib/kanrisuru/core/stream/commands/read_file_chunk.rb +21 -0
  133. data/lib/kanrisuru/core/stream/commands/sed.rb +23 -0
  134. data/lib/kanrisuru/core/stream/commands/tail.rb +18 -0
  135. data/lib/kanrisuru/core/stream/commands.rb +27 -0
  136. data/lib/kanrisuru/core/stream/parser.rb +4 -0
  137. data/lib/kanrisuru/core/stream/parsers/echo.rb +17 -0
  138. data/lib/kanrisuru/core/stream/parsers/sed.rb +17 -0
  139. data/lib/kanrisuru/core/stream.rb +3 -104
  140. data/lib/kanrisuru/core/system/commands/cpu_info.rb +32 -0
  141. data/lib/kanrisuru/core/system/commands/free.rb +25 -0
  142. data/lib/kanrisuru/core/system/commands/kernel_statistics.rb +21 -0
  143. data/lib/kanrisuru/core/system/commands/kill.rb +22 -0
  144. data/lib/kanrisuru/core/system/commands/last.rb +31 -0
  145. data/lib/kanrisuru/core/system/commands/load_average.rb +16 -0
  146. data/lib/kanrisuru/core/system/commands/load_env.rb +16 -0
  147. data/lib/kanrisuru/core/system/commands/lscpu.rb +17 -0
  148. data/lib/kanrisuru/core/system/commands/lsof.rb +16 -0
  149. data/lib/kanrisuru/core/system/commands/poweroff.rb +42 -0
  150. data/lib/kanrisuru/core/system/commands/ps.rb +35 -0
  151. data/lib/kanrisuru/core/system/commands/reboot.rb +42 -0
  152. data/lib/kanrisuru/core/system/commands/uptime.rb +18 -0
  153. data/lib/kanrisuru/core/system/commands/w.rb +24 -0
  154. data/lib/kanrisuru/core/system/commands.rb +34 -0
  155. data/lib/kanrisuru/core/system/parser.rb +11 -0
  156. data/lib/kanrisuru/core/system/parsers/kernel_statistics.rb +56 -0
  157. data/lib/kanrisuru/core/system/parsers/last.rb +64 -0
  158. data/lib/kanrisuru/core/system/parsers/load_average.rb +15 -0
  159. data/lib/kanrisuru/core/system/parsers/load_env.rb +24 -0
  160. data/lib/kanrisuru/core/system/parsers/lscpu.rb +90 -0
  161. data/lib/kanrisuru/core/system/parsers/lsof.rb +62 -0
  162. data/lib/kanrisuru/core/system/parsers/ps.rb +71 -0
  163. data/lib/kanrisuru/core/system/parsers/uptime.rb +38 -0
  164. data/lib/kanrisuru/core/system/parsers/w.rb +30 -0
  165. data/lib/kanrisuru/core/system/types.rb +108 -0
  166. data/lib/kanrisuru/core/system.rb +4 -687
  167. data/lib/kanrisuru/core/transfer/commands/download.rb +26 -0
  168. data/lib/kanrisuru/core/transfer/commands/upload.rb +23 -0
  169. data/lib/kanrisuru/core/transfer/commands/wget.rb +168 -0
  170. data/lib/kanrisuru/core/transfer/commands.rb +5 -0
  171. data/lib/kanrisuru/core/transfer/constants.rb +10 -0
  172. data/lib/kanrisuru/core/transfer.rb +3 -199
  173. data/lib/kanrisuru/core/user/commands/create_user.rb +57 -0
  174. data/lib/kanrisuru/core/user/commands/delete_user.rb +20 -0
  175. data/lib/kanrisuru/core/user/commands/get_uid.rb +15 -0
  176. data/lib/kanrisuru/core/user/commands/get_user.rb +48 -0
  177. data/lib/kanrisuru/core/user/commands/is_user.rb +14 -0
  178. data/lib/kanrisuru/core/user/commands/update_user.rb +63 -0
  179. data/lib/kanrisuru/core/user/commands.rb +8 -0
  180. data/lib/kanrisuru/core/user/parser.rb +4 -0
  181. data/lib/kanrisuru/core/user/parsers/getent.rb +17 -0
  182. data/lib/kanrisuru/core/user/parsers/groups.rb +17 -0
  183. data/lib/kanrisuru/core/user/types.rb +11 -0
  184. data/lib/kanrisuru/core/user.rb +4 -182
  185. data/lib/kanrisuru/core/yum/commands/autoremove.rb +14 -0
  186. data/lib/kanrisuru/core/yum/commands/clean.rb +23 -0
  187. data/lib/kanrisuru/core/yum/commands/erase.rb +20 -0
  188. data/lib/kanrisuru/core/yum/commands/info.rb +21 -0
  189. data/lib/kanrisuru/core/yum/commands/install.rb +18 -0
  190. data/lib/kanrisuru/core/yum/commands/list.rb +30 -0
  191. data/lib/kanrisuru/core/yum/commands/localinstall.rb +22 -0
  192. data/lib/kanrisuru/core/yum/commands/remove.rb +20 -0
  193. data/lib/kanrisuru/core/yum/commands/repolist.rb +20 -0
  194. data/lib/kanrisuru/core/yum/commands/search.rb +21 -0
  195. data/lib/kanrisuru/core/yum/commands/update.rb +14 -0
  196. data/lib/kanrisuru/core/yum/commands/upgrade.rb +14 -0
  197. data/lib/kanrisuru/core/yum/commands.rb +39 -0
  198. data/lib/kanrisuru/core/yum/parser.rb +7 -0
  199. data/lib/kanrisuru/core/yum/parsers/base.rb +31 -0
  200. data/lib/kanrisuru/core/yum/parsers/info.rb +69 -0
  201. data/lib/kanrisuru/core/yum/parsers/list.rb +24 -0
  202. data/lib/kanrisuru/core/yum/parsers/repolist.rb +60 -0
  203. data/lib/kanrisuru/core/yum/parsers/search.rb +30 -0
  204. data/lib/kanrisuru/core/yum/types.rb +41 -0
  205. data/lib/kanrisuru/core/yum.rb +4 -347
  206. data/lib/kanrisuru/core/zypper/commands/add_lock.rb +22 -0
  207. data/lib/kanrisuru/core/zypper/commands/add_repo.rb +38 -0
  208. data/lib/kanrisuru/core/zypper/commands/add_service.rb +26 -0
  209. data/lib/kanrisuru/core/zypper/commands/clean_cache.rb +22 -0
  210. data/lib/kanrisuru/core/zypper/commands/clean_locks.rb +17 -0
  211. data/lib/kanrisuru/core/zypper/commands/dist_upgrade.rb +25 -0
  212. data/lib/kanrisuru/core/zypper/commands/info.rb +25 -0
  213. data/lib/kanrisuru/core/zypper/commands/install.rb +39 -0
  214. data/lib/kanrisuru/core/zypper/commands/install_new_recommends.rb +23 -0
  215. data/lib/kanrisuru/core/zypper/commands/list_locks.rb +22 -0
  216. data/lib/kanrisuru/core/zypper/commands/list_patches.rb +34 -0
  217. data/lib/kanrisuru/core/zypper/commands/list_repos.rb +21 -0
  218. data/lib/kanrisuru/core/zypper/commands/list_services.rb +21 -0
  219. data/lib/kanrisuru/core/zypper/commands/list_updates.rb +30 -0
  220. data/lib/kanrisuru/core/zypper/commands/modify_repo.rb +48 -0
  221. data/lib/kanrisuru/core/zypper/commands/modify_service.rb +40 -0
  222. data/lib/kanrisuru/core/zypper/commands/patch.rb +40 -0
  223. data/lib/kanrisuru/core/zypper/commands/patch_check.rb +29 -0
  224. data/lib/kanrisuru/core/zypper/commands/purge_kernels.rb +18 -0
  225. data/lib/kanrisuru/core/zypper/commands/refresh_repos.rb +24 -0
  226. data/lib/kanrisuru/core/zypper/commands/refresh_services.rb +21 -0
  227. data/lib/kanrisuru/core/zypper/commands/remove.rb +26 -0
  228. data/lib/kanrisuru/core/zypper/commands/remove_lock.rb +22 -0
  229. data/lib/kanrisuru/core/zypper/commands/remove_repo.rb +32 -0
  230. data/lib/kanrisuru/core/zypper/commands/remove_service.rb +21 -0
  231. data/lib/kanrisuru/core/zypper/commands/rename_repo.rb +20 -0
  232. data/lib/kanrisuru/core/zypper/commands/search.rb +52 -0
  233. data/lib/kanrisuru/core/zypper/commands/source_install.rb +22 -0
  234. data/lib/kanrisuru/core/zypper/commands/update.rb +27 -0
  235. data/lib/kanrisuru/core/zypper/commands/verify.rb +23 -0
  236. data/lib/kanrisuru/core/zypper/commands.rb +109 -0
  237. data/lib/kanrisuru/core/zypper/constants.rb +19 -0
  238. data/lib/kanrisuru/core/zypper/parser.rb +11 -0
  239. data/lib/kanrisuru/core/zypper/parsers/base.rb +18 -0
  240. data/lib/kanrisuru/core/zypper/parsers/info.rb +77 -0
  241. data/lib/kanrisuru/core/zypper/parsers/list_locks.rb +36 -0
  242. data/lib/kanrisuru/core/zypper/parsers/list_patches.rb +40 -0
  243. data/lib/kanrisuru/core/zypper/parsers/list_repos.rb +37 -0
  244. data/lib/kanrisuru/core/zypper/parsers/list_services.rb +36 -0
  245. data/lib/kanrisuru/core/zypper/parsers/list_updates.rb +32 -0
  246. data/lib/kanrisuru/core/zypper/parsers/patch_check.rb +34 -0
  247. data/lib/kanrisuru/core/zypper/parsers/search.rb +37 -0
  248. data/lib/kanrisuru/core/zypper/types.rb +88 -0
  249. data/lib/kanrisuru/core/zypper.rb +5 -998
  250. data/lib/kanrisuru/version.rb +1 -1
  251. data/spec/unit/util_spec.rb +16 -0
  252. metadata +231 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5c3224eaa762b9db3ba0544a1fd7195f477cd6681cd4f5ddf9638e512d476c5f
4
- data.tar.gz: c592a88c34b8ecd9446cccaa800f14f34e48f9cccec6bde70142b11218e194e0
3
+ metadata.gz: 29120990eb0245c731d92af7b9905b1357309e157938274f87032ead18230c42
4
+ data.tar.gz: 03a75d2d70f1aa5f72f1c9d2039e9f4002d06ca13eb0ad8b67d7e60e41a9a2e4
5
5
  SHA512:
6
- metadata.gz: 491f30a9148d1c99897eaec94de93357875e4c9dfa41cf86005eeeab2d7fe72fad63726bc0493b5ac2b4058f8ae70d4804778dee8a9e7a802e054c2374346e1d
7
- data.tar.gz: 67c4732c93718dd1e49f86b2c06986cccef3e38887ade89815cbb091b026af63427b6ad108ff26847e33874109decb78466ed5d3ca98875401414e376c7fd0e0
6
+ metadata.gz: f3f0a9244cf44b5d722662b56afefa823f305e3f86eda08224369bd70fce5f88cdf84fad7dd9222a60d143a7b3bcc61f27ef57a9e54076b551655223d9e94a15
7
+ data.tar.gz: 4cfa00635d6daeeb0d4bbaa97c5a7c09ccd001b9dc53072d55ddd025086209701dbd3c3739650eb501cf22f94c3aaf471f877016cc6870add3c2b4a075c58dc2
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ ## Kanrisuru 0.14.0 (December 08, 2021) ##
2
+ * Add additional unit test cases for `util` methods.
3
+ * Refactor the `core` module commands into smaller files, with each command split up. Also refactor parsing code into separate `Parser` class.
4
+
1
5
  ## Kanrisuru 0.13.0 (December 06, 2021) ##
2
6
  * Add functional test cases for `Kanrisuru::Result` class.
3
7
  * Refactor integration tests for better parallelization with the `parallel_tests` gem. This dropped overall test time from 35 minutes, to 22 minutes after first integration with 1 processor. After scaling upto 8 core machine, the run time dropped to 16 minutes, but was still sending the entire test file to a processor. By splitting up each host test into a seperate file, the run time dropped to a little over 9 minutes. There's probably a way to optimize which test gets run together, but overall a much better scenario.
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Kanrisuru
4
+ module Core
5
+ module Apt
6
+ def apt_autoclean(_opts)
7
+ command = Kanrisuru::Command.new('apt-get autoclean')
8
+ execute_shell(command)
9
+ Kanrisuru::Result.new(command)
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Kanrisuru
4
+ module Core
5
+ module Apt
6
+ def apt_autoremove(_opts)
7
+ command = Kanrisuru::Command.new('apt-get autoremove')
8
+ command.append_flag('-y')
9
+
10
+ execute_shell(command)
11
+ Kanrisuru::Result.new(command)
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Kanrisuru
4
+ module Core
5
+ module Apt
6
+ def apt_clean(_opts)
7
+ command = Kanrisuru::Command.new('apt-get clean')
8
+ execute_shell(command)
9
+ Kanrisuru::Result.new(command)
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Kanrisuru
4
+ module Core
5
+ module Apt
6
+ def apt_full_upgrade(_opts)
7
+ command = Kanrisuru::Command.new('apt full-upgrade')
8
+ command.append_flag('-y')
9
+ execute_shell(command)
10
+ Kanrisuru::Result.new(command)
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Kanrisuru
4
+ module Core
5
+ module Apt
6
+ def apt_install(opts)
7
+ command = Kanrisuru::Command.new('apt-get install')
8
+ command.append_flag('-y')
9
+
10
+ command.append_flag('--no-upgrade', opts[:no_upgrade])
11
+ command.append_flag('--only-upgrade', opts[:only_upgrade])
12
+ command.append_flag('--reinstall', opts[:reinstall])
13
+
14
+ packages = Kanrisuru::Util.array_join_string(opts[:packages], ' ')
15
+ command << packages
16
+
17
+ execute_shell(command)
18
+ Kanrisuru::Result.new(command)
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Kanrisuru
4
+ module Core
5
+ module Apt
6
+ def apt_list(opts)
7
+ command = Kanrisuru::Command.new('apt list')
8
+ command.append_flag('--installed', opts[:installed])
9
+ command.append_flag('--upgradeable', opts[:upgradeable])
10
+ command.append_flag('--all-versions', opts[:all_versions])
11
+ command.append_arg('-a', opts[:package_name])
12
+
13
+ execute_shell(command)
14
+
15
+ Kanrisuru::Result.new(command) do |cmd|
16
+ Parser::List.parse(cmd)
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Kanrisuru
4
+ module Core
5
+ module Apt
6
+ def apt_purge(opts)
7
+ command = Kanrisuru::Command.new('apt-get purge')
8
+ command.append_flag('-y')
9
+
10
+ packages = Kanrisuru::Util.array_join_string(opts[:packages], ' ')
11
+ command << packages
12
+
13
+ execute_shell(command)
14
+ Kanrisuru::Result.new(command)
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Kanrisuru
4
+ module Core
5
+ module Apt
6
+ def apt_remove(opts)
7
+ command = Kanrisuru::Command.new('apt-get remove')
8
+ command.append_flag('-y')
9
+
10
+ packages = Kanrisuru::Util.array_join_string(opts[:packages], ' ')
11
+ command << packages
12
+
13
+ execute_shell(command)
14
+ Kanrisuru::Result.new(command)
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Kanrisuru
4
+ module Core
5
+ module Apt
6
+ def apt_search(opts)
7
+ command = Kanrisuru::Command.new('apt search')
8
+ command << opts[:query]
9
+
10
+ execute_shell(command)
11
+
12
+ Kanrisuru::Result.new(command) do |cmd|
13
+ Parser::Search.parse(cmd)
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Kanrisuru
4
+ module Core
5
+ module Apt
6
+ def apt_show(opts)
7
+ command = Kanrisuru::Command.new('apt show')
8
+ command.append_flag('-a')
9
+
10
+ packages = Kanrisuru::Util.array_join_string(opts[:packages], ' ')
11
+ command << packages
12
+
13
+ execute_shell(command)
14
+
15
+ Kanrisuru::Result.new(command) do |cmd|
16
+ Parser::Show.parse(cmd)
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Kanrisuru
4
+ module Core
5
+ module Apt
6
+ def apt_update(_opts)
7
+ command = Kanrisuru::Command.new('apt-get update')
8
+ command.append_flag('-y')
9
+ execute_shell(command)
10
+ Kanrisuru::Result.new(command)
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Kanrisuru
4
+ module Core
5
+ module Apt
6
+ def apt_upgrade(_opts)
7
+ command = Kanrisuru::Command.new('apt-get upgrade')
8
+ command.append_flag('-y')
9
+ execute_shell(command)
10
+ Kanrisuru::Result.new(command)
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'commands/autoclean'
4
+ require_relative 'commands/autoremove'
5
+ require_relative 'commands/clean'
6
+ require_relative 'commands/full_upgrade'
7
+ require_relative 'commands/install'
8
+ require_relative 'commands/list'
9
+ require_relative 'commands/purge'
10
+ require_relative 'commands/remove'
11
+ require_relative 'commands/search'
12
+ require_relative 'commands/show'
13
+ require_relative 'commands/update'
14
+ require_relative 'commands/upgrade'
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'parsers/base'
4
+ require_relative 'parsers/list'
5
+ require_relative 'parsers/search'
6
+ require_relative 'parsers/show'
@@ -0,0 +1,51 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Kanrisuru
4
+ module Core
5
+ module Apt
6
+ module Parser
7
+ class Base
8
+ class << self
9
+ def extract_single_line(line)
10
+ line.split(': ')[1]
11
+ end
12
+
13
+ def parse_comma_values(string)
14
+ string.split(', ')
15
+ end
16
+
17
+ def parse_apt_sources(string)
18
+ url, dist, architecture, = string.split
19
+ Source.new(url, dist, architecture)
20
+ end
21
+
22
+ def parse_apt_line(line)
23
+ values = line.split('/')
24
+ return if values.length < 2
25
+
26
+ package = values[0]
27
+
28
+ values = values[1].split
29
+ suites = values[0].split(',')
30
+ version = values[1]
31
+ architecture = values[2]
32
+
33
+ installed = false
34
+ upgradeable = false
35
+ automatic = false
36
+
37
+ if values.length > 3
38
+ installed = values[3].include?('installed')
39
+ upgradeable = values[3].include?('upgradeable')
40
+ automatic = values[3].include?('automatic')
41
+ end
42
+
43
+ Kanrisuru::Core::Apt::PackageOverview.new(package, version, suites, architecture, installed, upgradeable,
44
+ automatic)
45
+ end
46
+ end
47
+ end
48
+ end
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Kanrisuru
4
+ module Core
5
+ module Apt
6
+ module Parser
7
+ class List < Base
8
+ class << self
9
+ def parse(command)
10
+ lines = command.to_a
11
+ lines.shift
12
+
13
+ result = []
14
+ lines.each do |line|
15
+ item = parse_apt_line(line)
16
+ next unless item
17
+
18
+ result << item
19
+ end
20
+
21
+ result
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Kanrisuru
4
+ module Core
5
+ module Apt
6
+ module Parser
7
+ class Search < Base
8
+ class << self
9
+ def parse(command)
10
+ lines = command.to_a
11
+ lines.shift
12
+ lines.shift
13
+
14
+ result = []
15
+
16
+ lines.each do |line|
17
+ next unless line.include?('/')
18
+
19
+ item = parse_apt_line(line)
20
+ next unless item
21
+
22
+ result << item
23
+ end
24
+
25
+ result
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,90 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Kanrisuru
4
+ module Core
5
+ module Apt
6
+ module Parser
7
+ class Show < Base
8
+ class << self
9
+ def parse(command)
10
+ lines = command.to_a
11
+ rows = []
12
+
13
+ current_row = nil
14
+ description = ''
15
+
16
+ lines.each do |line|
17
+ next if line == 'WARNING: apt does not have a stable CLI interface. Use with caution in scripts.'
18
+ next if ['', nil, '.'].include?(line)
19
+
20
+ case line
21
+ when /^Package:/
22
+ unless current_row.nil?
23
+ current_row.description = description.strip
24
+ description = ''
25
+ rows << current_row
26
+ end
27
+
28
+ current_row = Kanrisuru::Core::Apt::PackageDetail.new
29
+ current_row.package = extract_single_line(line)
30
+ when /^Version:/
31
+ current_row.version = extract_single_line(line)
32
+ when /^Priority:/
33
+ current_row.priority = extract_single_line(line)
34
+ when /^Section:/
35
+ current_row.section = extract_single_line(line)
36
+ when /^Origin:/
37
+ current_row.origin = extract_single_line(line)
38
+ when /^Maintainer:/
39
+ current_row.maintainer = extract_single_line(line)
40
+ when /^Original-Maintainer:/
41
+ current_row.original_maintainer = extract_single_line(line)
42
+ when /^Bugs:/
43
+ current_row.bugs = extract_single_line(line)
44
+ when /^Installed-Size:/
45
+ size = Kanrisuru::Util::Bits.normalize_size(extract_single_line(line))
46
+ current_row.install_size = size
47
+ when /^Download-Size:/
48
+ size = Kanrisuru::Util::Bits.normalize_size(extract_single_line(line))
49
+ current_row.download_size = size
50
+ when /^Depends:/
51
+ current_row.dependencies = parse_comma_values(extract_single_line(line))
52
+ when /^Provides:/
53
+ current_row.provides = parse_comma_values(extract_single_line(line))
54
+ when /^Recommends:/
55
+ current_row.recommends = parse_comma_values(extract_single_line(line))
56
+ when /^Suggests:/
57
+ current_row.suggests = parse_comma_values(extract_single_line(line))
58
+ when /^Breaks:/
59
+ current_row.breaks = parse_comma_values(extract_single_line(line))
60
+ when /^Conflicts:/
61
+ current_row.conflicts = parse_comma_values(extract_single_line(line))
62
+ when /^Replaces:/
63
+ current_row.replaces = parse_comma_values(extract_single_line(line))
64
+ when /^Homepage:/
65
+ current_row.homepage = extract_single_line(line)
66
+ when /^Task:/
67
+ current_row.task = parse_comma_values(extract_single_line(line))
68
+ when /^Supported:/
69
+ current_row.supported = extract_single_line(line)
70
+ when /^APT-Sources:/
71
+ current_row.apt_sources = parse_apt_sources(extract_single_line(line))
72
+ when /^APT-Manual-Installed:/
73
+ current_row.apt_manual_installed = extract_single_line(line) == 'yes'
74
+ when /^Description:/
75
+ current_row.summary = extract_single_line(line)
76
+ else
77
+ description += " #{line.strip}"
78
+ end
79
+ end
80
+
81
+ current_row.description = description.strip
82
+ rows << current_row
83
+ rows
84
+ end
85
+ end
86
+ end
87
+ end
88
+ end
89
+ end
90
+ end
@@ -0,0 +1,36 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Kanrisuru
4
+ module Core
5
+ module Apt
6
+ Source = Struct.new(:url, :dist, :architecture)
7
+ PackageOverview = Struct.new(:package, :version, :suites, :architecture, :installed, :upgradeable, :automatic)
8
+ PackageDetail = Struct.new(
9
+ :package,
10
+ :version,
11
+ :priority,
12
+ :section,
13
+ :origin,
14
+ :maintainer,
15
+ :original_maintainer,
16
+ :bugs,
17
+ :install_size,
18
+ :dependencies,
19
+ :recommends,
20
+ :provides,
21
+ :suggests,
22
+ :breaks,
23
+ :conflicts,
24
+ :replaces,
25
+ :homepage,
26
+ :task,
27
+ :supported,
28
+ :download_size,
29
+ :apt_manual_installed,
30
+ :apt_sources,
31
+ :description,
32
+ :summary
33
+ )
34
+ end
35
+ end
36
+ end