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ı
SRCPATHortam 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/srcise tüketilecek kabuk kaynaklarını/usr/local/src/github.com/roktas/shdizininde toplayabilirsin.export SRCPATH=/usr/local/src -
Sunucu dizin kökünde servis edilecek sembolleri bildiren bir
src.tomldosyası oluştur. Örnekteki dizin için/usr/local/src/github.com/roktas/sh/src.tomldosyası 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
zsembolü bağımlılık olarak tüm sembollere eklenirken, örneğinasembolü buna ilave olarakbvecsembollerini çekecektir. Sonuç olarak sunucudanasembolü istendiğinde bağımlılık olarak sırasıylaz,b,csembolleri ve sonrasında sembolün kendisi içinasembolü ç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
asembolü için sırasıylaz,b,cve (sembolün kendisi için)adosyalarının içerikleri eklenecektir. -
Sunucudan sembol isteğinde bulun. Sembolleri tüketecek dosyalara "istemci" ("client") dosyalar diyoruz. Aşağıda örneklenen
test.shisimli istemci dosyada başlangıçta...söz dizimiylegithub.com/roktas/shisimli sunucudanasembolü 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.jsonadında boş bir dosya oluşacaktır. -
İstemci dosyayı derle ("compile")
src compile test.sh
Bu işlemin sonucunda, örneğin
a,b,c, vezdosyaları basitçe aynı harfte tek satırlık içeriklerden oluşuyorsatest.shdosyası aşağıdaki içerikte olacaktır.if true; then z b c a fi
Derleme sırasında
... github.com/roktas/sh adirektifinin başındaki sekme karakterinin eklenen tüm satırların başına ön ek olarak geldiğini not edin. Her derleme işlemindesrc.jsondosyası güncellenerek yapılan ekleme kaydedilmektedir. -
Herhangi bir anda sunucu tarafta bir değişiklik olmuşsa bu değişikliği
updatekomutuyla alsrc update
Bu komut tüm istemci dosyaları güncellediğinden dosya argümanı gerekmemektedir. Örneğin
bdosyasının içeriğiBolarak değiştirilmişsetest.shdosyası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
decompilekomutunu uygulasrc decompile test.sh
Komut sonucunda
test.shdosyası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.shdosyasında yapılan tüm değişiklikler korunmaktadır.