Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions betikler/addPath/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
eklenecekPaths.txt
links
18 changes: 18 additions & 0 deletions betikler/addPath/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# grafikbilgi.sh

Bu betik, yazılmış olan Kabuk-ShellScript deposu içerisindeki betiklerin direk olarak kabuk yardımıyla çalıştırılabilmeleri için onları PATH değişkenine ekler.

## Açıklamalar

Betiğin bulunduğu addPath klasörüne girip ```bash yolaEkle.sh``` komutunu çalıştırmanız yeterli.
Beklenmedik sonuç doğurabileceği için başka bir klasör içerisinden çalıştırılmamalıdır.

**Not :** Betik kendini .basrc içerisine ekler, ancak herhangi bir güncellemeden sonra otomatik çalışma özelliğine sahip değildir. Depo güncellemesi veya el ile değişimden sonra tekrar çağırılması gerekebilir!

## Nasıl Çalışır?

1. Betik öncelikle betikler klasörü içerisindeki tüm altklasörleri bulur ve bunları betikler/addPath/links klasörü içerisine sembolik linklerle bağlar.
2. Tüm klasörler linklendiğinde, linklerin bulunduğu klasörü ~/.bashrc içerisine ekler.
3. Tüm klasörlerin altındaki her bir *.sh dosyası için çalıştırma izni verir.


65 changes: 65 additions & 0 deletions betikler/addPath/yolaEkle.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
#!/bin/bash

#----------------------------------------------------
# Özet: Yazılmış kabuk betiklerini kabuktan doğrudan
# çağırılabilsinler diye PATH değişkeni içerisine kalıcı
# olarak ekler.
# Yazar: Fatih Eser - @afeser
# Kaynak: https://forum.ubuntu-tr.net/...
#----------------------------------------------------

# Move to "betikler" folder
cd ..

# Global Vars
betik_fol_loc=$(pwd)

if [ ! -f $betik_fol_loc/addPath/yolaEkle.sh ]; then
echo "Bu betik, kendi klasörü içerisinden çağırıldığı varsayılarak yazıldı. Lütfen kendi klasörü içerisinden başlatın ve tekrar deneyin..."
exit 1
fi

# Remove old files
rm -rf $betik_fol_loc/addPath/links

# Create new files
mkdir addPath/links &> /dev/null

# Read "ls" output and create new links into directory links
listed_files=$(ls)

echo "Yeni linkler oluşturuluyor..."
(IFS='
'
for folder in $listed_files
do
ln -s $betik_fol_loc/$folder/*.sh $betik_fol_loc/addPath/links/
done
)

echo "~/.bashrc güncelleniyor..."
if grep -Fxq "PATH=\$PATH:$betik_fol_loc/addPath/links" ~/.bashrc
then
# No need to add again
echo "~/.bashrc zaten güncel!"
else
echo "# yolaEkle.sh tarafından ekleniyor" >> ~/.bashrc
echo "PATH=\$PATH:$betik_fol_loc/addPath/links" >> ~/.bashrc
fi


# Set permissions
echo "İzinler ayarlanıyor..."
(IFS='
'
for folder in $listed_files
do
cd $folder
chmod +x *.sh
cd ..
done
)

echo "Bitti!"
echo "Değişiklikleri kullanabilmek için yeni bir kabuk açmanız gerekebilir"
exit 0