mirror of
https://github.com/fish-shell/fish-shell.git
synced 2024-11-23 06:05:39 +08:00
Add partial aws
and ~full aws s3
completions
[ci skip]
This commit is contained in:
parent
4d8a82b68f
commit
d66ec08819
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 New Issue
Block a user