Static code reusing tool (WARNING: This software is a pre-release that is still in development)
Statik olarak yeniden kod kullanımı için bir araç (UYARI: Bu yazılım, geliştirmesi halen devam eden bir ön sürümdür)
Proje ayrıntıları için Geliştirme dokümanlarına göz atabilirsiniz.
Yayınlanan Gem paketini kurmanız yeterlidir.
gem install ellipses
-
Eklenecek kodları
SRCPATH
ortam değişkeniyle anons edilen dizin ağacında topla. Bu dizinlere "sunucu" ("server") dizinleri diyoruz. Sunucu dizinlerin«provider»/«owner»/«repo»
düzeninde olması tavsiye edilir. ÖrneğinSRCPATH=/usr/local/src
ise tüketilecek kabuk kaynaklarını/usr/local/src/github.com/roktas/sh
dizininde toplayabilirsin.export SRCPATH=/usr/local/src
-
Sunucu dizin kökünde servis edilecek sembolleri bildiren bir
src.toml
dosyası oluştur. Örnekteki dizin için/usr/local/src/github.com/roktas/sh/src.toml
dosyası aşağıdaki örnek içerikte olsun.depends = [ "z" ] [[symbols]] symbol = "a" depends = [ "b", "c" ] [[symbols]] symbol = "b" [[symbols]] symbol = "c" [[symbols]] symbol = "z"
Bu yapılandırmada
z
sembolü bağımlılık olarak tüm sembollere eklenirken, örneğina
sembolü buna ilave olarakb
vec
sembollerini çekecektir. Sonuç olarak sunucudana
sembolü istendiğinde bağımlılık olarak sırasıylaz
,b
,c
sembolleri ve sonrasında sembolün kendisi içina
sembolü çekilecektir.Her sembol sunucu dizinde aynı isimde bir dosyaya karşılık gelir. "Yaprak" niteliğinde sembollerde sembol ile aynı isimde dosyanın varlığı zorunlu, diğerlerinde ise zorunlu değildir. Dolayısıyla yukarıdaki örnekte
a
sembolü için sırasıylaz
,b
,c
ve (sembolün kendisi için)a
dosyalarının içerikleri eklenecektir. -
Sunucudan sembol isteğinde bulun. Sembolleri tüketecek dosyalara "istemci" ("client") dosyalar diyoruz. Aşağıda örneklenen
test.sh
isimli istemci dosyada başlangıçta...
söz dizimiylegithub.com/roktas/sh
isimli sunucudana
sembolü istenmektedir. Bu satıra "direktif" satırı diyoruz.if true; then ... github.com/roktas/sh a fi
-
Eklemenin yapılması için öncelikle istemci tarafı ilkle.
src init
Bu işlem sonucunda bulunulan dizinde
src.json
adında boş bir dosya oluşacaktır. -
İstemci dosyayı derle ("compile")
src compile test.sh
Bu işlemin sonucunda, örneğin
a
,b
,c
, vez
dosyaları basitçe aynı harfte tek satırlık içeriklerden oluşuyorsatest.sh
dosyası aşağıdaki içerikte olacaktır.if true; then z b c a fi
Derleme sırasında
... github.com/roktas/sh a
direktifinin başındaki sekme karakterinin eklenen tüm satırların başına ön ek olarak geldiğini not edin. Her derleme işlemindesrc.json
dosyası güncellenerek yapılan ekleme kaydedilmektedir. -
Herhangi bir anda sunucu tarafta bir değişiklik olmuşsa bu değişikliği
update
komutuyla alsrc update
Bu komut tüm istemci dosyaları güncellediğinden dosya argümanı gerekmemektedir. Örneğin
b
dosyasının içeriğiB
olarak değiştirilmişsetest.sh
dosyasının içeriği aşağıdaki gibi olacaktır.if true; then z B c a fi
-
Derlenen bir dosyayı eski haline getirmek için
decompile
komutunu uygulasrc decompile test.sh
Komut sonucunda
test.sh
dosyasının içeriği (dosyada başka bir düzenleme yapılmadığı varsayımıyla) aşağıdaki gibi olacaktır.if true; then ... github.com/roktas/sh a fi
Önceden uygulanan eklemelerin içeriğine müdahale edilmediği sürece
test.sh
dosyasında yapılan tüm değişiklikler korunmaktadır.