Skip to content

Commit 0a60c18

Browse files
authored
Update update-readme.yml
1 parent 1713aff commit 0a60c18

File tree

1 file changed

+29
-24
lines changed

1 file changed

+29
-24
lines changed
Lines changed: 29 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
1-
name: Perbarui README.md dengan Daftar Folder
1+
name: Perbarui README.md dengan Folder
22

3-
# Menjalankan workflow setiap kali ada perubahan di repositori
43
on:
54
push:
65
paths:
@@ -11,60 +10,66 @@ jobs:
1110
runs-on: ubuntu-latest
1211

1312
steps:
14-
# 1. Checkout repositori
1513
- name: Checkout repositori
1614
uses: actions/checkout@v2
1715

18-
# 2. Ambil daftar folder yang ada di repositori
1916
- name: Ambil semua folder
2017
id: get_folders
2118
run: |
2219
# Mendapatkan semua folder kecuali .github dan node_modules
2320
FOLDERS=$(ls -d */ | grep -v '\.github\|node_modules' | sed 's/\/$//')
2421
echo "folders=$(echo "$FOLDERS" | tr '\n' ' ')" >> $GITHUB_ENV
2522
26-
# 3. Perbarui README.md dengan daftar folder yang ditemukan
27-
- name: Perbarui README.md
23+
- name: Cek folder saat ini di README.md
24+
id: read_readme
2825
run: |
29-
# Jika tidak ada folder dalam repositori, keluar dari proses
26+
# Ambil semua folder yang sudah ada di README.md secara case-insensitive
27+
if grep -q '\[.*\]\(.*\)' README.md; then
28+
CURRENT_FOLDERS=$(grep -oP '\[(.*?)\]\(\K.*?(?=\)' README.md | tr '[:upper:]' '[:lower:]' | sort -u)
29+
else
30+
CURRENT_FOLDERS=""
31+
fi
32+
echo "current_folders=$(echo "$CURRENT_FOLDERS" | tr '\n' ' ')" >> $GITHUB_ENV
33+
34+
- name: Reset dan sinkronkan folder di README.md
35+
run: |
36+
# Jika tidak ada folder dalam repositori, keluar
3037
if [ -z "${{ env.folders }}" ]; then
3138
echo "Tidak ada folder yang ditemukan di repositori."
3239
exit 0
3340
fi
3441
35-
# Baca template dari file template.md
42+
# Baca template dari template.md
3643
TEMPLATE_FILE="template.md"
37-
README_FILE="README.md"
44+
OUTPUT_FILE="README.md"
3845
39-
# Hapus isi file README.md lama
40-
> $README_FILE
46+
# Hapus isi file README.md
47+
> $OUTPUT_FILE
4148
4249
# Salin konten template ke file README.md
43-
cp $TEMPLATE_FILE $README_FILE
50+
cp $TEMPLATE_FILE $OUTPUT_FILE
4451
45-
# Generate daftar folder untuk ditampilkan dalam format tabel dengan icon
52+
# Generate daftar folder untuk Markdown
4653
UPDATED_FOLDER_LIST=""
47-
ICON="📁" # Icon untuk folder
48-
for folder in ${{ env.folders }}; do
49-
# Escape karakter spesial di folder name sebelum memasukkan ke sed
50-
folder_escaped=$(echo "$folder" | sed 's/[\/&]/\\&/g')
5154
52-
# Menambahkan folder ke daftar dalam format tabel dengan icon
53-
UPDATED_FOLDER_LIST="$UPDATED_FOLDER_LIST| $ICON | [$folder]($folder_escaped/) |\n"
55+
# Tambahkan folder yang ada ke list
56+
for folder in ${{ env.folders }}; do
57+
folder_clean=$(echo "$folder" | tr '[:upper:]' '[:lower:]' | sed 's/^[ \t]*//;s/[ \t]*$//') # Normalisasi nama folder
58+
UPDATED_FOLDER_LIST="$UPDATED_FOLDER_LIST- [$folder](./$folder)\n"
5459
done
5560
56-
# Gunakan `sed` untuk menggantikan placeholder dengan daftar folder yang diperbarui di README.md
57-
sed -i.bak "s|<!-- FOLDER_LIST_PLACEHOLDER -->|$UPDATED_FOLDER_LIST|" $README_FILE
61+
# Gantikan placeholder dengan daftar folder yang diperbarui di README.md
62+
sed -i.bak "s|<!-- FOLDER_LIST_PLACEHOLDER -->|$UPDATED_FOLDER_LIST|" $OUTPUT_FILE
5863
5964
# Cek jika tidak ada perubahan pada README.md
6065
if git diff --quiet; then
6166
echo "Tidak ada perubahan pada README.md. Melewatkan commit."
6267
exit 0
6368
fi
6469
65-
# Jika ada perubahan, commit dan push ke repositori
70+
# Commit dan push perubahan
6671
git config --global user.name "github-actions"
6772
git config --global user.email "github-actions@github.com"
68-
git add $README_FILE
69-
git commit -m "Perbarui README.md dengan daftar folder terbaru"
73+
git add $OUTPUT_FILE
74+
git commit -m "Reset dan sinkronkan folder di README.md dengan repositori"
7075
git push

0 commit comments

Comments
 (0)