mirror of
https://github.com/fish-shell/fish-shell
synced 2024-12-30 14:53:11 +00:00
211 lines
3.7 KiB
Fish
211 lines
3.7 KiB
Fish
|
# 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"
|