infra-cli 0.1.5__tar.gz → 0.3.0__tar.gz

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 (551) hide show
  1. infra_cli-0.3.0/MANIFEST.in +24 -0
  2. infra_cli-0.3.0/PKG-INFO +194 -0
  3. infra_cli-0.3.0/README.md +126 -0
  4. {infra_cli-0.1.5 → infra_cli-0.3.0}/pyproject.toml +41 -2
  5. infra_cli-0.3.0/setup.py +63 -0
  6. infra_cli-0.3.0/src/infra/VERSION +5 -0
  7. infra_cli-0.3.0/src/infra/buildinfo.py +253 -0
  8. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/cli.py +41 -7
  9. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/commands/__init__.py +7 -0
  10. infra_cli-0.3.0/src/infra/commands/docker.py +65 -0
  11. infra_cli-0.3.0/src/infra/commands/github.py +103 -0
  12. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/commands/options.py +1 -3
  13. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/commands/setup.py +49 -10
  14. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/context.py +6 -0
  15. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/doctor.py +114 -60
  16. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/alibaba/cli.py +10 -10
  17. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/alibaba/landing_zones.py +2 -2
  18. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/alibaba/profiles_cmd.py +2 -1
  19. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/aws/cli.py +98 -12
  20. infra_cli-0.3.0/src/infra/plugins/aws/describe_run.py +236 -0
  21. infra_cli-0.3.0/src/infra/plugins/aws/ec2_cves.py +1967 -0
  22. infra_cli-0.3.0/src/infra/plugins/aws/ec2_describe.py +179 -0
  23. infra_cli-0.3.0/src/infra/plugins/aws/ec2_login.py +497 -0
  24. infra_cli-0.3.0/src/infra/plugins/aws/ec2_tag.py +205 -0
  25. infra_cli-0.3.0/src/infra/plugins/aws/ec2_volumes.py +369 -0
  26. infra_cli-0.3.0/src/infra/plugins/aws/ecr_cves.py +1164 -0
  27. infra_cli-0.3.0/src/infra/plugins/aws/ecr_describe.py +81 -0
  28. infra_cli-0.3.0/src/infra/plugins/aws/ecs_describe.py +88 -0
  29. infra_cli-0.3.0/src/infra/plugins/aws/ecs_list_clusters.py +185 -0
  30. infra_cli-0.3.0/src/infra/plugins/aws/ecs_list_container_instances.py +356 -0
  31. infra_cli-0.3.0/src/infra/plugins/aws/ecs_list_tasks.py +599 -0
  32. infra_cli-0.3.0/src/infra/plugins/aws/eks_describe.py +105 -0
  33. infra_cli-0.3.0/src/infra/plugins/aws/eks_list_clusters.py +199 -0
  34. infra_cli-0.3.0/src/infra/plugins/aws/eks_nodes.py +191 -0
  35. infra_cli-0.3.0/src/infra/plugins/aws/elasticache_auth.py +198 -0
  36. infra_cli-0.3.0/src/infra/plugins/aws/elasticache_describe.py +176 -0
  37. infra_cli-0.3.0/src/infra/plugins/aws/elasticache_rbac.py +760 -0
  38. infra_cli-0.3.0/src/infra/plugins/aws/export.py +348 -0
  39. infra_cli-0.3.0/src/infra/plugins/aws/firewall_describe.py +268 -0
  40. infra_cli-0.3.0/src/infra/plugins/aws/inventory/common.py +737 -0
  41. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/aws/inventory/ec2.py +55 -2
  42. infra_cli-0.3.0/src/infra/plugins/aws/inventory/ecr_repositories.py +161 -0
  43. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/aws/inventory/elasticache.py +125 -19
  44. infra_cli-0.3.0/src/infra/plugins/aws/inventory/elasticache_usage.py +717 -0
  45. infra_cli-0.3.0/src/infra/plugins/aws/inventory/firewall.py +561 -0
  46. infra_cli-0.3.0/src/infra/plugins/aws/inventory/match.py +157 -0
  47. infra_cli-0.3.0/src/infra/plugins/aws/inventory/msk.py +411 -0
  48. infra_cli-0.3.0/src/infra/plugins/aws/inventory/opensearch.py +218 -0
  49. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/aws/inventory/rds.py +35 -17
  50. infra_cli-0.3.0/src/infra/plugins/aws/inventory/ssm_parameters.py +135 -0
  51. infra_cli-0.3.0/src/infra/plugins/aws/inventory/vpc.py +205 -0
  52. infra_cli-0.3.0/src/infra/plugins/aws/inventory/vpc_network.py +725 -0
  53. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/aws/landing_zones.py +40 -9
  54. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/aws/login.py +77 -8
  55. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/aws/logout.py +4 -4
  56. infra_cli-0.3.0/src/infra/plugins/aws/msk_describe.py +173 -0
  57. infra_cli-0.3.0/src/infra/plugins/aws/msk_topics.py +1298 -0
  58. infra_cli-0.3.0/src/infra/plugins/aws/opensearch_describe.py +136 -0
  59. infra_cli-0.3.0/src/infra/plugins/aws/options.py +18 -0
  60. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/aws/profiles.py +190 -54
  61. infra_cli-0.3.0/src/infra/plugins/aws/profiles_cmd.py +258 -0
  62. infra_cli-0.3.0/src/infra/plugins/aws/rds_describe.py +170 -0
  63. infra_cli-0.3.0/src/infra/plugins/aws/rds_users.py +1124 -0
  64. infra_cli-0.3.0/src/infra/plugins/aws/runtime.py +290 -0
  65. infra_cli-0.3.0/src/infra/plugins/aws/services/ec2.py +611 -0
  66. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/aws/services/ecr.py +276 -31
  67. infra_cli-0.3.0/src/infra/plugins/aws/services/ecs.py +462 -0
  68. infra_cli-0.3.0/src/infra/plugins/aws/services/eks.py +219 -0
  69. infra_cli-0.3.0/src/infra/plugins/aws/services/elasticache.py +346 -0
  70. infra_cli-0.3.0/src/infra/plugins/aws/services/elasticache_access.py +431 -0
  71. infra_cli-0.3.0/src/infra/plugins/aws/services/firewall.py +411 -0
  72. infra_cli-0.3.0/src/infra/plugins/aws/services/msk.py +536 -0
  73. infra_cli-0.3.0/src/infra/plugins/aws/services/opensearch.py +166 -0
  74. infra_cli-0.3.0/src/infra/plugins/aws/services/options.py +413 -0
  75. infra_cli-0.3.0/src/infra/plugins/aws/services/rds.py +180 -0
  76. infra_cli-0.3.0/src/infra/plugins/aws/services/rds_users.py +372 -0
  77. infra_cli-0.3.0/src/infra/plugins/aws/services/ssm.py +888 -0
  78. infra_cli-0.3.0/src/infra/plugins/aws/services/vpc.py +181 -0
  79. infra_cli-0.3.0/src/infra/plugins/aws/services/vpc_network.py +350 -0
  80. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/aws/ssm_audit.py +89 -33
  81. infra_cli-0.3.0/src/infra/plugins/aws/ssm_command.py +422 -0
  82. infra_cli-0.3.0/src/infra/plugins/aws/ssm_copy.py +298 -0
  83. infra_cli-0.3.0/src/infra/plugins/aws/ssm_describe.py +82 -0
  84. infra_cli-0.3.0/src/infra/plugins/aws/ssm_document.py +366 -0
  85. infra_cli-0.3.0/src/infra/plugins/aws/ssm_param.py +403 -0
  86. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/aws/ssm_search.py +8 -9
  87. infra_cli-0.3.0/src/infra/plugins/aws/sso_discovery.py +398 -0
  88. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/aws/token_info.py +107 -0
  89. infra_cli-0.3.0/src/infra/plugins/aws/vpc_describe.py +147 -0
  90. infra_cli-0.3.0/src/infra/plugins/aws/vpc_network_describe.py +153 -0
  91. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/cost/cli.py +40 -14
  92. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/cost/plugin.py +12 -5
  93. infra_cli-0.3.0/src/infra/plugins/docker_ps.py +80 -0
  94. infra_cli-0.3.0/src/infra/plugins/github_pr.py +393 -0
  95. infra_cli-0.3.0/src/infra/plugins/macos/__init__.py +5 -0
  96. infra_cli-0.3.0/src/infra/plugins/macos/cli.py +152 -0
  97. infra_cli-0.3.0/src/infra/plugins/macos/debug.py +676 -0
  98. infra_cli-0.3.0/src/infra/plugins/macos/power.py +193 -0
  99. infra_cli-0.3.0/src/infra/plugins/naming/__init__.py +7 -0
  100. infra_cli-0.3.0/src/infra/plugins/naming/cli.py +187 -0
  101. infra_cli-0.3.0/src/infra/plugins/naming/model.py +304 -0
  102. infra_cli-0.3.0/src/infra/plugins/naming/scaffold.py +220 -0
  103. infra_cli-0.3.0/src/infra/plugins/oci/__init__.py +5 -0
  104. infra_cli-0.3.0/src/infra/plugins/oci/cli.py +386 -0
  105. infra_cli-0.3.0/src/infra/plugins/oci/compartment_cleanup.py +1789 -0
  106. infra_cli-0.3.0/src/infra/plugins/oci/compartment_plan.py +861 -0
  107. infra_cli-0.3.0/src/infra/plugins/oci/landing_zones.py +224 -0
  108. infra_cli-0.3.0/src/infra/plugins/oci/login.py +256 -0
  109. infra_cli-0.3.0/src/infra/plugins/oci/logout.py +87 -0
  110. infra_cli-0.3.0/src/infra/plugins/oci/options.py +172 -0
  111. infra_cli-0.3.0/src/infra/plugins/oci/profiles.py +104 -0
  112. infra_cli-0.3.0/src/infra/plugins/oci/profiles_cmd.py +102 -0
  113. infra_cli-0.3.0/src/infra/plugins/oci/runtime.py +89 -0
  114. infra_cli-0.3.0/src/infra/plugins/server/__init__.py +32 -0
  115. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/server/app_factory.py +63 -11
  116. infra_cli-0.3.0/src/infra/plugins/server/cli.py +132 -0
  117. infra_cli-0.3.0/src/infra/plugins/server/dbtools/__init__.py +13 -0
  118. infra_cli-0.3.0/src/infra/plugins/server/dbtools/deps.py +79 -0
  119. infra_cli-0.3.0/src/infra/plugins/server/dbtools/features.py +27 -0
  120. infra_cli-0.3.0/src/infra/plugins/server/dbtools/http_util.py +89 -0
  121. infra_cli-0.3.0/src/infra/plugins/server/dbtools/mongo/__init__.py +8 -0
  122. infra_cli-0.3.0/src/infra/plugins/server/dbtools/mongo/routes.py +227 -0
  123. infra_cli-0.3.0/src/infra/plugins/server/dbtools/mongo/service.py +340 -0
  124. infra_cli-0.3.0/src/infra/plugins/server/dbtools/mongo/ui.py +288 -0
  125. infra_cli-0.3.0/src/infra/plugins/server/dbtools/mount.py +46 -0
  126. infra_cli-0.3.0/src/infra/plugins/server/dbtools/mysql/__init__.py +8 -0
  127. infra_cli-0.3.0/src/infra/plugins/server/dbtools/mysql/routes.py +383 -0
  128. infra_cli-0.3.0/src/infra/plugins/server/dbtools/mysql/service.py +1391 -0
  129. infra_cli-0.3.0/src/infra/plugins/server/dbtools/mysql/ui.py +460 -0
  130. infra_cli-0.3.0/src/infra/plugins/server/dbtools/redis/__init__.py +8 -0
  131. infra_cli-0.3.0/src/infra/plugins/server/dbtools/redis/routes.py +170 -0
  132. infra_cli-0.3.0/src/infra/plugins/server/dbtools/redis/service.py +1176 -0
  133. infra_cli-0.3.0/src/infra/plugins/server/dbtools/redis/ui.py +202 -0
  134. infra_cli-0.3.0/src/infra/plugins/server/dbtools/session.py +98 -0
  135. infra_cli-0.3.0/src/infra/plugins/server/dbtools/shell.py +23 -0
  136. infra_cli-0.3.0/src/infra/plugins/server/dbtools/sql_guard.py +51 -0
  137. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/server/html.py +52 -177
  138. infra_cli-0.3.0/src/infra/plugins/server/web/__init__.py +6 -0
  139. infra_cli-0.3.0/src/infra/plugins/server/web/assets.py +146 -0
  140. infra_cli-0.3.0/src/infra/plugins/server/web/charts.py +31 -0
  141. infra_cli-0.3.0/src/infra/plugins/server/web/components.py +170 -0
  142. infra_cli-0.3.0/src/infra/plugins/server/web/db_common.py +219 -0
  143. infra_cli-0.3.0/src/infra/plugins/server/web/db_page.py +52 -0
  144. infra_cli-0.3.0/src/infra/plugins/server/web/layout.py +97 -0
  145. infra_cli-0.3.0/src/infra/plugins/setup/ollama_models.py +172 -0
  146. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/setup/plan.py +66 -13
  147. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/setup/plugin.py +160 -76
  148. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/setup/profiles.py +142 -20
  149. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/setup/verify.py +29 -7
  150. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/tencent/cli.py +11 -11
  151. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/tencent/landing_zones.py +2 -2
  152. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/tencent/login.py +6 -6
  153. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/tencent/logout.py +5 -1
  154. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/tencent/profiles_cmd.py +2 -1
  155. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/terraform/cleanup.py +7 -1
  156. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/terraform/plugin.py +104 -77
  157. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/terraform/scaffold.py +3 -1
  158. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/terragrunt/paths.py +2 -6
  159. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/terragrunt/plugin.py +2 -11
  160. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/terragrunt/scaffold.py +1 -3
  161. infra_cli-0.3.0/src/infra/plugins/windows/__init__.py +5 -0
  162. infra_cli-0.3.0/src/infra/plugins/windows/cli.py +144 -0
  163. infra_cli-0.3.0/src/infra/plugins/windows/guide.py +466 -0
  164. infra_cli-0.3.0/src/infra/plugins/windows/power.py +213 -0
  165. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/work/ai/doctor.py +6 -2
  166. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/work/ai/redact.py +18 -4
  167. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/work/ai/resolve.py +1 -3
  168. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/work/cli.py +3 -1
  169. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/work/connectors.py +10 -0
  170. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/work/context_pack.py +4 -2
  171. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/work/mcp_stdio.py +14 -4
  172. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/work/planner.py +3 -1
  173. infra_cli-0.3.0/src/infra/shell/__init__.py +10 -0
  174. infra_cli-0.3.0/src/infra/shell/builtins.py +336 -0
  175. infra_cli-0.3.0/src/infra/shell/completer.py +268 -0
  176. infra_cli-0.3.0/src/infra/shell/context.py +199 -0
  177. infra_cli-0.3.0/src/infra/shell/pipe.py +139 -0
  178. infra_cli-0.3.0/src/infra/shell/repl.py +326 -0
  179. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/README.md +20 -5
  180. infra_cli-0.3.0/src/infra/templates/ansible/.ansible-lint +20 -0
  181. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/callback_plugins/infra_journal.py +6 -2
  182. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/README.md +18 -6
  183. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/defaults/main.yml +36 -3
  184. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/README.md +9 -2
  185. infra_cli-0.3.0/src/infra/templates/ansible/roles/common/tasks/ai.yml +130 -0
  186. infra_cli-0.3.0/src/infra/templates/ansible/roles/common/tasks/ai_darwin.yml +54 -0
  187. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/ai_debian.yml +70 -1
  188. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/deploy_user_config.yml +4 -0
  189. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/desktop_apps_darwin.yml +19 -10
  190. infra_cli-0.3.0/src/infra/templates/ansible/roles/common/tasks/developer.yml +144 -0
  191. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/developer_darwin.yml +17 -2
  192. infra_cli-0.3.0/src/infra/templates/ansible/roles/common/tasks/developer_debian.yml +117 -0
  193. infra_cli-0.3.0/src/infra/templates/ansible/roles/common/tasks/dnsmasq.yml +41 -0
  194. infra_cli-0.3.0/src/infra/templates/ansible/roles/common/tasks/dnsmasq_darwin.yml +5 -0
  195. infra_cli-0.3.0/src/infra/templates/ansible/roles/common/tasks/dnsmasq_debian.yml +7 -0
  196. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/docker_darwin.yml +19 -5
  197. infra_cli-0.3.0/src/infra/templates/ansible/roles/common/tasks/frontend.yml +214 -0
  198. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/git.yml +70 -1
  199. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/iterm2_darwin.yml +27 -1
  200. infra_cli-0.3.0/src/infra/templates/ansible/roles/common/tasks/k8s.yml +202 -0
  201. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/k8s_darwin.yml +1 -0
  202. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/k8s_debian.yml +28 -0
  203. infra_cli-0.3.0/src/infra/templates/ansible/roles/common/tasks/kafka.yml +99 -0
  204. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/main.yml +59 -12
  205. infra_cli-0.3.0/src/infra/templates/ansible/roles/common/tasks/neteasy.yml +7 -0
  206. infra_cli-0.3.0/src/infra/templates/ansible/roles/common/tasks/neteasy_darwin.yml +14 -0
  207. infra_cli-0.3.0/src/infra/templates/ansible/roles/common/tasks/neteasy_debian.yml +9 -0
  208. infra_cli-0.3.0/src/infra/templates/ansible/roles/common/tasks/oci.yml +19 -0
  209. infra_cli-0.3.0/src/infra/templates/ansible/roles/common/tasks/oci_darwin.yml +5 -0
  210. infra_cli-0.3.0/src/infra/templates/ansible/roles/common/tasks/oci_debian.yml +27 -0
  211. infra_cli-0.3.0/src/infra/templates/ansible/roles/common/tasks/ollama.yml +122 -0
  212. infra_cli-0.3.0/src/infra/templates/ansible/roles/common/tasks/ollama_darwin.yml +11 -0
  213. infra_cli-0.3.0/src/infra/templates/ansible/roles/common/tasks/ollama_debian.yml +27 -0
  214. infra_cli-0.3.0/src/infra/templates/ansible/roles/common/tasks/openresty.yml +41 -0
  215. infra_cli-0.3.0/src/infra/templates/ansible/roles/common/tasks/openresty_darwin.yml +10 -0
  216. infra_cli-0.3.0/src/infra/templates/ansible/roles/common/tasks/openresty_debian.yml +84 -0
  217. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/os_setup_darwin.yml +16 -4
  218. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/os_setup_debian.yml +16 -4
  219. infra_cli-0.3.0/src/infra/templates/ansible/roles/common/tasks/task.yml +58 -0
  220. infra_cli-0.3.0/src/infra/templates/ansible/roles/common/tasks/task_darwin.yml +12 -0
  221. infra_cli-0.3.0/src/infra/templates/ansible/roles/common/tasks/task_debian.yml +27 -0
  222. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/terraform.yml +13 -0
  223. infra_cli-0.3.0/src/infra/templates/ansible/roles/common/templates/ollama-launchagent.plist.j2 +15 -0
  224. infra_cli-0.3.0/src/infra/templates/ansible/roles/common/templates/ollama-launchctl-env.sh.j2 +17 -0
  225. infra_cli-0.3.0/src/infra/templates/ansible/roles/common/templates/ollama-systemd-override.conf.j2 +14 -0
  226. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/templates/setup_user_env.sh.j2 +70 -2
  227. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/aws/config +4 -0
  228. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/aws/credentials +4 -0
  229. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/aws_sso/config.ini +2 -2
  230. infra_cli-0.3.0/src/infra/templates/claude/CLAUDE.APP.md +485 -0
  231. infra_cli-0.3.0/src/infra/templates/claude/CLAUDE.md +166 -0
  232. infra_cli-0.3.0/src/infra/templates/claude/README.md +34 -0
  233. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/claude/config.json +1 -0
  234. infra_cli-0.3.0/src/infra/templates/codex/config.toml +9 -0
  235. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/config/config.yml +19 -2
  236. infra_cli-0.3.0/src/infra/templates/copilot/settings.json +6 -0
  237. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/cursor/settings.json +6 -0
  238. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/desktop/README.md +15 -3
  239. infra_cli-0.3.0/src/infra/templates/developer/README.md +85 -0
  240. infra_cli-0.3.0/src/infra/templates/dnsmasq/dnsmasq-local.conf +32 -0
  241. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/docker/config.json.j2 +4 -0
  242. infra_cli-0.3.0/src/infra/templates/frontend/README.md +83 -0
  243. infra_cli-0.3.0/src/infra/templates/gemini/config.yaml +11 -0
  244. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/git/README.md +58 -4
  245. infra_cli-0.3.0/src/infra/templates/git/cpr.sh +202 -0
  246. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/git/gitconfig +23 -2
  247. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/git/ignore +10 -0
  248. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/iterm2/README.md +15 -6
  249. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/iterm2/infra.json +3 -3
  250. infra_cli-0.3.0/src/infra/templates/k8s/README.md +53 -0
  251. infra_cli-0.3.0/src/infra/templates/kafka/README.md +123 -0
  252. infra_cli-0.3.0/src/infra/templates/kafka/conf/client.iam.properties.example +15 -0
  253. infra_cli-0.3.0/src/infra/templates/kafka/conf/client.plaintext.properties.example +6 -0
  254. infra_cli-0.3.0/src/infra/templates/kafka/conf/client.scram.properties.example +14 -0
  255. infra_cli-0.3.0/src/infra/templates/kafka/conf/client.ssl.properties.example +12 -0
  256. infra_cli-0.3.0/src/infra/templates/kafka/kafka +490 -0
  257. infra_cli-0.3.0/src/infra/templates/mongodb/README.md +13 -0
  258. infra_cli-0.3.0/src/infra/templates/mongodb/mongod-local.conf +84 -0
  259. infra_cli-0.3.0/src/infra/templates/mongodb/mongoshrc.js +19 -0
  260. infra_cli-0.3.0/src/infra/templates/mysql/README.md +16 -0
  261. infra_cli-0.3.0/src/infra/templates/mysql/my.cnf +54 -0
  262. infra_cli-0.3.0/src/infra/templates/mysql/mysqld-local.cnf +74 -0
  263. infra_cli-0.3.0/src/infra/templates/naming/README.md +22 -0
  264. infra_cli-0.3.0/src/infra/templates/nginx/README.md +9 -0
  265. infra_cli-0.3.0/src/infra/templates/nginx/nginx-local.conf +73 -0
  266. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/nvim/init.lua +7 -1
  267. infra_cli-0.3.0/src/infra/templates/ollama/README.md +81 -0
  268. infra_cli-0.3.0/src/infra/templates/openresty/openresty-local.conf +82 -0
  269. infra_cli-0.3.0/src/infra/templates/python/README.md +45 -0
  270. infra_cli-0.3.0/src/infra/templates/redis/README.md +14 -0
  271. infra_cli-0.3.0/src/infra/templates/redis/redis-local.conf +82 -0
  272. infra_cli-0.3.0/src/infra/templates/redis/redisclirc +19 -0
  273. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/setup/README.md +121 -18
  274. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/setup/setup.overlay.example.yml +13 -3
  275. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/shell/aliases.sh +14 -4
  276. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ssh/README.md +24 -0
  277. infra_cli-0.3.0/src/infra/templates/ssh/conf.d/1password.conf +20 -0
  278. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ssh/conf.d/github.conf +4 -2
  279. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ssh/config +3 -4
  280. infra_cli-0.3.0/src/infra/templates/task/README.md +58 -0
  281. infra_cli-0.3.0/src/infra/templates/task/Taskfile.yml +19 -0
  282. infra_cli-0.3.0/src/infra/templates/terraform/.terraform-docs.yml +75 -0
  283. infra_cli-0.3.0/src/infra/templates/terraform/README.md +51 -0
  284. infra_cli-0.3.0/src/infra/templates/terraform/repo/terraform/.gitignore +14 -0
  285. infra_cli-0.3.0/src/infra/templates/terraform/terraform.env +54 -0
  286. infra_cli-0.3.0/src/infra/templates/terraform/terraformrc +144 -0
  287. infra_cli-0.3.0/src/infra/templates/terragrunt/terragrunt.env +52 -0
  288. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/tmux/tmux.conf +6 -2
  289. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/vim/vimrc +2 -1
  290. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/vscode/settings.json +6 -0
  291. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/work/skills/inventory-snapshot.yml +3 -1
  292. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/utils/aws.py +18 -6
  293. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/utils/best_practices/__init__.py +4 -0
  294. infra_cli-0.3.0/src/infra/utils/best_practices/naming.py +20 -0
  295. infra_cli-0.3.0/src/infra/utils/best_practices/task.py +203 -0
  296. infra_cli-0.3.0/src/infra/utils/catalog.py +64 -0
  297. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/utils/config.py +203 -2
  298. infra_cli-0.3.0/src/infra/utils/duration.py +22 -0
  299. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/utils/fmt.py +4 -3
  300. infra_cli-0.3.0/src/infra/utils/naming.py +306 -0
  301. infra_cli-0.3.0/src/infra/utils/ui.py +209 -0
  302. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/utils/ui_select.py +159 -11
  303. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra_cli.egg-info/SOURCES.txt +177 -13
  304. infra_cli-0.1.5/PKG-INFO +0 -452
  305. infra_cli-0.1.5/README.md +0 -403
  306. infra_cli-0.1.5/src/infra/commands/github.py +0 -48
  307. infra_cli-0.1.5/src/infra/plugins/aws/export.py +0 -116
  308. infra_cli-0.1.5/src/infra/plugins/aws/inventory/common.py +0 -273
  309. infra_cli-0.1.5/src/infra/plugins/aws/profiles_cmd.py +0 -127
  310. infra_cli-0.1.5/src/infra/plugins/aws/runtime.py +0 -25
  311. infra_cli-0.1.5/src/infra/plugins/aws/services/ec2.py +0 -88
  312. infra_cli-0.1.5/src/infra/plugins/aws/services/elasticache.py +0 -91
  313. infra_cli-0.1.5/src/infra/plugins/aws/services/options.py +0 -114
  314. infra_cli-0.1.5/src/infra/plugins/aws/services/rds.py +0 -76
  315. infra_cli-0.1.5/src/infra/plugins/aws/services/ssm.py +0 -195
  316. infra_cli-0.1.5/src/infra/plugins/aws/sso_discovery.py +0 -197
  317. infra_cli-0.1.5/src/infra/plugins/server/__init__.py +0 -27
  318. infra_cli-0.1.5/src/infra/plugins/server/cli.py +0 -83
  319. infra_cli-0.1.5/src/infra/templates/ansible/roles/common/tasks/ai.yml +0 -50
  320. infra_cli-0.1.5/src/infra/templates/ansible/roles/common/tasks/ai_darwin.yml +0 -19
  321. infra_cli-0.1.5/src/infra/templates/ansible/roles/common/tasks/developer.yml +0 -116
  322. infra_cli-0.1.5/src/infra/templates/ansible/roles/common/tasks/developer_debian.yml +0 -42
  323. infra_cli-0.1.5/src/infra/templates/ansible/roles/common/tasks/k8s.yml +0 -9
  324. infra_cli-0.1.5/src/infra/templates/ansible/roles/common/tasks/k8s_ops.yml +0 -9
  325. infra_cli-0.1.5/src/infra/templates/ansible/roles/common/tasks/k8s_ops_darwin.yml +0 -7
  326. infra_cli-0.1.5/src/infra/templates/ansible/roles/common/tasks/k8s_ops_debian.yml +0 -22
  327. infra_cli-0.1.5/src/infra/templates/codex/config.json +0 -6
  328. infra_cli-0.1.5/src/infra/templates/developer/README.md +0 -75
  329. infra_cli-0.1.5/src/infra/templates/gemini/config.yaml +0 -5
  330. infra_cli-0.1.5/src/infra/templates/python/README.md +0 -26
  331. infra_cli-0.1.5/src/infra/templates/redis/redisclirc +0 -8
  332. infra_cli-0.1.5/src/infra/templates/terraform/terraform.env +0 -7
  333. infra_cli-0.1.5/src/infra/templates/terraform/terraformrc +0 -6
  334. infra_cli-0.1.5/src/infra/templates/terragrunt/terragrunt.env +0 -22
  335. infra_cli-0.1.5/src/infra/utils/naming.py +0 -64
  336. infra_cli-0.1.5/src/infra/utils/ui.py +0 -103
  337. infra_cli-0.1.5/src/infra_cli.egg-info/PKG-INFO +0 -452
  338. infra_cli-0.1.5/src/infra_cli.egg-info/dependency_links.txt +0 -1
  339. infra_cli-0.1.5/src/infra_cli.egg-info/entry_points.txt +0 -2
  340. infra_cli-0.1.5/src/infra_cli.egg-info/requires.txt +0 -33
  341. infra_cli-0.1.5/src/infra_cli.egg-info/top_level.txt +0 -1
  342. infra_cli-0.1.5/tests/test_cli.py +0 -142
  343. infra_cli-0.1.5/tests/test_doctor.py +0 -93
  344. {infra_cli-0.1.5 → infra_cli-0.3.0}/LICENSE +0 -0
  345. {infra_cli-0.1.5 → infra_cli-0.3.0}/setup.cfg +0 -0
  346. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/__init__.py +0 -0
  347. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/__main__.py +0 -0
  348. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/commands/ansible.py +0 -0
  349. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/commands/config_cmds.py +0 -0
  350. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/commands/packer.py +0 -0
  351. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/commands/slack.py +0 -0
  352. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/commands/terraform.py +0 -0
  353. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/commands/terragrunt.py +0 -0
  354. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/execute.py +0 -0
  355. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/__init__.py +0 -0
  356. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/alibaba/__init__.py +0 -0
  357. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/alibaba/login.py +0 -0
  358. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/alibaba/options.py +0 -0
  359. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/alibaba/profiles.py +0 -0
  360. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/alibaba/runtime.py +0 -0
  361. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/alibaba/site.py +0 -0
  362. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/ansible.py +0 -0
  363. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/aws/__init__.py +0 -0
  364. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/aws/inventory/__init__.py +0 -0
  365. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/aws/services/__init__.py +0 -0
  366. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/aws/services/cost.py +0 -0
  367. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/base.py +0 -0
  368. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/config.py +0 -0
  369. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/cost/__init__.py +0 -0
  370. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/cost/actions.py +0 -0
  371. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/cost/models.py +0 -0
  372. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/eol/__init__.py +0 -0
  373. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/eol/cache.py +0 -0
  374. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/eol/cli.py +0 -0
  375. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/eol/render.py +0 -0
  376. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/github.py +0 -0
  377. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/packer.py +0 -0
  378. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/setup/__init__.py +0 -0
  379. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/setup/cli_upgrade.py +0 -0
  380. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/setup/journal.py +0 -0
  381. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/slack.py +0 -0
  382. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/tencent/__init__.py +0 -0
  383. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/tencent/options.py +0 -0
  384. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/tencent/profiles.py +0 -0
  385. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/tencent/runtime.py +0 -0
  386. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/tencent/site.py +0 -0
  387. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/terraform/__init__.py +0 -0
  388. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/terraform/args.py +0 -0
  389. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/terraform/paths.py +0 -0
  390. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/terragrunt/__init__.py +0 -0
  391. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/terragrunt/args.py +0 -0
  392. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/work/__init__.py +0 -0
  393. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/work/ai/__init__.py +0 -0
  394. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/work/ai/audit.py +0 -0
  395. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/work/ai/client.py +0 -0
  396. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/work/ai/models.py +0 -0
  397. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/work/ai/registry.py +0 -0
  398. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/work/ai/sources.py +0 -0
  399. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/work/ai/url_safety.py +0 -0
  400. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/work/explain.py +0 -0
  401. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/work/models.py +0 -0
  402. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/work/runner.py +0 -0
  403. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/work/skills.py +0 -0
  404. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/ansible.cfg +0 -0
  405. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/callback_plugins/infra_minimal.py +0 -0
  406. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/inventory.ini +0 -0
  407. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/requirements.yml +0 -0
  408. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/meta/main.yml +0 -0
  409. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/aliyun.yml +0 -0
  410. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/aliyun_darwin.yml +0 -0
  411. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/aliyun_debian.yml +0 -0
  412. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/aws.yml +0 -0
  413. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/aws_darwin.yml +0 -0
  414. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/aws_debian.yml +0 -0
  415. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/cli_ux.yml +0 -0
  416. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/cli_ux_darwin.yml +0 -0
  417. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/cli_ux_debian.yml +0 -0
  418. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/db_clients.yml +0 -0
  419. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/db_clients_darwin.yml +0 -0
  420. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/db_clients_debian.yml +0 -0
  421. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/desktop_apps.yml +0 -0
  422. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/desktop_apps_debian.yml +0 -0
  423. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/docker.yml +0 -0
  424. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/docker_debian.yml +0 -0
  425. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/download_url.yml +0 -0
  426. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/fetch_uri.yml +0 -0
  427. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/fzf.yml +0 -0
  428. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/fzf_darwin.yml +0 -0
  429. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/fzf_debian.yml +0 -0
  430. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/git_darwin.yml +0 -0
  431. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/git_debian.yml +0 -0
  432. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/gpg.yml +0 -0
  433. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/gpg_darwin.yml +0 -0
  434. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/gpg_debian.yml +0 -0
  435. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/http_clients.yml +0 -0
  436. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/install_github_tarball.yml +0 -0
  437. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/iterm2.yml +0 -0
  438. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/iterm2_debian.yml +0 -0
  439. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/java.yml +0 -0
  440. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/java_darwin.yml +0 -0
  441. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/java_debian.yml +0 -0
  442. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/kind.yml +0 -0
  443. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/kind_darwin.yml +0 -0
  444. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/kind_debian.yml +0 -0
  445. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/linux_tune.yml +0 -0
  446. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/linux_tune_debian.yml +0 -0
  447. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/merge_editor_settings.yml +0 -0
  448. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/micromamba.yml +0 -0
  449. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/micromamba_darwin.yml +0 -0
  450. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/micromamba_debian.yml +0 -0
  451. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/minikube.yml +0 -0
  452. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/minikube_darwin.yml +0 -0
  453. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/minikube_debian.yml +0 -0
  454. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/mise.yml +0 -0
  455. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/mise_darwin.yml +0 -0
  456. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/mise_debian.yml +0 -0
  457. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/neovim.yml +0 -0
  458. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/neovim_darwin.yml +0 -0
  459. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/neovim_debian.yml +0 -0
  460. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/packer.yml +0 -0
  461. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/packer_darwin.yml +0 -0
  462. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/packer_debian.yml +0 -0
  463. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/python.yml +0 -0
  464. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/python_debian.yml +0 -0
  465. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/qa.yml +0 -0
  466. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/qa_darwin.yml +0 -0
  467. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/qa_debian.yml +0 -0
  468. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/resolve_github_latest.yml +0 -0
  469. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/ssh.yml +0 -0
  470. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/ssh_darwin.yml +0 -0
  471. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/ssh_debian.yml +0 -0
  472. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/sshd_tune.yml +0 -0
  473. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/sshd_tune_debian.yml +0 -0
  474. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/supply_chain.yml +0 -0
  475. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/supply_chain_darwin.yml +0 -0
  476. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/supply_chain_debian.yml +0 -0
  477. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/tccli.yml +0 -0
  478. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/terraform_darwin.yml +0 -0
  479. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/terraform_debian.yml +0 -0
  480. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/tmux.yml +0 -0
  481. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/tmux_darwin.yml +0 -0
  482. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/tmux_debian.yml +0 -0
  483. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/trivy.yml +0 -0
  484. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/trivy_darwin.yml +0 -0
  485. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/trivy_debian.yml +0 -0
  486. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/vim.yml +0 -0
  487. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/vim_darwin.yml +0 -0
  488. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/vim_debian.yml +0 -0
  489. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/zsh.yml +0 -0
  490. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/zsh_darwin.yml +0 -0
  491. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/zsh_debian.yml +0 -0
  492. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/templates/mise.toml.j2 +0 -0
  493. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/setup.yml +0 -0
  494. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/vars.yml +0 -0
  495. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/bat/config +0 -0
  496. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/config/pypirc +0 -0
  497. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/curl/curlrc +0 -0
  498. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/direnv/direnv.toml +0 -0
  499. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/direnv/envrc.example +0 -0
  500. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/docker/config.json +0 -0
  501. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/editorconfig/editorconfig +0 -0
  502. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/gh/config.yml +0 -0
  503. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/git/attributes +0 -0
  504. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/git/mailmap +0 -0
  505. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/git/message +0 -0
  506. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/github/README.md +0 -0
  507. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/gpg/README.md +0 -0
  508. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/mamba/mambarc +0 -0
  509. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/packer/packer.pkrvars.hcl +0 -0
  510. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/python/pypirc +0 -0
  511. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ripgrep/config +0 -0
  512. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/setup/setup.conf +0 -0
  513. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/setup/setup.team.overlay.example.yml +0 -0
  514. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/shell/README.md +0 -0
  515. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/terraform/repo/terraform/README.md +0 -0
  516. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/terraform/repo/terraform/modules/README.md +0 -0
  517. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/terraform/repo/terraform/sites/README.md +0 -0
  518. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/terraform/repo/terraform/sites/stg/platform/example/main.tf +0 -0
  519. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/terraform/repo/terraform/sites/stg/platform/example/outputs.tf +0 -0
  520. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/terraform/repo/terraform/sites/stg/platform/example/variables.tf +0 -0
  521. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/terraform/repo/terraform/sites/stg/platform/example/versions.tf +0 -0
  522. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/terragrunt/repo/_envcommon/stack.hcl +0 -0
  523. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/terragrunt/repo/account.hcl +0 -0
  524. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/terragrunt/repo/env.hcl +0 -0
  525. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/terragrunt/repo/leaf/terragrunt.hcl +0 -0
  526. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/terragrunt/repo/region.hcl +0 -0
  527. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/terragrunt/repo/root.hcl +0 -0
  528. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/terragrunt/repo/terragrunt.hcl +0 -0
  529. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/terragrunt/terragrunt.hcl +0 -0
  530. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/tmux/README.md +0 -0
  531. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/wget/wgetrc +0 -0
  532. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/work/README.md +0 -0
  533. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/work/skills/cost-review.yml +0 -0
  534. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/work/skills/eol-scan.yml +0 -0
  535. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/work/skills/iac-plan-check.yml +0 -0
  536. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/work/skills/security-pass.yml +0 -0
  537. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/work/skills/workstation-health.yml +0 -0
  538. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/utils/__init__.py +0 -0
  539. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/utils/backoff.py +0 -0
  540. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/utils/best_practices/ansible.py +0 -0
  541. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/utils/best_practices/aws.py +0 -0
  542. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/utils/best_practices/ci.py +0 -0
  543. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/utils/best_practices/docker.py +0 -0
  544. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/utils/best_practices/models.py +0 -0
  545. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/utils/best_practices/packer.py +0 -0
  546. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/utils/best_practices/terraform.py +0 -0
  547. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/utils/best_practices/terragrunt.py +0 -0
  548. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/utils/docker.py +0 -0
  549. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/utils/env.py +0 -0
  550. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/utils/logger.py +0 -0
  551. {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/utils/stack_paths.py +0 -0
@@ -0,0 +1,24 @@
1
+ # Allowlist. Setuptools starts from every git-tracked file; drop that list,
2
+ # then add only what `pip install` of the sdist needs. The wheel is the
3
+ # `infra` package under src/ (see pyproject package-data).
4
+ global-exclude *
5
+
6
+ recursive-include src/infra *.py
7
+ recursive-include src/infra/templates *
8
+ include src/infra/VERSION
9
+ include src/infra/templates/ansible/.ansible-lint
10
+ include src/infra/templates/terraform/.terraform-docs.yml
11
+ include src/infra/templates/terraform/repo/terraform/.gitignore
12
+
13
+ include pyproject.toml
14
+ include setup.py
15
+ include README.md
16
+ include LICENSE
17
+ include MANIFEST.in
18
+
19
+ # Local Ansible cache under the template tree (gitignored, still on disk).
20
+ prune src/infra/templates/ansible/.ansible
21
+ global-exclude *.py[cod]
22
+ global-exclude .DS_Store
23
+ recursive-exclude src/infra __pycache__
24
+ recursive-exclude src/infra *.py[cod]
@@ -0,0 +1,194 @@
1
+ Metadata-Version: 2.4
2
+ Name: infra-cli
3
+ Version: 0.3.0
4
+ Summary: Pluggable Infrastructure CLI as a wrapper around DevOps tools.
5
+ Author-email: Youqing Han <ihanyouqing@gmail.com>
6
+ License-Expression: Apache-2.0
7
+ Project-URL: Homepage, https://github.com/hanyouqing/infra-cli
8
+ Project-URL: Repository, https://github.com/hanyouqing/infra-cli
9
+ Project-URL: Bug Tracker, https://github.com/hanyouqing/infra-cli/issues
10
+ Project-URL: Changelog, https://github.com/hanyouqing/infra-cli/blob/main/CHANGELOG.md
11
+ Project-URL: Author, https://github.com/hanyouqing
12
+ Classifier: Programming Language :: Python :: 3
13
+ Classifier: Operating System :: OS Independent
14
+ Classifier: Topic :: Software Development :: Build Tools
15
+ Classifier: Topic :: System :: Systems Administration
16
+ Requires-Python: >=3.10
17
+ Description-Content-Type: text/markdown
18
+ License-File: LICENSE
19
+ Requires-Dist: typer>=0.9.0
20
+ Requires-Dist: typing-extensions>=4.0.0
21
+ Requires-Dist: PyYAML>=6.0
22
+ Requires-Dist: boto3>=1.20.0
23
+ Requires-Dist: rich>=10.0.0
24
+ Requires-Dist: questionary>=2.0.0
25
+ Requires-Dist: prompt_toolkit>=3.0.0
26
+ Requires-Dist: requests>=2.28.0
27
+ Provides-Extra: aws
28
+ Requires-Dist: zxcvbn>=4.4.28; extra == "aws"
29
+ Requires-Dist: openpyxl>=3.1.0; extra == "aws"
30
+ Requires-Dist: PyMySQL>=1.1.0; extra == "aws"
31
+ Requires-Dist: pg8000>=1.31.0; extra == "aws"
32
+ Provides-Extra: server
33
+ Requires-Dist: fastapi>=0.100.0; extra == "server"
34
+ Requires-Dist: uvicorn>=0.20.0; extra == "server"
35
+ Requires-Dist: markdown>=3.4.0; extra == "server"
36
+ Provides-Extra: server-mysql
37
+ Requires-Dist: fastapi>=0.100.0; extra == "server-mysql"
38
+ Requires-Dist: uvicorn>=0.20.0; extra == "server-mysql"
39
+ Requires-Dist: markdown>=3.4.0; extra == "server-mysql"
40
+ Requires-Dist: PyMySQL>=1.1.0; extra == "server-mysql"
41
+ Provides-Extra: server-redis
42
+ Requires-Dist: fastapi>=0.100.0; extra == "server-redis"
43
+ Requires-Dist: uvicorn>=0.20.0; extra == "server-redis"
44
+ Requires-Dist: markdown>=3.4.0; extra == "server-redis"
45
+ Requires-Dist: redis>=5.0.0; extra == "server-redis"
46
+ Requires-Dist: certifi>=2023.0.0; extra == "server-redis"
47
+ Provides-Extra: server-mongo
48
+ Requires-Dist: fastapi>=0.100.0; extra == "server-mongo"
49
+ Requires-Dist: uvicorn>=0.20.0; extra == "server-mongo"
50
+ Requires-Dist: markdown>=3.4.0; extra == "server-mongo"
51
+ Requires-Dist: pymongo>=4.6.0; extra == "server-mongo"
52
+ Provides-Extra: test
53
+ Requires-Dist: pytest>=7.0.0; extra == "test"
54
+ Requires-Dist: pytest-mock>=3.6.1; extra == "test"
55
+ Requires-Dist: pytest-cov>=4.0.0; extra == "test"
56
+ Requires-Dist: httpx>=0.27.0; extra == "test"
57
+ Provides-Extra: dev
58
+ Requires-Dist: ruff>=0.1.0; extra == "dev"
59
+ Requires-Dist: mypy>=1.0.0; extra == "dev"
60
+ Requires-Dist: types-PyYAML; extra == "dev"
61
+ Requires-Dist: types-setuptools; extra == "dev"
62
+ Requires-Dist: boto3-stubs[essential]; extra == "dev"
63
+ Requires-Dist: ansible-core>=2.16.0; extra == "dev"
64
+ Requires-Dist: ansible-lint>=24.0.0; extra == "dev"
65
+ Requires-Dist: build>=1.0.0; extra == "dev"
66
+ Requires-Dist: twine>=5.0.0; extra == "dev"
67
+ Dynamic: license-file
68
+
69
+ # infra-cli
70
+
71
+ [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
72
+ [![Python Version](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)
73
+
74
+ ![infra-cli](docs/assets/logo/logo-infra.svg)
75
+
76
+ Pluggable DevOps CLI wrapping Ansible, Terragrunt, Terraform, AWS SSO, Alibaba / Tencent CloudSSO, OCI session login, and related tools.
77
+
78
+ ## Features
79
+
80
+ - Unified `infra` surface for setup, cloud SSO, inventory, and IaC wrappers
81
+ - Interactive REPL: `infra shell` (Tab completion, history, pipes, prod guard)
82
+ - Agent work mode: `infra work` (skills, connectors, MCP)
83
+ - Local HTML command reference: `infra server start` (optional MySQL/Redis/Mongo DB tools)
84
+
85
+ ## Install
86
+
87
+ ```bash
88
+ pipx install infra-cli
89
+ pipx inject infra-cli '.[aws]' # optional
90
+ source ~/.infra/env.sh # after first run, or: pipx ensurepath
91
+ infra doctor
92
+ ```
93
+
94
+ From checkout: `pipx install .` · Upgrade: `infra setup upgrade-cli --pypi`
95
+ Full macOS/Linux bootstrap: [INSTALL.md](INSTALL.md) · [docs/installation.md](docs/installation.md)
96
+ Docker (host network): [docs/docker.md](docs/docker.md) · `docker compose up`
97
+
98
+ ## Quick start
99
+
100
+ ### setup
101
+
102
+ ```bash
103
+ infra setup doctor
104
+ infra setup aws
105
+ infra setup terraform
106
+ ```
107
+
108
+ ### aws
109
+
110
+ ```bash
111
+ infra aws login
112
+ infra aws select
113
+ infra aws profiles --account
114
+ ```
115
+
116
+ ### naming
117
+
118
+ ```bash
119
+ infra naming payments --org acme --domain acme.io
120
+ ```
121
+
122
+ ### terraform / terragrunt
123
+
124
+ ```bash
125
+ infra terraform -e stg -s platform/example
126
+ infra terragrunt plan -e stg -s platform/example
127
+ ```
128
+
129
+ ### shell
130
+
131
+ ```bash
132
+ infra shell
133
+ ```
134
+
135
+ ### server
136
+
137
+ ```bash
138
+ infra server start # needs: pipx inject infra-cli '.[server]'
139
+ infra server start --enable-mysql --enable-redis # + '.[server-mysql]' / '.[server-redis]'
140
+ ```
141
+
142
+ DB tools open at `/tools`; connect forms keep credentials in process memory only.
143
+ Mutations need `--enable-writes`. Non-loopback bind with DB tools requires `--allow-remote`.
144
+
145
+ ### work
146
+
147
+ ```bash
148
+ infra work plan "find AWS cost waste"
149
+ ```
150
+
151
+ ### doctor
152
+
153
+ ```bash
154
+ infra doctor
155
+ ```
156
+
157
+ Every command accepts `-h` / `--help`.
158
+
159
+ ## Documentation
160
+
161
+ | Guide | Contents |
162
+ | --- | --- |
163
+ | [docs/](docs/README.md) | Index of all user guides |
164
+ | [commands.md](docs/commands.md) | Common workflows |
165
+ | [docker.md](docs/docker.md) | Dockerfile / Compose (host network) |
166
+ | [aws.md](docs/aws.md) | SSO, inventory, ECR, SSM |
167
+ | [setup.md](docs/setup.md) | Workstation bootstrap |
168
+ | [alibaba-cloud.md](docs/alibaba-cloud.md) | `aliyun` / `alicloud` |
169
+ | [oci.md](docs/oci.md) | `infra setup oci` / `infra oci login` |
170
+ | [terraform-terragrunt.md](docs/terraform-terragrunt.md) | Layout, scaffold, plan/apply |
171
+ | [work.md](docs/work.md) | Agent work mode |
172
+ | [configuration.md](docs/configuration.md) | `~/.infra/config.yaml` |
173
+ | [release.md](docs/release.md) | PyPI tags & Trusted Publishing |
174
+ | [development.md](docs/development.md) | Local tests & lint |
175
+ | [CHANGELOG.md](CHANGELOG.md) | Release history |
176
+ | [Logo](docs/assets/logo/README.md) | Brand marks (SVG) |
177
+
178
+ ## Development
179
+
180
+ ```bash
181
+ make install-dev
182
+ make test
183
+ make check
184
+ ```
185
+
186
+ See [CONTRIBUTING.md](CONTRIBUTING.md).
187
+
188
+ ## Author & Contact
189
+
190
+ Youqing Han — [GitHub](https://github.com/hanyouqing) · Issues for public bugs; email for private / CoC / partnership contact (see `pyproject.toml`).
191
+
192
+ ## License
193
+
194
+ Apache License 2.0 — see [LICENSE](LICENSE).
@@ -0,0 +1,126 @@
1
+ # infra-cli
2
+
3
+ [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
4
+ [![Python Version](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)
5
+
6
+ ![infra-cli](docs/assets/logo/logo-infra.svg)
7
+
8
+ Pluggable DevOps CLI wrapping Ansible, Terragrunt, Terraform, AWS SSO, Alibaba / Tencent CloudSSO, OCI session login, and related tools.
9
+
10
+ ## Features
11
+
12
+ - Unified `infra` surface for setup, cloud SSO, inventory, and IaC wrappers
13
+ - Interactive REPL: `infra shell` (Tab completion, history, pipes, prod guard)
14
+ - Agent work mode: `infra work` (skills, connectors, MCP)
15
+ - Local HTML command reference: `infra server start` (optional MySQL/Redis/Mongo DB tools)
16
+
17
+ ## Install
18
+
19
+ ```bash
20
+ pipx install infra-cli
21
+ pipx inject infra-cli '.[aws]' # optional
22
+ source ~/.infra/env.sh # after first run, or: pipx ensurepath
23
+ infra doctor
24
+ ```
25
+
26
+ From checkout: `pipx install .` · Upgrade: `infra setup upgrade-cli --pypi`
27
+ Full macOS/Linux bootstrap: [INSTALL.md](INSTALL.md) · [docs/installation.md](docs/installation.md)
28
+ Docker (host network): [docs/docker.md](docs/docker.md) · `docker compose up`
29
+
30
+ ## Quick start
31
+
32
+ ### setup
33
+
34
+ ```bash
35
+ infra setup doctor
36
+ infra setup aws
37
+ infra setup terraform
38
+ ```
39
+
40
+ ### aws
41
+
42
+ ```bash
43
+ infra aws login
44
+ infra aws select
45
+ infra aws profiles --account
46
+ ```
47
+
48
+ ### naming
49
+
50
+ ```bash
51
+ infra naming payments --org acme --domain acme.io
52
+ ```
53
+
54
+ ### terraform / terragrunt
55
+
56
+ ```bash
57
+ infra terraform -e stg -s platform/example
58
+ infra terragrunt plan -e stg -s platform/example
59
+ ```
60
+
61
+ ### shell
62
+
63
+ ```bash
64
+ infra shell
65
+ ```
66
+
67
+ ### server
68
+
69
+ ```bash
70
+ infra server start # needs: pipx inject infra-cli '.[server]'
71
+ infra server start --enable-mysql --enable-redis # + '.[server-mysql]' / '.[server-redis]'
72
+ ```
73
+
74
+ DB tools open at `/tools`; connect forms keep credentials in process memory only.
75
+ Mutations need `--enable-writes`. Non-loopback bind with DB tools requires `--allow-remote`.
76
+
77
+ ### work
78
+
79
+ ```bash
80
+ infra work plan "find AWS cost waste"
81
+ ```
82
+
83
+ ### doctor
84
+
85
+ ```bash
86
+ infra doctor
87
+ ```
88
+
89
+ Every command accepts `-h` / `--help`.
90
+
91
+ ## Documentation
92
+
93
+ | Guide | Contents |
94
+ | --- | --- |
95
+ | [docs/](docs/README.md) | Index of all user guides |
96
+ | [commands.md](docs/commands.md) | Common workflows |
97
+ | [docker.md](docs/docker.md) | Dockerfile / Compose (host network) |
98
+ | [aws.md](docs/aws.md) | SSO, inventory, ECR, SSM |
99
+ | [setup.md](docs/setup.md) | Workstation bootstrap |
100
+ | [alibaba-cloud.md](docs/alibaba-cloud.md) | `aliyun` / `alicloud` |
101
+ | [oci.md](docs/oci.md) | `infra setup oci` / `infra oci login` |
102
+ | [terraform-terragrunt.md](docs/terraform-terragrunt.md) | Layout, scaffold, plan/apply |
103
+ | [work.md](docs/work.md) | Agent work mode |
104
+ | [configuration.md](docs/configuration.md) | `~/.infra/config.yaml` |
105
+ | [release.md](docs/release.md) | PyPI tags & Trusted Publishing |
106
+ | [development.md](docs/development.md) | Local tests & lint |
107
+ | [CHANGELOG.md](CHANGELOG.md) | Release history |
108
+ | [Logo](docs/assets/logo/README.md) | Brand marks (SVG) |
109
+
110
+ ## Development
111
+
112
+ ```bash
113
+ make install-dev
114
+ make test
115
+ make check
116
+ ```
117
+
118
+ See [CONTRIBUTING.md](CONTRIBUTING.md).
119
+
120
+ ## Author & Contact
121
+
122
+ Youqing Han — [GitHub](https://github.com/hanyouqing) · Issues for public bugs; email for private / CoC / partnership contact (see `pyproject.toml`).
123
+
124
+ ## License
125
+
126
+ Apache License 2.0 — see [LICENSE](LICENSE).
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "infra-cli"
7
- version = "0.1.5"
7
+ version = "0.3.0"
8
8
  description = "Pluggable Infrastructure CLI as a wrapper around DevOps tools."
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
@@ -25,6 +25,7 @@ dependencies = [
25
25
  "boto3>=1.20.0",
26
26
  "rich>=10.0.0",
27
27
  "questionary>=2.0.0",
28
+ "prompt_toolkit>=3.0.0",
28
29
  "requests>=2.28.0",
29
30
  ]
30
31
 
@@ -39,12 +40,33 @@ dependencies = [
39
40
  aws = [
40
41
  "zxcvbn>=4.4.28",
41
42
  "openpyxl>=3.1.0",
43
+ "PyMySQL>=1.1.0",
44
+ "pg8000>=1.31.0",
42
45
  ]
43
46
  server = [
44
47
  "fastapi>=0.100.0",
45
48
  "uvicorn>=0.20.0",
46
49
  "markdown>=3.4.0",
47
50
  ]
51
+ server-mysql = [
52
+ "fastapi>=0.100.0",
53
+ "uvicorn>=0.20.0",
54
+ "markdown>=3.4.0",
55
+ "PyMySQL>=1.1.0",
56
+ ]
57
+ server-redis = [
58
+ "fastapi>=0.100.0",
59
+ "uvicorn>=0.20.0",
60
+ "markdown>=3.4.0",
61
+ "redis>=5.0.0",
62
+ "certifi>=2023.0.0",
63
+ ]
64
+ server-mongo = [
65
+ "fastapi>=0.100.0",
66
+ "uvicorn>=0.20.0",
67
+ "markdown>=3.4.0",
68
+ "pymongo>=4.6.0",
69
+ ]
48
70
  test = [
49
71
  "pytest>=7.0.0",
50
72
  "pytest-mock>=3.6.1",
@@ -68,9 +90,18 @@ infra = "infra.cli:run"
68
90
 
69
91
  [tool.setuptools.packages.find]
70
92
  where = ["src"]
93
+ include = ["infra*"]
71
94
 
72
95
  [tool.setuptools.package-data]
73
- infra = ["templates/**/*"]
96
+ infra = ["templates/**/*", "VERSION"]
97
+
98
+ [tool.setuptools.exclude-package-data]
99
+ infra = [
100
+ "templates/ansible/.ansible/**",
101
+ "**/__pycache__/**",
102
+ "**/*.py[cod]",
103
+ "**/.DS_Store",
104
+ ]
74
105
 
75
106
  [tool.ruff]
76
107
  line-length = 88
@@ -108,3 +139,11 @@ module = "infra.*"
108
139
  disallow_untyped_defs = true
109
140
  disallow_incomplete_defs = true
110
141
  check_untyped_defs = true
142
+
143
+ [[tool.mypy.overrides]]
144
+ module = [
145
+ "infra.plugins.server.dbtools.mysql.service",
146
+ "infra.plugins.server.dbtools.redis.service",
147
+ ]
148
+ disallow_untyped_defs = false
149
+ disallow_incomplete_defs = false
@@ -0,0 +1,63 @@
1
+ """Write src/infra/VERSION during sdist / wheel / editable builds."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import sys
6
+ from pathlib import Path
7
+
8
+ from setuptools import setup
9
+ from setuptools.command.build_py import build_py
10
+ from setuptools.command.egg_info import egg_info
11
+ from setuptools.command.sdist import sdist
12
+
13
+ ROOT = Path(__file__).resolve().parent
14
+ SRC = ROOT / "src"
15
+ if str(SRC) not in sys.path:
16
+ sys.path.insert(0, str(SRC))
17
+
18
+ from infra.buildinfo import write_packaged_version # noqa: E402
19
+
20
+
21
+ def _write_version() -> None:
22
+ write_packaged_version(SRC / "infra" / "VERSION")
23
+
24
+
25
+ class BuildPyVersion(build_py):
26
+ def run(self) -> None:
27
+ _write_version()
28
+ super().run()
29
+
30
+
31
+ class SdistVersion(sdist):
32
+ def run(self) -> None:
33
+ _write_version()
34
+ super().run()
35
+
36
+
37
+ class EggInfoVersion(egg_info):
38
+ def run(self) -> None:
39
+ _write_version()
40
+ super().run()
41
+
42
+
43
+ _CMDCLASS = {
44
+ "build_py": BuildPyVersion,
45
+ "sdist": SdistVersion,
46
+ "egg_info": EggInfoVersion,
47
+ }
48
+
49
+ try:
50
+ from setuptools.command.editable_wheel import editable_wheel
51
+ except ImportError:
52
+ pass
53
+ else:
54
+
55
+ class EditableWheelVersion(editable_wheel):
56
+ def run(self) -> None:
57
+ _write_version()
58
+ super().run()
59
+
60
+ _CMDCLASS["editable_wheel"] = EditableWheelVersion
61
+
62
+
63
+ setup(cmdclass=_CMDCLASS)
@@ -0,0 +1,5 @@
1
+ package=0.3.0
2
+ build_date=2026-10-27T14:15:55Z
3
+ commit=3da48c814f6ae9c9d0d71f8d63560db32b57c7c8
4
+ commit_time=2026-10-27T22:14:36+08:00
5
+ dirty=false