Saya memiliki dua direktori:src
dan projects
. Saya ingin mencegah diri saya menjalankan git ...
kecuali saya secara khusus berada di dalam src
atau projects
. Apakah ini mungkin?
Jawaban yang Diterima:
Sulit untuk mencegah biner dijalankan tetapi untuk situasi umum ada metode perlindungan yang mudah:
- Anda menentukan fungsi shell yang menimpa nama. Ini jelas tidak akan berfungsi di shell lain (juga pengguna lain).
- Anda mengeluarkan biner dari $PATH dan menggantinya dengan skrip pembungkus. Ini lebih aman tetapi jelas akan menyebabkan masalah dengan pembaruan perangkat lunak (skrip akan ditimpa).
Fungsi shell dapat terlihat seperti ini:
git () {
local cwd="$(pwd -P)"
if ! [ "/path/to/src" = "$cwd" -o "/path/to/projects" = "$cwd" ]; then
echo "The current working directory is: '${cwd}'"
echo "git must not be run from here; from src and projects only."
echo "Aborting."
else
command git "[email protected]"
fi
}