Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mdub/swa
an alternative CLI for AWS
https://github.com/mdub/swa
Last synced: about 2 months ago
JSON representation
an alternative CLI for AWS
- Host: GitHub
- URL: https://github.com/mdub/swa
- Owner: mdub
- License: mit
- Created: 2016-05-26T08:19:41.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2024-05-12T23:25:01.000Z (8 months ago)
- Last Synced: 2024-05-13T23:33:19.542Z (8 months ago)
- Language: Ruby
- Homepage:
- Size: 143 KB
- Stars: 3
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# SWA
SWA is AWS, backwards.
It's an alternative CLI for AWS.
"Backwards" because it puts verbs at the end:
$ swa ec2 instance i-9336f049 terminate
rather than the front:
$ aws ec2 terminate-instances --instance-ids i-9336f049
## Listing things
SWA provides sub-commands for listing many types of AWS resource, e.g.
$ swa ec2 instances
Listing commands typically provide options for refining the search:
$ swa ec2 instances --tagged purpose=QA --filter availability-zone=ap-southeast-2b
By default you'll get a "summary" view, one line per resource:
$ swa ec2 instances | head
i-bcf48c2b ami-1e73737d c3.large running 10.47.5.16
i-1990d85c ami-538e7330 t2.micro running 10.47.7.25 "blarg/room-service"
i-f9e6ea27 ami-8bfd7eb1 t2.small running 10.47.11.54 "blarg/match-feed"
i-19155e5c ami-d5327ab6 c3.large running 10.47.6.238 "fnord-snarfer"
i-26357e63 ami-eded7ed7 t2.micro running 10.47.6.96 "fnord-dashboard"
i-b85f6c87 ami-695a7253 c3.xlarge running 10.47.5.252 "bam-boozle"
i-5627e187 ami-d9d779ba c4.2xlarge running 10.47.11.201 "pub-batch-42"
i-ced5ae59 ami-eded7ed7 t2.micro running 10.47.6.22 "atlas-hugged"
i-63e722b2 ami-8bfd7eb1 t2.small running 10.47.8.95 "blarg/first-service"But you can ask for **all** the data, if you wish:
$ swa ec2 instances data
---
- InstanceId: i-bcf48c2b
ImageId: ami-1e73537d
State:
Code: 16
Name: running
PrivateDnsName: ip-10-48-9-16.ap-southeast-2.compute.internal
PublicDnsName: ''
...Specify `-J` if you like JSON better than YAML.
You can specify a [JMESPath](http://jmespath.org) to extract a subset of the data:
$ swa ec2 instances data '[].{Id:InstanceId,Profile:IamInstanceProfile.Id}'
---
- Id: i-7f5495ae
Profile: AIPAIDOQKT66MFXRO5BPS
- Id: i-9c539e4d
Profile: AIPAIRT5GOEJ2ZMVPGGD6
- Id: i-fbeda3be
Profile: AIPAIZXZFLTUW6L456LFU## Inspecting things
Each "collection" operation has a corresponding "item" operation, e.g.
$ swa ec2 instance i-bcf48c2b ...
Different resource-types support different sub-commands, but they all implement `data`, which again dumps everything in YAML or JSON format.
$ swa ec2 instance i-bcf48c2b data
The "item" sub-command can be ommitted, when it can be inferred from the resource-id:
$ swa ec2 i-bcf48c2b data
$ swa ec2 ami-1e73737d data## Installing it
SWA is packaged as a Ruby gem, and can be installed with:
gem install swa
On a Mac, I recommend [brew-gem](https://github.com/sportngin/brew-gem) for easy system-wide installation:
brew install brew-gem
brew gem install swa## Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/mdub/swa.
## License
The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).