├── .github └── workflows │ └── tap-tests.yml ├── .gitignore ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── Casks ├── amazon-ena-ethernet-dext.rb ├── amazon-ena-ethernet.rb ├── amazon-ssm-agent.rb ├── ec2-instance-connect.rb ├── ec2-macos-init.rb ├── ec2-macos-system-monitor.rb └── ec2-macos-utils.rb ├── Formula └── amazon-efs-utils.rb ├── LICENSE ├── Makefile ├── NOTICE └── README.md /.github/workflows/tap-tests.yml: -------------------------------------------------------------------------------- 1 | # Largely cribbed from Homebrew's homebrew/core tap tests from: 2 | # https://github.com/Homebrew/homebrew-core/blob/201dbb92e491064e0aa8a0942e0ca9c3053158a2/.github/workflows/tests.yml#L34 3 | 4 | name: Homebrew Tap Tests 5 | 6 | on: 7 | push: 8 | pull_request: 9 | merge_group: 10 | 11 | permissions: 12 | # actions helpers do the checkout 13 | contents: read 14 | 15 | env: 16 | HOMEBREW_DEVELOPER: 1 17 | HOMEBREW_NO_AUTO_UPDATE: 1 18 | HOMEBREW_NO_ENV_HINTS: 1 19 | HOMEBREW_BOOTSNAP: 1 20 | HOMEBREW_NO_INSTALL_CLEANUP: 1 21 | HOMEBREW_VERIFY_ATTESTATIONS: 1 22 | 23 | defaults: 24 | run: 25 | shell: bash -xeuo pipefail {0} 26 | 27 | concurrency: 28 | group: "${{ github.ref }}" 29 | # yield to latest change, cancel jobs in progress 30 | cancel-in-progress: ${{ github.event_name == 'pull_request' }} 31 | 32 | jobs: 33 | syntax: 34 | runs-on: ubuntu-latest 35 | steps: 36 | - name: Set up Homebrew 37 | id: set-up-homebrew 38 | uses: Homebrew/actions/setup-homebrew@master 39 | with: 40 | core: false 41 | cask: false 42 | test-bot: false 43 | 44 | - name: Cache Bundler RubyGems 45 | uses: actions/cache@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3 46 | with: 47 | path: ${{ steps.set-up-homebrew.outputs.gems-path }} 48 | key: ${{ runner.os }}-rubygems-syntax-${{ steps.set-up-homebrew.outputs.gems-hash }} 49 | restore-keys: ${{ runner.os }}-rubygems-syntax- 50 | 51 | - name: Install Bundler RubyGems 52 | run: brew install-bundler-gems --groups=style,typecheck 53 | 54 | - name: Install shellcheck and shfmt 55 | run: brew install shellcheck shfmt 56 | 57 | - name: Cache style cache 58 | uses: actions/cache@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3 59 | with: 60 | path: ~/.cache/Homebrew/style 61 | key: syntax-style-cache-${{ github.sha }} 62 | restore-keys: syntax-style-cache- 63 | 64 | - run: brew style --except-cops Cask/Desc ${{ github.repository }} 65 | continue-on-error: true 66 | 67 | - run: brew typecheck ${{ github.repository }} 68 | 69 | audit: 70 | name: audit 71 | needs: syntax 72 | strategy: 73 | fail-fast: false 74 | matrix: 75 | macos: [macos-latest, macos-13] 76 | runs-on: ${{ matrix.macos }} 77 | steps: 78 | - name: Set up Homebrew 79 | id: set-up-homebrew 80 | uses: Homebrew/actions/setup-homebrew@master 81 | with: 82 | core: true 83 | cask: true 84 | test-bot: false 85 | 86 | - name: Run brew readall on all casks (arm) 87 | if: ${{ startsWith(runner.arch, 'ARM') }} 88 | run: brew readall --os=all --arch=all ${{github.repository}} 89 | - name: Run brew readall on all casks (intel) 90 | if: ${{ startsWith(runner.arch, 'X') }} 91 | run: brew readall --os=all ${{github.repository}} 92 | 93 | - name: Run brew audit --skip-style on ${{github.repository}} 94 | run: | 95 | brew audit --os=all --arch=all --skip-style --except=version --tap ${{github.repository}} 96 | 97 | - name: Run brew audit --online on ${{github.repository}} 98 | run: | 99 | brew audit --os=all --arch=all --skip-style --except=version --online --signing --tap ${{github.repository}} 100 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | /test-cache/ 3 | *.log 4 | \#* 5 | .#* 6 | .~* 7 | 8 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | ## Code of Conduct 2 | This project has adopted the [Amazon Open Source Code of Conduct](https://aws.github.io/code-of-conduct). 3 | For more information see the [Code of Conduct FAQ](https://aws.github.io/code-of-conduct-faq) or contact 4 | opensource-codeofconduct@amazon.com with any additional questions or comments. 5 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing Guidelines 2 | 3 | Thank you for your interest in contributing to our project. Whether it's a bug report, new feature, correction, or additional 4 | documentation, we greatly value feedback and contributions from our community. 5 | 6 | Please read through this document before submitting any issues or pull requests to ensure we have all the necessary 7 | information to effectively respond to your bug report or contribution. 8 | 9 | 10 | ## Reporting Bugs/Feature Requests 11 | 12 | We welcome you to use the GitHub issue tracker to report bugs or suggest features. 13 | 14 | When filing an issue, please check existing open, or recently closed, issues to make sure somebody else hasn't already 15 | reported the issue. Please try to include as much information as you can. Details like these are incredibly useful: 16 | 17 | * A reproducible test case or series of steps 18 | * The version of our code being used 19 | * Any modifications you've made relevant to the bug 20 | * Anything unusual about your environment or deployment 21 | 22 | 23 | ## Contributing via Pull Requests 24 | Contributions via pull requests are much appreciated. Before sending us a pull request, please ensure that: 25 | 26 | 1. You are working against the latest source on the *master* branch. 27 | 2. You check existing open, and recently merged, pull requests to make sure someone else hasn't addressed the problem already. 28 | 3. You open an issue to discuss any significant work - we would hate for your time to be wasted. 29 | 30 | To send us a pull request, please: 31 | 32 | 1. Fork the repository. 33 | 2. Modify the source; please focus on the specific change you are contributing. If you also reformat all the code, it will be hard for us to focus on your change. 34 | 3. Ensure local tests pass. 35 | 4. Commit to your fork using clear commit messages. 36 | 5. Send us a pull request, answering any default questions in the pull request interface. 37 | 6. Pay attention to any automated CI failures reported in the pull request, and stay involved in the conversation. 38 | 39 | GitHub provides additional document on [forking a repository](https://help.github.com/articles/fork-a-repo/) and 40 | [creating a pull request](https://help.github.com/articles/creating-a-pull-request/). 41 | 42 | 43 | ## Finding contributions to work on 44 | Looking at the existing issues is a great way to find something to contribute on. As our projects, by default, use the default GitHub issue labels (enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any 'help wanted' issues is a great place to start. 45 | 46 | 47 | ## Code of Conduct 48 | This project has adopted the [Amazon Open Source Code of Conduct](https://aws.github.io/code-of-conduct). 49 | For more information see the [Code of Conduct FAQ](https://aws.github.io/code-of-conduct-faq) or contact 50 | opensource-codeofconduct@amazon.com with any additional questions or comments. 51 | 52 | 53 | ## Security issue notifications 54 | If you discover a potential security issue in this project we ask that you notify AWS/Amazon Security via our [vulnerability reporting page](http://aws.amazon.com/security/vulnerability-reporting/). Please do **not** create a public github issue. 55 | 56 | 57 | ## Licensing 58 | 59 | See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to confirm the licensing of your contribution. 60 | 61 | We may ask you to sign a [Contributor License Agreement (CLA)](http://en.wikipedia.org/wiki/Contributor_License_Agreement) for larger changes. 62 | -------------------------------------------------------------------------------- /Casks/amazon-ena-ethernet-dext.rb: -------------------------------------------------------------------------------- 1 | # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"). 4 | # You may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | cask "amazon-ena-ethernet-dext" do 16 | version "1.0.7-p1" 17 | dextDriverKitVersion = "21.2" 18 | 19 | depends_on macos: ">= :monterey" 20 | 21 | url "https://aws-homebrew.s3.us-west-2.amazonaws.com/cask/amazon-ena-ethernet-dext/amazon-ena-ethernet-dext-app-#{version}-dk#{dextDriverKitVersion}-1.pkg", 22 | verified: "aws-homebrew.s3.us-west-2.amazonaws.com/cask/#{token}/" 23 | sha256 "464cb03d48ef97b032d7efe8af4662af256ef0a8cb292076782be674f00a16e7" 24 | pkg "amazon-ena-ethernet-dext-app-#{version}-dk#{dextDriverKitVersion}-1.pkg" 25 | 26 | on_intel do 27 | disable! date: "2025-03-21", because: "unvalidated system configuration" 28 | end 29 | 30 | livecheck { skip } 31 | 32 | name "Amazon ENA Ethernet Dext" 33 | homepage "https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/enhanced-networking-ena.html" 34 | 35 | uninstall pkgutil: "com.amazon.ec2.ena-ethernet.dext" 36 | end 37 | -------------------------------------------------------------------------------- /Casks/amazon-ena-ethernet.rb: -------------------------------------------------------------------------------- 1 | # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"). 4 | # You may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | cask "amazon-ena-ethernet" do 16 | version "1.5.2-2" 17 | 18 | if MacOS.version <= :mojave 19 | url "https://aws-homebrew.s3.us-west-2.amazonaws.com/cask/amazon-ena-ethernet/amazon-ena-ethernet-#{version}.mojave.pkg", 20 | verified: "aws-homebrew.s3.us-west-2.amazonaws.com/cask/#{token}/" 21 | sha256 "17220a622a37c49dd874c8cd0ff44a5223dbdc6fd9dbb22861b84d90abb79f3b" 22 | pkg "amazon-ena-ethernet-#{version}.mojave.pkg" 23 | elsif MacOS.version <= :catalina 24 | url "https://aws-homebrew.s3.us-west-2.amazonaws.com/cask/amazon-ena-ethernet/amazon-ena-ethernet-#{version}.catalina.pkg", 25 | verified: "aws-homebrew.s3.us-west-2.amazonaws.com/cask/#{token}/" 26 | sha256 "183dfd41b56883d84d3fa79a724fb6613d598c6d74c8d8a292eb885b0ffa5167" 27 | pkg "amazon-ena-ethernet-#{version}.catalina.pkg" 28 | elsif MacOS.version <= :big_sur 29 | url "https://aws-homebrew.s3.us-west-2.amazonaws.com/cask/amazon-ena-ethernet/amazon-ena-ethernet-#{version}.bigsur.pkg", 30 | verified: "aws-homebrew.s3.us-west-2.amazonaws.com/cask/#{token}/" 31 | sha256 "bbd9ab0382b306641598d101e7beec571c182d47ebd32efbae1f0e652aa0efa4" 32 | pkg "amazon-ena-ethernet-#{version}.bigsur.pkg" 33 | elsif MacOS.version <= :sequoia 34 | url "https://aws-homebrew.s3.us-west-2.amazonaws.com/cask/amazon-ena-ethernet/amazon-ena-ethernet-#{version}.monterey.pkg", 35 | verified: "aws-homebrew.s3.us-west-2.amazonaws.com/cask/#{token}/" 36 | sha256 "3cde67c25f339194753256ed911572bfa6a654b46b4af75d548dbcffc0b83634" 37 | pkg "amazon-ena-ethernet-#{version}.monterey.pkg" 38 | else 39 | disable! date: "2025-03-21", because: "unvalidated operating system major version" 40 | end 41 | 42 | livecheck { skip } 43 | 44 | name "Amazon ENA Ethernet" 45 | homepage "https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/enhanced-networking-ena.html" 46 | 47 | uninstall pkgutil: "com.amazon.ec2.ena-ethernet" 48 | end 49 | -------------------------------------------------------------------------------- /Casks/amazon-ssm-agent.rb: -------------------------------------------------------------------------------- 1 | # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"). 4 | # You may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | cask "amazon-ssm-agent" do 16 | version "3.3.1957.0-1" 17 | 18 | if Hardware::CPU.intel? 19 | arch = "x86_64" 20 | sha256 "1a73cedc2823ee406d1235ec0f06abee39ded85fc0bbf25ed482fa77d42c3eb3" 21 | else 22 | arch = "arm64" 23 | sha256 "f7008138067da831d6ca3c05d464c060c7c6000ddc505770e1ecf43e34c8a254" 24 | end 25 | pkg_file = "amazon-ssm-agent-#{version}_#{arch}.pkg" 26 | 27 | url "https://aws-homebrew.s3.us-west-2.amazonaws.com/cask/amazon-ssm-agent/#{pkg_file}", 28 | verified: "aws-homebrew.s3.us-west-2.amazonaws.com/cask/#{token}/" 29 | name "Amazon SSM Agent" 30 | homepage "https://github.com/aws/amazon-ssm-agent" 31 | 32 | script = Tempfile.new('ensure_no_com.amazon.aws.ssm_') 33 | script.write <<~'EOS' 34 | #! /bin/bash 35 | 36 | num_trials=10 37 | 38 | check_agent() { 39 | launchctl list com.amazon.aws.ssm >/dev/null 2>&1 40 | } 41 | 42 | check_agent || exit 0 43 | 44 | echo "Deleting the service system/com.amazon.aws.ssm" 45 | if ! launchctl remove com.amazon.aws.ssm; then 46 | echo "Failed to remove system/com.amazon.aws.ssm" 47 | exit 1 48 | fi 49 | 50 | n=0 51 | while check_agent; do 52 | if [ "$n" -ge "$num_trials" ]; then 53 | echo "Waited for $num_trials seconds, but the agent is still running" 54 | exit 1 55 | fi 56 | sleep 1 57 | n="$((n+1))" 58 | done 59 | echo "system/com.amazon.aws.ssm has been deleted" 60 | EOS 61 | script.close 62 | 63 | # This is for upgrading from old versions which don't have uninstall_preflight 64 | preflight do 65 | system_command "/bin/bash", args: [script.path], sudo: true 66 | end 67 | 68 | uninstall_preflight do 69 | system_command "/bin/bash", args: [script.path], sudo: true 70 | end 71 | 72 | pkg pkg_file 73 | 74 | uninstall pkgutil: "com.amazon.aws.ssm" 75 | 76 | livecheck { skip } 77 | end 78 | -------------------------------------------------------------------------------- /Casks/ec2-instance-connect.rb: -------------------------------------------------------------------------------- 1 | # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"). 4 | # You may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | cask "ec2-instance-connect" do 16 | version "2.0.0-2" 17 | sha256 "18b29b7ce662452ad0126c0ec88034165c5959f55b835caf3a3eea5abf3d8d28" 18 | 19 | pkg_file = "ec2-instance-connect-#{version}_universal.pkg" 20 | 21 | url "https://aws-homebrew.s3.us-west-2.amazonaws.com/cask/ec2-instance-connect/#{pkg_file}", 22 | verified: "aws-homebrew.s3.us-west-2.amazonaws.com/cask/#{token}/" 23 | name "EC2 Instance Connect" 24 | desc "Allows EC2 mac instances to access EC2 Instance Connect" 25 | homepage "https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-connect-methods.html" 26 | 27 | script = Tempfile.new('ensure_no_com.amazon.ec2-instance-connect_') 28 | script.write <<~'EOS' 29 | #!/bin/sh 30 | set -e 31 | 32 | # Remove EC2 Instance Connect sshd config if present 33 | if [ -f /etc/ssh/sshd_config.d/60-ec2-instance-connect.conf ] ; then 34 | /bin/rm -f /etc/ssh/sshd_config.d/60-ec2-instance-connect.conf 35 | launchctl unload -w /System/Library/LaunchDaemons/ssh.plist 36 | launchctl load -w /System/Library/LaunchDaemons/ssh.plist 37 | fi 38 | 39 | # Delete system user if present 40 | if id ec2-instance-connect ; then 41 | dscl . -delete /Users/ec2-instance-connect 42 | fi 43 | 44 | echo "system/com.amazon.ec2-instance-connect has been deleted" 45 | EOS 46 | script.close 47 | 48 | uninstall_preflight do 49 | system_command "/bin/bash", args: [script.path], sudo: true 50 | end 51 | 52 | pkg pkg_file 53 | 54 | uninstall pkgutil: "com.amazon.ec2-instance-connect.pkg" 55 | 56 | livecheck { skip } 57 | end 58 | -------------------------------------------------------------------------------- /Casks/ec2-macos-init.rb: -------------------------------------------------------------------------------- 1 | # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"). 4 | # You may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | cask "ec2-macos-init" do 16 | version "1.5.11-2" 17 | sha256 "f5470810f55cbcb0b1cf8521eeddca97f68342c0e354e59066ecee25979bac39" 18 | 19 | pkg_file = "ec2-macos-init-#{version}_universal.pkg" 20 | 21 | url "https://aws-homebrew.s3.us-west-2.amazonaws.com/cask/ec2-macos-init/#{pkg_file}", 22 | verified: "aws-homebrew.s3.us-west-2.amazonaws.com/cask/#{token}/" 23 | name "EC2 macOS Init" 24 | desc "Launch daemon used to initialize Mac instances within EC2" 25 | homepage "https://github.com/aws/ec2-macos-init" 26 | 27 | pkg pkg_file 28 | 29 | uninstall pkgutil: "com.amazon.ec2.macos-init" 30 | 31 | caveats do 32 | <<~EOS 33 | #{token} must be configured to start on boot. 34 | To enable #{token} for running at boot: 35 | sudo launchctl load /Library/LaunchDaemons/com.amazon.ec2.macos-init.plist 36 | To disable running #{token} on boot (not recommended): 37 | sudo launchctl remove com.amazon.ec2.macos-init 38 | EOS 39 | end 40 | 41 | livecheck { skip } 42 | end 43 | -------------------------------------------------------------------------------- /Casks/ec2-macos-system-monitor.rb: -------------------------------------------------------------------------------- 1 | # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"). 4 | # You may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | cask "ec2-macos-system-monitor" do 16 | version "1.3.1" 17 | sha256 "0880a9cc4ecbd28320c1c1606e5db64c4a389dbdcad150717e698dfc4bbda541" 18 | 19 | build_version = "1" 20 | pkg_file = "ec2-macos-system-monitor-#{version}-#{build_version}_universal.pkg" 21 | 22 | url "https://aws-homebrew.s3.us-west-2.amazonaws.com/cask/ec2-macos-system-monitor/#{pkg_file}", 23 | verified: "aws-homebrew.s3.us-west-2.amazonaws.com/cask/#{token}/" 24 | name "EC2 System Monitor for macOS" 25 | desc "Agent that runs on EC2 Mac instances to provide on-instance metrics in CloudWatch" 26 | homepage "https://github.com/aws/ec2-macos-system-monitor" 27 | 28 | pkg pkg_file 29 | 30 | uninstall_postflight do 31 | script = Tempfile.new('load_com.amazon.ec2.monitoring.agents.cpuutilization_') 32 | script.write <<~'EOS' 33 | #!/bin/bash 34 | 35 | num_trials=10 36 | 37 | check_agent() { 38 | launchctl list com.amazon.ec2.monitoring.agents.cpuutilization >/dev/null 2>&1 39 | } 40 | 41 | check_agent || exit 0 42 | 43 | echo "Deleting the service system/com.amazon.ec2.monitoring.agents.cpuutilization" 44 | if ! launchctl remove com.amazon.ec2.monitoring.agents.cpuutilization; then 45 | echo "Failed to remove system/com.amazon.ec2.monitoring.agents.cpuutilization" 46 | exit 1 47 | fi 48 | 49 | n=0 50 | while check_agent; do 51 | if [ "$n" -ge "$num_trials" ]; then 52 | echo "Waited for $num_trials seconds, but the agent is still running" 53 | exit 1 54 | fi 55 | sleep 1 56 | n="$((n+1))" 57 | done 58 | echo "system/com.amazon.ec2.monitoring.agents.cpuutilization has been deleted" 59 | EOS 60 | script.close 61 | 62 | system_command "/bin/bash", args: [script.path], sudo: true 63 | end 64 | 65 | uninstall pkgutil: "com.amazon.ec2.system-monitor" 66 | 67 | caveats do 68 | <<~EOS 69 | #{token} can be enabled/disabled with the tool setup-ec2monitoring. 70 | To enable #{token}: 71 | sudo setup-ec2monitoring enable 72 | To disable #{token}: 73 | sudo setup-ec2monitoring disable 74 | EOS 75 | end 76 | 77 | livecheck { skip } 78 | end 79 | -------------------------------------------------------------------------------- /Casks/ec2-macos-utils.rb: -------------------------------------------------------------------------------- 1 | # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"). 4 | # You may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | cask "ec2-macos-utils" do 16 | version "1.0.5" 17 | sha256 "877578edcf2dd1fb372665c76eeede8dfcbcac9812eea39e4c8b31072fa32dbc" 18 | 19 | build_version = "1" 20 | pkg_file = "ec2-macos-utils-#{version}-#{build_version}_universal.pkg" 21 | 22 | url "https://aws-homebrew.s3.us-west-2.amazonaws.com/cask/ec2-macos-utils/#{pkg_file}", 23 | verified: "aws-homebrew.s3.us-west-2.amazonaws.com/cask/#{token}/" 24 | name "EC2 macOS Utils" 25 | desc "Utilities for EC2 Mac instances" 26 | homepage "https://github.com/aws/ec2-macos-utils" 27 | 28 | pkg pkg_file 29 | 30 | uninstall pkgutil: "com.amazon.ec2.macos-utils" 31 | 32 | livecheck { skip } 33 | end 34 | -------------------------------------------------------------------------------- /Formula/amazon-efs-utils.rb: -------------------------------------------------------------------------------- 1 | # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"). 4 | # You may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | class AmazonEfsUtils < Formula 16 | include Language::Python::Virtualenv 17 | 18 | version "2.1.0" 19 | sha256 "68af290857284d4449e0d2ecbbd2aad83b1cc2c937da8beb16aeaae0429aab03" 20 | 21 | url "https://aws-homebrew.s3.us-west-2.amazonaws.com/formula/amazon-efs-utils/v#{version}.tar.gz" 22 | desc "Utilities for Amazon Elastic File System (EFS)" 23 | homepage "https://aws.amazon.com/efs/" 24 | license "MIT" 25 | 26 | depends_on "python@3" 27 | depends_on "stunnel" 28 | 29 | resource "atomicwrites" do 30 | url "https://aws-homebrew.s3-us-west-2.amazonaws.com/resource/a369d717/atomicwrites-1.4.0.tar.gz" 31 | sha256 "ae70396ad1a434f9c7046fd2dd196fc04b12f9e91ffb859164193be8b6168a7a" 32 | end 33 | 34 | resource "attrs" do 35 | url "https://aws-homebrew.s3-us-west-2.amazonaws.com/resource/a369d717/attrs-17.4.0.tar.gz" 36 | sha256 "1c7960ccfd6a005cd9f7ba884e6316b5e430a3f1a6c37c5f87d8b43f83b54ec9" 37 | end 38 | 39 | resource "botocore" do 40 | url "https://aws-homebrew.s3-us-west-2.amazonaws.com/resource/a369d717/botocore-1.34.140.tar.gz" 41 | sha256 "86302b2226c743b9eec7915a4c6cfaffd338ae03989cd9ee181078ef39d1ab39" 42 | end 43 | 44 | resource "configparser" do 45 | url "https://aws-homebrew.s3-us-west-2.amazonaws.com/resource/a369d717/configparser-7.0.0.tar.gz" 46 | sha256 "af3c618a67aaaedc4d689fd7317d238f566b9aa03cae50102e92d7f0dfe78ba0" 47 | end 48 | 49 | resource "coverage" do 50 | url "https://aws-homebrew.s3-us-west-2.amazonaws.com/resource/a369d717/coverage-7.6.0.tar.gz" 51 | sha256 "289cc803fa1dc901f84701ac10c9ee873619320f2f9aff38794db4a4a0268d51" 52 | end 53 | 54 | resource "entrypoints" do 55 | url "https://aws-homebrew.s3-us-west-2.amazonaws.com/resource/a369d717/entrypoints-0.3.tar.gz" 56 | sha256 "c70dd71abe5a8c85e55e12c19bd91ccfeec11a6e99044204511f9ed547d48451" 57 | end 58 | 59 | resource "flake8" do 60 | url "https://aws-homebrew.s3-us-west-2.amazonaws.com/resource/a369d717/flake8-7.1.0.tar.gz" 61 | sha256 "48a07b626b55236e0fb4784ee69a465fbf59d79eec1f5b4785c3d3bc57d17aa5" 62 | end 63 | 64 | resource "funcsigs" do 65 | url "https://aws-homebrew.s3-us-west-2.amazonaws.com/resource/a369d717/funcsigs-1.0.2.tar.gz" 66 | sha256 "a7bb0f2cf3a3fd1ab2732cb49eba4252c2af4240442415b4abce3b87022a8f50" 67 | end 68 | 69 | resource "jmespath" do 70 | url "https://aws-homebrew.s3-us-west-2.amazonaws.com/resource/a369d717/jmespath-0.10.0.tar.gz" 71 | sha256 "b85d0567b8666149a93172712e68920734333c0ce7e89b78b3e987f71e5ed4f9" 72 | end 73 | 74 | resource "mccabe" do 75 | url "https://aws-homebrew.s3-us-west-2.amazonaws.com/resource/a369d717/mccabe-0.6.1.tar.gz" 76 | sha256 "dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f" 77 | end 78 | 79 | resource "mock" do 80 | url "https://aws-homebrew.s3-us-west-2.amazonaws.com/resource/a369d717/mock-5.1.0.tar.gz" 81 | sha256 "5e96aad5ccda4718e0a229ed94b2024df75cc2d55575ba5762d31f5767b8767d" 82 | end 83 | 84 | resource "more-itertools" do 85 | url "https://aws-homebrew.s3-us-west-2.amazonaws.com/resource/a369d717/more-itertools-8.6.0.tar.gz" 86 | sha256 "b3a9005928e5bed54076e6e549c792b306fddfe72b2d1d22dd63d42d5d3899cf" 87 | end 88 | 89 | resource "packaging" do 90 | url "https://aws-homebrew.s3-us-west-2.amazonaws.com/resource/a369d717/packaging-20.9.tar.gz" 91 | sha256 "5b327ac1320dc863dca72f4514ecc086f31186744b84a230374cc1fd776feae5" 92 | end 93 | 94 | resource "pbr" do 95 | url "https://aws-homebrew.s3.us-west-2.amazonaws.com/resource/a369d717/pbr-5.10.0.tar.gz" 96 | sha256 "cfcc4ff8e698256fc17ea3ff796478b050852585aa5bae79ecd05b2ab7b39b9a" 97 | end 98 | 99 | resource "pluggy" do 100 | url "https://aws-homebrew.s3-us-west-2.amazonaws.com/resource/a369d717/pluggy-0.13.0.tar.gz" 101 | sha256 "fa5fa1622fa6dd5c030e9cad086fa19ef6a0cf6d7a2d12318e10cb49d6d68f34" 102 | end 103 | 104 | resource "py" do 105 | url "https://aws-homebrew.s3-us-west-2.amazonaws.com/resource/a369d717/py-1.8.0.tar.gz" 106 | sha256 "dc639b046a6e2cff5bbe40194ad65936d6ba360b52b3c3fe1d08a82dd50b5e53" 107 | end 108 | 109 | resource "pycodestyle" do 110 | url "https://aws-homebrew.s3-us-west-2.amazonaws.com/resource/a369d717/pycodestyle-2.6.0.tar.gz" 111 | sha256 "c58a7d2815e0e8d7972bf1803331fb0152f867bd89adf8a01dfd55085434192e" 112 | end 113 | 114 | resource "pyflakes" do 115 | url "https://aws-homebrew.s3-us-west-2.amazonaws.com/resource/a369d717/pyflakes-2.2.0.tar.gz" 116 | sha256 "35b2d75ee967ea93b55750aa9edbbf72813e06a66ba54438df2cfac9e3c27fc8" 117 | end 118 | 119 | resource "pyparsing" do 120 | url "https://aws-homebrew.s3-us-west-2.amazonaws.com/resource/a369d717/pyparsing-2.4.7.tar.gz" 121 | sha256 "c203ec8783bf771a155b207279b9bccb8dea02d8f0c9e5f8ead507bc3246ecc1" 122 | end 123 | 124 | resource "pytest" do 125 | url "https://aws-homebrew.s3-us-west-2.amazonaws.com/resource/a369d717/pytest-8.2.2.tar.gz" 126 | sha256 "de4bb8104e201939ccdc688b27a89a7be2079b22e2bd2b07f806b6ba71117977" 127 | end 128 | 129 | resource "pytest-cov" do 130 | url "https://aws-homebrew.s3-us-west-2.amazonaws.com/resource/a369d717/pytest-cov-5.0.0.tar.gz" 131 | sha256 "5837b58e9f6ebd335b0f8060eecce69b662415b16dc503883a02f45dfeb14857" 132 | end 133 | 134 | resource "pytest-html" do 135 | url "https://aws-homebrew.s3-us-west-2.amazonaws.com/resource/a369d717/pytest-html-4.1.1.tar.gz" 136 | sha256 "70a01e8ae5800f4a074b56a4cb1025c8f4f9b038bba5fe31e3c98eb996686f07" 137 | end 138 | 139 | resource "pytest-metadata" do 140 | url "https://aws-homebrew.s3-us-west-2.amazonaws.com/resource/a369d717/pytest-metadata-3.1.1.tar.gz" 141 | sha256 "d2a29b0355fbc03f168aa96d41ff88b1a3b44a3b02acbe491801c98a048017c8" 142 | end 143 | 144 | resource "pytest-mock" do 145 | url "https://aws-homebrew.s3-us-west-2.amazonaws.com/resource/a369d717/pytest-mock-3.14.0.tar.gz" 146 | sha256 "2719255a1efeceadbc056d6bf3df3d1c5015530fb40cf347c0f9afac88410bd0" 147 | end 148 | 149 | resource "python-dateutil" do 150 | url "https://aws-homebrew.s3-us-west-2.amazonaws.com/resource/a369d717/python-dateutil-2.8.1.tar.gz" 151 | sha256 "73ebfe9dbf22e832286dafa60473e4cd239f8592f699aa5adaf10050e6e1823c" 152 | end 153 | 154 | resource "six" do 155 | url "https://aws-homebrew.s3-us-west-2.amazonaws.com/resource/a369d717/six-1.11.0.tar.gz" 156 | sha256 "70e8a77beed4562e7f14fe23a786b54f6296e34344c23bc42f07b15018ff98e9" 157 | end 158 | 159 | resource "urllib3" do 160 | url "https://aws-homebrew.s3-us-west-2.amazonaws.com/resource/a369d717/urllib3-1.25.11.tar.gz" 161 | sha256 "8d7eaa5a82a1cac232164990f04874c594c9453ec55eef02eab885aa02fc17a2" 162 | end 163 | 164 | resource "wcwidth" do 165 | url "https://aws-homebrew.s3-us-west-2.amazonaws.com/resource/a369d717/wcwidth-0.2.5.tar.gz" 166 | sha256 "c4d647b99872929fdb7bdcaa4fbe7f01413ed3d98077df798530e5b04f116c83" 167 | end 168 | 169 | def install 170 | venv = virtualenv_create(libexec, "python3") 171 | %w[atomicwrites attrs botocore configparser coverage entrypoints flake8 funcsigs jmespath mccabe 172 | mock more-itertools packaging pbr pluggy py pycodestyle pyflakes pyparsing pytest pytest-cov pytest-html 173 | pytest-metadata pytest-mock python-dateutil six urllib3 wcwidth].each do |r| 174 | venv.pip_install resource(r) 175 | end 176 | 177 | inreplace buildpath/"src/mount_efs/__init__.py", "/etc", libexec/"etc" 178 | inreplace buildpath/"src/mount_efs/__init__.py", "/var", libexec/"var" 179 | inreplace buildpath/"src/watchdog/__init__.py", "/etc", libexec/"etc" 180 | inreplace buildpath/"src/watchdog/__init__.py", "/var", libexec/"var" 181 | inreplace buildpath/"dist/efs-utils.conf", "/etc", libexec/"etc" 182 | inreplace buildpath/"dist/efs-utils.conf", "/var", libexec/"var" 183 | inreplace buildpath/"dist/amazon-efs-mount-watchdog.plist", "/var", libexec/"var" 184 | 185 | if libexec.to_s.start_with?("/opt/homebrew") 186 | inreplace buildpath/"dist/amazon-efs-mount-watchdog.plist", "/usr/local", "/opt/homebrew" 187 | end 188 | 189 | (libexec/"etc/amazon/efs/").mkpath 190 | libexec.install buildpath/"dist/efs-utils.crt" => "etc/amazon/efs/efs-utils.crt" 191 | libexec.install buildpath/"dist/efs-utils.conf" => "etc/amazon/efs/efs-utils.conf" 192 | 193 | (libexec/"usr/share/man/man8/").mkpath 194 | man8.install buildpath/"man/mount.efs.8" 195 | 196 | (prefix/"bin").mkpath 197 | bin.install buildpath/"src/watchdog/__init__.py" => "amazon-efs-mount-watchdog" 198 | bin.install buildpath/"src/mount_efs/__init__.py" => "mount.efs" 199 | 200 | (libexec/"var/log/amazon/efs").mkpath 201 | 202 | (libexec/"conffiles").mkpath 203 | libexec.install buildpath/"dist/amazon-efs-utils.conffiles" => "conffiles/amazon-efs-utils.conffiles" 204 | 205 | (libexec/"etc/init").mkpath 206 | libexec.install buildpath/"dist/amazon-efs-mount-watchdog.conf" => "etc/init/amazon-efs-mount-watchdog.conf" 207 | 208 | libexec.install buildpath/"dist/amazon-efs-mount-watchdog.plist" => "amazon-efs-mount-watchdog.plist" 209 | end 210 | 211 | def caveats 212 | <<~EOS 213 | To start using Amazon EFS on EC2 x86 Mac instances (mac1.metal): 214 | sudo mkdir -p /Library/Filesystems/efs.fs/Contents/Resources 215 | sudo ln -s /usr/local/bin/mount.efs /Library/Filesystems/efs.fs/Contents/Resources/mount_efs 216 | 217 | To start using Amazon EFS on EC2 M1 Mac instances (mac2.metal): 218 | sudo mkdir -p /Library/Filesystems/efs.fs/Contents/Resources 219 | sudo ln -s /opt/homebrew/bin/mount.efs /Library/Filesystems/efs.fs/Contents/Resources/mount_efs 220 | 221 | To stop using Amazon EFS on EC2 Mac instances: 222 | sudo rm /Library/Filesystems/efs.fs/Contents/Resources/mount_efs 223 | 224 | To enable watchdog for TLS mounts: 225 | sudo cp #{libexec}/amazon-efs-mount-watchdog.plist /Library/LaunchAgents 226 | sudo launchctl load /Library/LaunchAgents/amazon-efs-mount-watchdog.plist 227 | 228 | To disable watchdog for TLS mounts: 229 | sudo launchctl unload /Library/LaunchAgents/amazon-efs-mount-watchdog.plist 230 | EOS 231 | end 232 | 233 | test do 234 | system "false" 235 | end 236 | end 237 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | 2 | Apache License 3 | Version 2.0, January 2004 4 | http://www.apache.org/licenses/ 5 | 6 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 7 | 8 | 1. Definitions. 9 | 10 | "License" shall mean the terms and conditions for use, reproduction, 11 | and distribution as defined by Sections 1 through 9 of this document. 12 | 13 | "Licensor" shall mean the copyright owner or entity authorized by 14 | the copyright owner that is granting the License. 15 | 16 | "Legal Entity" shall mean the union of the acting entity and all 17 | other entities that control, are controlled by, or are under common 18 | control with that entity. For the purposes of this definition, 19 | "control" means (i) the power, direct or indirect, to cause the 20 | direction or management of such entity, whether by contract or 21 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 22 | outstanding shares, or (iii) beneficial ownership of such entity. 23 | 24 | "You" (or "Your") shall mean an individual or Legal Entity 25 | exercising permissions granted by this License. 26 | 27 | "Source" form shall mean the preferred form for making modifications, 28 | including but not limited to software source code, documentation 29 | source, and configuration files. 30 | 31 | "Object" form shall mean any form resulting from mechanical 32 | transformation or translation of a Source form, including but 33 | not limited to compiled object code, generated documentation, 34 | and conversions to other media types. 35 | 36 | "Work" shall mean the work of authorship, whether in Source or 37 | Object form, made available under the License, as indicated by a 38 | copyright notice that is included in or attached to the work 39 | (an example is provided in the Appendix below). 40 | 41 | "Derivative Works" shall mean any work, whether in Source or Object 42 | form, that is based on (or derived from) the Work and for which the 43 | editorial revisions, annotations, elaborations, or other modifications 44 | represent, as a whole, an original work of authorship. For the purposes 45 | of this License, Derivative Works shall not include works that remain 46 | separable from, or merely link (or bind by name) to the interfaces of, 47 | the Work and Derivative Works thereof. 48 | 49 | "Contribution" shall mean any work of authorship, including 50 | the original version of the Work and any modifications or additions 51 | to that Work or Derivative Works thereof, that is intentionally 52 | submitted to Licensor for inclusion in the Work by the copyright owner 53 | or by an individual or Legal Entity authorized to submit on behalf of 54 | the copyright owner. For the purposes of this definition, "submitted" 55 | means any form of electronic, verbal, or written communication sent 56 | to the Licensor or its representatives, including but not limited to 57 | communication on electronic mailing lists, source code control systems, 58 | and issue tracking systems that are managed by, or on behalf of, the 59 | Licensor for the purpose of discussing and improving the Work, but 60 | excluding communication that is conspicuously marked or otherwise 61 | designated in writing by the copyright owner as "Not a Contribution." 62 | 63 | "Contributor" shall mean Licensor and any individual or Legal Entity 64 | on behalf of whom a Contribution has been received by Licensor and 65 | subsequently incorporated within the Work. 66 | 67 | 2. Grant of Copyright License. Subject to the terms and conditions of 68 | this License, each Contributor hereby grants to You a perpetual, 69 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 70 | copyright license to reproduce, prepare Derivative Works of, 71 | publicly display, publicly perform, sublicense, and distribute the 72 | Work and such Derivative Works in Source or Object form. 73 | 74 | 3. Grant of Patent License. Subject to the terms and conditions of 75 | this License, each Contributor hereby grants to You a perpetual, 76 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 77 | (except as stated in this section) patent license to make, have made, 78 | use, offer to sell, sell, import, and otherwise transfer the Work, 79 | where such license applies only to those patent claims licensable 80 | by such Contributor that are necessarily infringed by their 81 | Contribution(s) alone or by combination of their Contribution(s) 82 | with the Work to which such Contribution(s) was submitted. If You 83 | institute patent litigation against any entity (including a 84 | cross-claim or counterclaim in a lawsuit) alleging that the Work 85 | or a Contribution incorporated within the Work constitutes direct 86 | or contributory patent infringement, then any patent licenses 87 | granted to You under this License for that Work shall terminate 88 | as of the date such litigation is filed. 89 | 90 | 4. Redistribution. You may reproduce and distribute copies of the 91 | Work or Derivative Works thereof in any medium, with or without 92 | modifications, and in Source or Object form, provided that You 93 | meet the following conditions: 94 | 95 | (a) You must give any other recipients of the Work or 96 | Derivative Works a copy of this License; and 97 | 98 | (b) You must cause any modified files to carry prominent notices 99 | stating that You changed the files; and 100 | 101 | (c) You must retain, in the Source form of any Derivative Works 102 | that You distribute, all copyright, patent, trademark, and 103 | attribution notices from the Source form of the Work, 104 | excluding those notices that do not pertain to any part of 105 | the Derivative Works; and 106 | 107 | (d) If the Work includes a "NOTICE" text file as part of its 108 | distribution, then any Derivative Works that You distribute must 109 | include a readable copy of the attribution notices contained 110 | within such NOTICE file, excluding those notices that do not 111 | pertain to any part of the Derivative Works, in at least one 112 | of the following places: within a NOTICE text file distributed 113 | as part of the Derivative Works; within the Source form or 114 | documentation, if provided along with the Derivative Works; or, 115 | within a display generated by the Derivative Works, if and 116 | wherever such third-party notices normally appear. The contents 117 | of the NOTICE file are for informational purposes only and 118 | do not modify the License. You may add Your own attribution 119 | notices within Derivative Works that You distribute, alongside 120 | or as an addendum to the NOTICE text from the Work, provided 121 | that such additional attribution notices cannot be construed 122 | as modifying the License. 123 | 124 | You may add Your own copyright statement to Your modifications and 125 | may provide additional or different license terms and conditions 126 | for use, reproduction, or distribution of Your modifications, or 127 | for any such Derivative Works as a whole, provided Your use, 128 | reproduction, and distribution of the Work otherwise complies with 129 | the conditions stated in this License. 130 | 131 | 5. Submission of Contributions. Unless You explicitly state otherwise, 132 | any Contribution intentionally submitted for inclusion in the Work 133 | by You to the Licensor shall be under the terms and conditions of 134 | this License, without any additional terms or conditions. 135 | Notwithstanding the above, nothing herein shall supersede or modify 136 | the terms of any separate license agreement you may have executed 137 | with Licensor regarding such Contributions. 138 | 139 | 6. Trademarks. This License does not grant permission to use the trade 140 | names, trademarks, service marks, or product names of the Licensor, 141 | except as required for reasonable and customary use in describing the 142 | origin of the Work and reproducing the content of the NOTICE file. 143 | 144 | 7. Disclaimer of Warranty. Unless required by applicable law or 145 | agreed to in writing, Licensor provides the Work (and each 146 | Contributor provides its Contributions) on an "AS IS" BASIS, 147 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 148 | implied, including, without limitation, any warranties or conditions 149 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 150 | PARTICULAR PURPOSE. You are solely responsible for determining the 151 | appropriateness of using or redistributing the Work and assume any 152 | risks associated with Your exercise of permissions under this License. 153 | 154 | 8. Limitation of Liability. In no event and under no legal theory, 155 | whether in tort (including negligence), contract, or otherwise, 156 | unless required by applicable law (such as deliberate and grossly 157 | negligent acts) or agreed to in writing, shall any Contributor be 158 | liable to You for damages, including any direct, indirect, special, 159 | incidental, or consequential damages of any character arising as a 160 | result of this License or out of the use or inability to use the 161 | Work (including but not limited to damages for loss of goodwill, 162 | work stoppage, computer failure or malfunction, or any and all 163 | other commercial damages or losses), even if such Contributor 164 | has been advised of the possibility of such damages. 165 | 166 | 9. Accepting Warranty or Additional Liability. While redistributing 167 | the Work or Derivative Works thereof, You may choose to offer, 168 | and charge a fee for, acceptance of support, warranty, indemnity, 169 | or other liability obligations and/or rights consistent with this 170 | License. However, in accepting such obligations, You may act only 171 | on Your own behalf and on Your sole responsibility, not on behalf 172 | of any other Contributor, and only if You agree to indemnify, 173 | defend, and hold each Contributor harmless for any liability 174 | incurred by, or claims asserted against, such Contributor by reason 175 | of your accepting any such warranty or additional liability. 176 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | git=git 2 | brew=brew 3 | 4 | TEST_HOMEBREW_TAP?=aws/homebrew-aws-next 5 | export HOMEBREW_PREFIX=$(shell $(brew) --prefix) 6 | 7 | export HOMEBREW_COLOR?=1 8 | export HOMEBREW_NO_COLOR?= 9 | export HOMEBREW_NO_EMOJI?=1 10 | export HOMEBREW_SIMULATE_MACOS_ON_LINUX?=1 11 | export HOMEBREW_VERBOSE?= 12 | export HOMEBREW_DEBUG?= 13 | 14 | export HOMEBREW_DEVELOPER=1 15 | export HOMEBREW_NO_AUTO_UPDATE=1 16 | export HOMEBREW_NO_ENV_HINTS=1 17 | export HOMEBREW_BOOTSNAP=0 18 | export HOMEBREW_NO_INSTALL_CLEANUP=1 19 | export HOMEBREW_VERIFY_ATTESTATIONS=1 20 | export HOMEBREW_DISPLAY_INSTALL_TIMES=1 21 | 22 | LOCAL_CACHE_DIR=$(abspath ./test-cache) 23 | export HOMEBREW_CACHE=$(abspath $(LOCAL_CACHE_DIR)/homebrew-cache) 24 | export HOMEBREW_BUNDLE_USER_CACHE=$(abspath $(LOCAL_CACHE_DIR)/bundle-user-cache) 25 | 26 | .default: check-style 27 | 28 | dev-setup: test-tap test-cache 29 | 30 | test-tap: 31 | @-echo "(re)initialize tap worktree" >&2; sleep 1; 32 | -$(git) worktree remove $(GIT_FORCE) $(HOMEBREW_PREFIX)/Library/Taps/$(TEST_HOMEBREW_TAP) 33 | $(git) worktree add $(HOMEBREW_PREFIX)/Library/Taps/$(TEST_HOMEBREW_TAP) HEAD 34 | 35 | test-cache: $(LOCAL_CACHE_DIR) 36 | 37 | $(LOCAL_CACHE_DIR): 38 | mkdir $(LOCAL_CACHE_DIR) $(HOMEBREW_CACHE) $(HOMEBREW_BUNDLE_USER_CACHE) 39 | 40 | check: check-style check-audit 41 | 42 | fmt format: 43 | $(brew) style --except-cops Cask/Desc --fix . 44 | 45 | check-style: 46 | $(brew) style --except-cops Cask/Desc . 47 | 48 | check-audit: 49 | $(brew) audit --skip-style --except=version --signing --os=all --arch=all --display-filename --tap=$(TEST_HOMEBREW_TAP) 50 | 51 | check-audit-slow: HOMEBREW_VERBOSE=1 52 | check-audit-slow: 53 | $(brew) audit --skip-style --except=version --signing --os=all --arch=all --display-filename --online --tap=$(TEST_HOMEBREW_TAP) 54 | -------------------------------------------------------------------------------- /NOTICE: -------------------------------------------------------------------------------- 1 | EC2 macOS Homebrew Tap 2 | Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 3 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # EC2 macOS Homebrew Tap 2 | 3 | AWS offers EC2-optimized macOS AMIs for developer use. The EC2 Mac AMIs provided by AWS include this Tap by default, which provides a simple way to get these tools and updates to them. 4 | 5 | ## What is Homebrew? 6 | 7 | [Homebrew](https://brew.sh) is a package manager for macOS, which provides easy installation and update management of [additional software](https://formulae.brew.sh/). 8 | 9 | ## What is a Tap? 10 | 11 | A third-party (in relation to Homebrew) repository, which provides installable packages on macOS. 12 | 13 | See more at [https://docs.brew.sh/Taps](https://docs.brew.sh/Taps). 14 | 15 | ## What packages are available in this Tap? 16 | 17 | This Tap (repository) contains the formulae that are used in the macOS AMI(s) that are offered by AWS for launching EC2 Mac instances. 18 | 19 | This includes: 20 | 21 | | Name | Description | Type | Package Name| 22 | |------|-------------|------|-------------| 23 | | Amazon ENA | [EC2 Mac ENA Network Driver for macOS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/enhanced-networking-ena.html) | Cask | amazon-ena-ethernet | 24 | | Amazon ENA DriverKit | [EC2 Mac ENA Network Driver for macOS Monterey and later (arm64 only)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/enhanced-networking-ena.html) | Cask | amazon-ena-ethernet-dext | 25 | | Amazon EFS | [Amazon Elastic File System](https://docs.aws.amazon.com/efs/latest/ug/using-amazon-efs-utils.html) | Keg | amazon-efs-utils | 26 | | Amazon SSM Agent | [Amazon SSM Agent](https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-agent.html)| Cask| amazon-ssm-agent | 27 | | EC2 macOS Init | Instance initialization and configuration, including performance optimization | Cask | ec2-macos-init | 28 | | EC2 System Monitor for macOS | For collecting system monitoring CloudWatch metrics on mac1.metal instances | Cask | ec2-macos-system-monitoring | 29 | | EC2 macOS Utils | Provides common command-line tool for customizing EC2 Mac instances | Cask | ec2-macos-utils | 30 | | EC2 Instance Connect | [EC2 Instance Connect](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-connect-set-up.html) | Cask | ec2-instance-connect | 31 | 32 | ## How do I install the packages from this Tap? 33 | 34 | This Tap follows standard Homebrew commands, for more information, please refer to the [Homebrew Documentation](https://docs.brew.sh/). Updating homebrew itself is done via the following command: 35 | 36 | ```sh 37 | brew update 38 | ``` 39 | 40 | The above command will update homebrew itself and this comamnd should always be run prior to attempts to install or update any packages with brew. 41 | 42 | ### Installing the Tap 43 | 44 | The macOS AMIs provided by AWS already come with Homebrew installed and this Tap "pretapped". To manually install the Tap, use the the `brew tap` command: 45 | 46 | ```sh 47 | brew tap aws/homebrew-aws 48 | ``` 49 | 50 | ### Removing the Tap 51 | 52 | If this Tap needs to be removed for any reason, Homebrew includes a specific [command](https://docs.brew.sh/Taps) for this. (*Note:* This will only remove the Tap and it will preserve anything that was previously installed) 53 | 54 | ```sh 55 | brew untap aws/homebrew-aws 56 | ``` 57 | 58 | ### Updating Packages 59 | 60 | To update a specific package (Keg or Cask) that has been installed from this tap. Kegs use the default `brew upgrade ` command, while Casks have their own sub-command: `brew upgrade --cask `. 61 | 62 | For example: 63 | 64 | | Type | Update Command| 65 | |-------|--------| 66 | | Full System| `brew upgrade` | 67 | | Keg |`brew upgrade amazon-efs-utils`| 68 | | Cask |`brew upgrade --cask amazon-ena-ethernet-dext`| 69 | 70 | ### Installing Packages 71 | 72 | There are two primary ways to install software from the Tap. Kegs use the default `brew install ` command, while Casks have their own sub-command: `brew install --cask `. 73 | 74 | For example: 75 | 76 | | Type | Install Command | 77 | |------|-----------------| 78 | | Keg | `brew install amazon-efs-utils` || 79 | | Cask | `brew install --cask amazon-ena-ethernet-dext` | 80 | 81 | ### Removing Packages 82 | 83 | Removing software is similar to installing software. Kegs and Casks now use the same `brew remove ` command. 84 | 85 | For example: 86 | 87 | | Type | Uninstall Command | 88 | |------|-----------------| 89 | | Keg | `brew remove amazon-efs-utils` | 90 | | Cask | `brew remove amazon-ssm-agent` | 91 | 92 | ## Documentation 93 | 94 | To get more information about brew you can run `brew help` or `man brew` on a mac1.metal instance or check [Homebrew's documentation](https://docs.brew.sh) for Homebrew's complete documentation. 95 | 96 | ## License 97 | 98 | This project is licensed under the [Apache License, version 2.0](https://www.apache.org/licenses/LICENSE-2.0). 99 | --------------------------------------------------------------------------------