perbarui repositori git dengan skrip apple

1

Saya ingin memperbarui penyimpanan online git Bitbucket saya dengan skrip apel. Ini adalah kode yang berfungsi di Terminal, tetapi tidak ketika saya menjalankan skrip apel.

cd /Users/mainuser/Desktop/Projects git add -A
git commit -m fromAppleScript
git push

dibuat menjadi skrip apel:

        say "updating backup"
        do shell script "cd /Users/mainuser/Desktop/Projects git add -A"
        do shell script "cd /Users/mainuser/Desktop/Projects git commit -m fromAppleScript"
        do shell script "cd /Users/mainuser/Desktop/Projects git push"

Saya agak bingung mengapa kode ini tidak berfungsi. Bisakah Anda membantu saya mengatasi masalah ini?

sanjihan
sumber
Apakah Anda memiliki skrip shell atau perintah yang berfungsi saat dikeluarkan dari dalam Terminal.app? Apakah Anda perlu bantuan mengubah direktori menjadi proyek Anda dan menjalankan git push?
Graham Miln
Saya tidak tahu bagaimana melakukannya, bahkan di Terminal.
sanjihan
2
gitbisa sulit untuk dipelajari dan di-debug. Pertimbangkan menguasai langkah-langkah yang Anda inginkan melalui Terminal.app - dengan bantuan Buku Git . Dukungan BitBucket memberikan banyak contoh dan alur kerja untuk dicoba dan dipelajari. Setelah Anda memercayai proses itu, mengotomatisasi melalui AppleScript akan jauh lebih mudah.
Graham Miln
1
Anda mungkin perlu memisahkan perintah cd dari perintah git di setiap baris dengan tanda titik dua: "cd ...; git ..."
mtklr

Jawaban:

2

Anda tampaknya menggunakan gitsebagai cadangan sistem file. Sudahkah Anda mempertimbangkan git-annex?

Belajar git

gitbisa sulit untuk dipelajari dan di-debug . Pertimbangkan menguasai langkah-langkah yang Anda inginkan melalui Terminal.app - dengan bantuan Buku Git .

Dukungan BitBucket memberikan banyak contoh dan alur kerja untuk dicoba dan dipelajari. Setelah Anda memercayai proses itu, mengotomatisasi melalui AppleScript akan jauh lebih mudah.

Memperbaiki Script Shell

Untuk membantu Anda, ada masalah dengan AppleScript. Skrip yang diteruskan untuk melakukan skrip shell akan menghasilkan kesalahan:

do shell script "cd /Users/mainuser/Desktop/Projects git add -A"

Dalam kutipan ini Anda mengeluarkan dua perintah: satu untuk mengubah direktori, dan yang kedua untuk menambahkan file ke git. Kedua perintah ini harus dipisahkan dengan tanda titik koma:

do shell script "cd /Users/mainuser/Desktop/Projects; git add -A"

Pendekatan yang lebih baik lagi, adalah dengan mengikat perintah bersama &&. Ini berarti bahwa jika perintah pertama gagal, perintah kedua tidak dilakukan. Pendekatan ini berkaitan dengan masalah direktori yang hilang atau diganti namanya:

do shell script "cd /Users/mainuser/Desktop/Projects && git add -A"

Atau, untuk menghindari kekhawatiran direktori yang berfungsi, coba lewati path lengkap ke gitperintah:

do shell script "git add -A '/Users/mainuser/Desktop/Projects'"
Graham Miln
sumber