Skip to content

Instantly share code, notes, and snippets.

View sasasin's full-sized avatar

Shinnosuke Suzuki sasasin

View GitHub Profile
@sasasin
sasasin / oreilly-jp-ebook-to-booklog.sh
Created June 30, 2023 14:14
オライリージャパンで購入した電子書籍を、ブクログにISBN登録するやつ
#!/bin/bash
set -eo pipefail
# オライリージャパンで購入した電子書籍を、ブクログにISBN登録するやつ。
# https://www.oreilly.co.jp/ebook/bookshelf をウェブブラウザで開いて、全選択 & コピーして、
pbpaste \
| grep ISBN \
| sed -e 's| |\n|g' \
| grep 978 \
| sed -e 's|-||g'
# で出てきた ISBN コードのリストを https://booklog.jp/input に「ISBN コードでまとめて登録」
@sasasin
sasasin / list_container_image_name.sh
Created May 29, 2023 11:55
コンテナイメージ名っぽい文字列を抽出するやつ
#!/bin/bash
# コンテナイメージ名っぽい文字列を抽出するやつ
# 組織のgitリポジトリをドサッと手元に持ってきて、リポジトリ横断でリストアップしたい
# ファイル形式それぞれで漁り方が異なる
# フィルタリングが不完全で、コンテナ名ではないものが残ることがあるし、コンテナ名が除外されてることもある(かもしれない)
# rg は ripgrep
# rg --type xxxx が指す拡張子の調べ方は rg --list-type | grep xxxx で出る
# 詳しくは https://github.com/BurntSushi/ripgrep/blob/master/GUIDE.md を参照
@sasasin
sasasin / aws-amplify-hosting-logs-upload-s3-to.sh
Created April 8, 2023 09:29
AWS Amplify Hosting の任意の年月日のアクセスログをダウンロードしてS3にアップするやつ
#!/bin/bash -e
set -o pipefail
# AWS Amplify Hosting の任意の年月日のアクセスログをダウンロードしてS3にアップするやつ。
# 1個2個なら app id や domain name を直接指定してもいいけど、数が多いと面倒なので、
# app id と domain name のリストを作って、ループで回して全部取ってくる。
# このシェルスクリプトを毎日1回 cron で回せば毎日のアクセスログを取得できる。
# 本音は CloudFront みたくポチポチしたらS3に勝手に出るようになってほしい。
# この S3 バケットのパスにアップロードする
S3_BUCKET_NAME_PATH=$1
@sasasin
sasasin / aws-iam-get-policy-document.sh
Created March 14, 2023 09:55
IAMポリシードキュメントをダウンロードするやつ
#!/bin/bash
IAM_POLICY_ARN="$1"
IAM_POLICY_NAME=$(echo "${IAM_POLICY_ARN}" | awk 'BEGIN{FS="/"}{print $NF}')
aws iam get-policy-version \
--policy-arn "${IAM_POLICY_ARN}" \
--version-id $(\
aws iam get-policy \
@sasasin
sasasin / aws-cli-exec-with-next-token.sh
Created March 9, 2023 03:07
AWS CLI の任意のコマンドを実行して .NextToken を追い掛けて全部取るやつ
#!/bin/bash
set -eo pipefail
# https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-pagination.html
AWS_CLI_COMMAND=$@
aws-cli-exec-with-next-token()
{
NEXT_TOKEN="$1"
if [ "${NEXT_TOKEN}" == "" ]; then
@sasasin
sasasin / aws-synthetics-canaries-start-stop-all
Created March 8, 2023 12:39
AWS CloudWatch Synthetics Canary の定期実行を一括で開始したり止めたりするやつ
# 起動停止の状態を確認するやつ
aws synthetics describe-canaries \
| jq -r '.Canaries[] | [.Name, .Status.State] | @csv'
# ぜんぶ起動するやつ
aws synthetics describe-canaries \
| jq -r '.Canaries[].Name' \
| sort \
| xargs -L1 aws synthetics start-canary --name
@sasasin
sasasin / get-canary-source-code.sh
Created March 8, 2023 12:14
AWS CloudWatch Synthetics Canary のソースコードのzipをダウンロードして解凍するやつ
#!/bin/bash
CANARY_NAME="$1"
CANARY_SOURCE_LOCATION_ARN=$( \
aws synthetics get-canary \
--name "${CANARY_NAME}" \
--query 'Canary.Code.SourceLocationArn' \
--output text \
)
@sasasin
sasasin / codebuild_image_update_apply.sh
Last active March 23, 2023 06:48
CodeBuild のコンテナイメージのとこだけ書き換えるやつ
#!/bin/bash
set -eo pipefail
CODEBUILD_PROJECT_NAME="$1"
aws codebuild update-project \
--name "${CODEBUILD_PROJECT_NAME}" \
--cli-input-json file://"${CODEBUILD_PROJECT_NAME}".patch.json \
> /dev/null
@sasasin
sasasin / aws-codebuild-list-all-projects.sh
Created March 3, 2023 13:30
CodeBuild のビルドプロジェクト名とコンテナイメージ名をガッと出すやつ
#!/bin/bash
set -eo pipefail
aws codebuild list-projects \
| jq -r '.projects[]' \
| sort \
| xargs -IXXXX -P1 aws codebuild batch-get-projects --names XXXX \
| jq -r '.projects[] | [.name, .environment.image] | @csv'
@sasasin
sasasin / get-awsdocs-atom-list.sh
Last active March 3, 2023 08:16
https://github.com/awsdocs の全リポジトリの Atom の URL を得るやつ
#!/bin/bash
set -eo pipefail
# https://github.com/awsdocs の全リポジトリの Atom の URL を得るやつ
# たぶん全部 main ブランチ
gh repo list awsdocs --no-archived --limit 500 \
| cut -f 1 \
| sort -u \
| awk '{print "https://github.com/" $1 "/commits/main.atom"}'