mirror of
https://github.com/fish-shell/fish-shell
synced 2024-12-27 05:13:10 +00:00
Add partial aws
and ~full aws s3
completions
[ci skip]
This commit is contained in:
parent
4d8a82b68f
commit
d66ec08819
1 changed files with 210 additions and 0 deletions
210
share/completions/aws.fish
Normal file
210
share/completions/aws.fish
Normal file
|
@ -0,0 +1,210 @@
|
|||
# These are very much incomplete completions for the aws-cli suite.
|
||||
# In addition to a complete list of services, the `aws s3` completions are mostly complete
|
||||
# (and are the primary reason this file exists). The automatically generated completions
|
||||
# for `aws` via `fish_update_completions` are pretty useless due to non-standard formatting.
|
||||
|
||||
function __s3_is_bucket
|
||||
commandline -ct | string match -q -r -- '^s3://[^/]?$'
|
||||
end
|
||||
|
||||
function __s3_is_remote_path
|
||||
commandline -ct | string match -q -r -- "^s3://.*/.*"
|
||||
end
|
||||
|
||||
function __s3_ls_buckets
|
||||
aws s3 ls | string replace -rf '.* (\S+)$' 's3://$1/'
|
||||
end
|
||||
|
||||
function __s3_ls_dir
|
||||
set -l dir (commandline -ct | string replace -rf '(s3://.*/).*' '$1')
|
||||
printf "$dir%s\n" (aws s3 ls $dir 2>/dev/null | string replace -fr '^(:?\S+ +\S+ +\S+ |^.*PRE )(.*)' '$2')
|
||||
end
|
||||
|
||||
# S3 remote completions
|
||||
complete -c 'aws' -n "__fish_prev_arg_in s3" -xa "cp mv rm help sync ls mb mv presign rb website"
|
||||
complete -c 'aws' -n "__s3_is_remote_path" -xa "(__s3_ls_dir)"
|
||||
complete -c 'aws' -n "__s3_is_bucket" -xa "(__s3_ls_buckets)"
|
||||
complete -c 'aws' -n "not __s3_is_remote_path && __fish_prev_arg_in ls" -xa "(__s3_ls_buckets)"
|
||||
complete -c 'aws' -n "not __s3_is_remote_path && __fish_prev_arg_in mv cp rm" -a "(__s3_ls_buckets)"
|
||||
|
||||
# This list is extracted from the output of `aws help`, which can't be ingested directly,
|
||||
# as it emits considerable ANSI output and other terminal control characters.
|
||||
set -l aws_services \
|
||||
acm \
|
||||
acm-pca \
|
||||
alexaforbusiness \
|
||||
amplify \
|
||||
apigateway \
|
||||
apigatewaymanagementapi \
|
||||
apigatewayv2 \
|
||||
application-autoscaling \
|
||||
appmesh \
|
||||
appstream \
|
||||
appsync \
|
||||
athena \
|
||||
autoscaling \
|
||||
autoscaling-plans \
|
||||
backup \
|
||||
batch \
|
||||
budgets \
|
||||
ce \
|
||||
chime \
|
||||
cloud9 \
|
||||
clouddirectory \
|
||||
cloudformation \
|
||||
cloudfront \
|
||||
cloudhsm \
|
||||
cloudhsmv2 \
|
||||
cloudsearch \
|
||||
cloudsearchdomain \
|
||||
cloudtrail \
|
||||
cloudwatch \
|
||||
codebuild \
|
||||
codecommit \
|
||||
codepipeline \
|
||||
codestar \
|
||||
cognito-identity \
|
||||
cognito-idp \
|
||||
cognito-sync \
|
||||
comprehend \
|
||||
comprehendmedical \
|
||||
configservice \
|
||||
configure \
|
||||
connect \
|
||||
cur \
|
||||
datapipeline \
|
||||
datasync \
|
||||
dax \
|
||||
deploy \
|
||||
devicefarm \
|
||||
directconnect \
|
||||
discovery \
|
||||
dlm \
|
||||
dms \
|
||||
docdb \
|
||||
ds \
|
||||
dynamodb \
|
||||
dynamodbstreams \
|
||||
ec2 \
|
||||
ecr \
|
||||
ecs \
|
||||
efs \
|
||||
eks \
|
||||
elasticache \
|
||||
elasticbeanstalk \
|
||||
elastictranscoder \
|
||||
elb \
|
||||
elbv2 \
|
||||
emr \
|
||||
es \
|
||||
events \
|
||||
firehose \
|
||||
fms \
|
||||
fsx \
|
||||
gamelift \
|
||||
glacier \
|
||||
globalaccelerator \
|
||||
glue \
|
||||
greengrass \
|
||||
guardduty \
|
||||
health \
|
||||
help \
|
||||
history \
|
||||
iam \
|
||||
importexport \
|
||||
inspector \
|
||||
iot \
|
||||
iot-data \
|
||||
iot-jobs-data \
|
||||
iot1click-devices \
|
||||
iot1click-projects \
|
||||
iotanalytics \
|
||||
kafka \
|
||||
kinesis \
|
||||
kinesis-video-archived-media \
|
||||
kinesis-video-media \
|
||||
kinesisanalytics \
|
||||
kinesisanalyticsv2 \
|
||||
kinesisvideo \
|
||||
kms \
|
||||
lambda \
|
||||
lex-models \
|
||||
lex-runtime \
|
||||
license-manager \
|
||||
lightsail \
|
||||
logs \
|
||||
machinelearning \
|
||||
macie \
|
||||
marketplace-entitlement \
|
||||
marketplacecommerceanalytics \
|
||||
mediaconnect \
|
||||
mediaconvert \
|
||||
medialive \
|
||||
mediapackage \
|
||||
mediastore \
|
||||
mediastore-data \
|
||||
mediatailor \
|
||||
meteringmarketplace \
|
||||
mgh \
|
||||
mobile \
|
||||
mq \
|
||||
mturk \
|
||||
neptune \
|
||||
opsworks \
|
||||
opsworks-cm \
|
||||
organizations \
|
||||
pi \
|
||||
pinpoint \
|
||||
pinpoint-email \
|
||||
pinpoint-sms-voice \
|
||||
polly \
|
||||
pricing \
|
||||
quicksight \
|
||||
ram \
|
||||
rds \
|
||||
rds-data \
|
||||
redshift \
|
||||
rekognition \
|
||||
resource-groups \
|
||||
resourcegroupstaggingapi \
|
||||
robomaker \
|
||||
route53 \
|
||||
route53domains \
|
||||
route53resolver \
|
||||
s3 \
|
||||
s3api \
|
||||
s3control \
|
||||
sagemaker \
|
||||
sagemaker-runtime \
|
||||
sdb \
|
||||
secretsmanager \
|
||||
securityhub \
|
||||
serverlessrepo \
|
||||
servicecatalog \
|
||||
servicediscovery \
|
||||
ses \
|
||||
shield \
|
||||
signer \
|
||||
sms \
|
||||
snowball \
|
||||
sns \
|
||||
sqs \
|
||||
ssm \
|
||||
stepfunctions \
|
||||
storagegateway \
|
||||
sts \
|
||||
support \
|
||||
swf \
|
||||
textract \
|
||||
transcribe \
|
||||
transfer \
|
||||
translate \
|
||||
waf \
|
||||
waf-regional \
|
||||
workdocs \
|
||||
worklink \
|
||||
workmail \
|
||||
workspaces \
|
||||
xray
|
||||
|
||||
complete -c aws -n '__fish_is_first_arg' -xa "$aws_services"
|
Loading…
Reference in a new issue