From 749e99bbf5bb4389b38388157733831fa5d62a84 Mon Sep 17 00:00:00 2001 From: Fatih Eser Date: Mon, 18 Jun 2018 19:31:01 +0300 Subject: [PATCH 1/2] =?UTF-8?q?yolaEkle=20beti=C4=9Fi=20eklendi?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- betikler/addPath/.gitignore | 1 + betikler/addPath/README.md | 18 ++++++++++ betikler/addPath/yolaEkle.sh | 68 ++++++++++++++++++++++++++++++++++++ 3 files changed, 87 insertions(+) create mode 100644 betikler/addPath/.gitignore create mode 100644 betikler/addPath/README.md create mode 100755 betikler/addPath/yolaEkle.sh diff --git a/betikler/addPath/.gitignore b/betikler/addPath/.gitignore new file mode 100644 index 0000000..35e8c4d --- /dev/null +++ b/betikler/addPath/.gitignore @@ -0,0 +1 @@ +eklenecekPaths.txt diff --git a/betikler/addPath/README.md b/betikler/addPath/README.md new file mode 100644 index 0000000..6e28df2 --- /dev/null +++ b/betikler/addPath/README.md @@ -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ı PATH değişkenine ekleyen bash komutunu $source_file dosyası içerisine yazar. +2. Tüm klasörler eklendiğinde, $source_file dosyasının etkinleştirilmesi için, bu dosyayı .bashrc içerisine ekler. +3. Tüm klasörlerin altındaki her bir *.sh dosyası için çalıştırma izni verir. + + diff --git a/betikler/addPath/yolaEkle.sh b/betikler/addPath/yolaEkle.sh new file mode 100755 index 0000000..1569640 --- /dev/null +++ b/betikler/addPath/yolaEkle.sh @@ -0,0 +1,68 @@ +#!/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 +source_file="addPath/eklenecekPaths.txt" +betik_fol_loc=$(pwd) + +echo $betik_fol_loc/addPath +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 -f $source_file &> /dev/null + + +# Load directories into source file +# Read "ls" output and add to the source_file +listed_files=$(ls) + +echo "Yol dosyası oluşuturuluyor..." +echo "# yolaEkle.sh tarafından oluşturuldu" >> $source_file +(IFS=' +' +for file in $listed_files +do + echo "PATH=\$PATH:$betik_fol_loc/$file" >> $source_file; +done +) + + +echo ".bashrc güncelleniyor" +if grep -Fxq "source $source_file" ~/.bashrc +then + # No need to add again + echo ".bashrc zaten güncel" +else + echo "# yolaEkle.sh tarafından ekleniyor" >> ~/.bashrc + echo "source $betik_fol_loc/$source_file" >> ~/.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 From f61141c1af19adf69c817bc769679cf1dc046486 Mon Sep 17 00:00:00 2001 From: Fatih Eser Date: Mon, 18 Jun 2018 19:49:59 +0300 Subject: [PATCH 2/2] =?UTF-8?q?T=C3=BCm=20klas=C3=B6rleri=20ayr=C4=B1=20ay?= =?UTF-8?q?r=C4=B1=20PATH=20de=C4=9Fi=C5=9Fkenine=20eklemek=20de=C4=9Fi?= =?UTF-8?q?=C5=9Fkeni=20=C3=A7ok=20uzat=C4=B1yordu,=20bu=20sebeple=20sembo?= =?UTF-8?q?lik=20linklerle=20t=C3=BCm=20dosyalar=C4=B1=20toplay=C4=B1p=20b?= =?UTF-8?q?unu=20.bashrc=20i=C3=A7ine=20ekliyor.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- betikler/addPath/.gitignore | 1 + betikler/addPath/README.md | 4 ++-- betikler/addPath/yolaEkle.sh | 25 +++++++++++-------------- 3 files changed, 14 insertions(+), 16 deletions(-) diff --git a/betikler/addPath/.gitignore b/betikler/addPath/.gitignore index 35e8c4d..b72d4b3 100644 --- a/betikler/addPath/.gitignore +++ b/betikler/addPath/.gitignore @@ -1 +1,2 @@ eklenecekPaths.txt +links diff --git a/betikler/addPath/README.md b/betikler/addPath/README.md index 6e28df2..3b21fa8 100644 --- a/betikler/addPath/README.md +++ b/betikler/addPath/README.md @@ -11,8 +11,8 @@ Beklenmedik sonuç doğurabileceği için başka bir klasör içerisinden çalı ## Nasıl Çalışır? -1. Betik öncelikle betikler klasörü içerisindeki tüm altklasörleri bulur ve bunları PATH değişkenine ekleyen bash komutunu $source_file dosyası içerisine yazar. -2. Tüm klasörler eklendiğinde, $source_file dosyasının etkinleştirilmesi için, bu dosyayı .bashrc içerisine ekler. +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. diff --git a/betikler/addPath/yolaEkle.sh b/betikler/addPath/yolaEkle.sh index 1569640..081e289 100755 --- a/betikler/addPath/yolaEkle.sh +++ b/betikler/addPath/yolaEkle.sh @@ -12,42 +12,39 @@ cd .. # Global Vars -source_file="addPath/eklenecekPaths.txt" betik_fol_loc=$(pwd) -echo $betik_fol_loc/addPath 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 -f $source_file &> /dev/null +rm -rf $betik_fol_loc/addPath/links +# Create new files +mkdir addPath/links &> /dev/null -# Load directories into source file -# Read "ls" output and add to the source_file +# Read "ls" output and create new links into directory links listed_files=$(ls) -echo "Yol dosyası oluşuturuluyor..." -echo "# yolaEkle.sh tarafından oluşturuldu" >> $source_file +echo "Yeni linkler oluşturuluyor..." (IFS=' ' -for file in $listed_files +for folder in $listed_files do - echo "PATH=\$PATH:$betik_fol_loc/$file" >> $source_file; + ln -s $betik_fol_loc/$folder/*.sh $betik_fol_loc/addPath/links/ done ) - -echo ".bashrc güncelleniyor" -if grep -Fxq "source $source_file" ~/.bashrc +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" + echo "~/.bashrc zaten güncel!" else echo "# yolaEkle.sh tarafından ekleniyor" >> ~/.bashrc - echo "source $betik_fol_loc/$source_file" >> ~/.bashrc + echo "PATH=\$PATH:$betik_fol_loc/addPath/links" >> ~/.bashrc fi