Ana içeriğe geç

kule path

Bir görevin kopyasının ya da içindeki bir dosyanın diskte nerede olduğunu yazdırır.

Kullanım​

kule path [OPTIONS] <TASK> [FILE]

Açıklama​

Kopya, Kule'nin ev klasörünün içinde, <home>/tasks/<id>/w/<klasör adı> yolunda durur. kule path bu yolu ya da kopyadaki bir dosyanın veya klasörün yolunu yazdırır; böylece oraya cd yapabilir, bir editörde açabilir ya da bir betikte kullanabilirsiniz.

FILE, kopyanın içinde, kopyanın en üstüne göre bir yoldur. Kule oraya ulaşmak için hiçbir zaman bir bağlantıyı (link) izlemez ve ..'yı reddeder; bu yüzden yazdırılan yol her zaman kopyanın içindedir.

kule shell gibi kule path de, görev kopyanın git config'ini ya da hook'larını değiştirmişse stderr'e bir uyarı yazar: o klasördeki git, onları sandbox dışında çalıştırırdı. Yolu yine de yazdırır (tek başına bir yol hiçbir şey çalıştırmaz), ama orada git çalıştırmadan ya da bir editör açmadan önce uyarıyı ciddiye alın.

Yolu yalnızca stdout tutar; bu yüzden komut ikamesi (command substitution) uyarı olsa bile çalışır.

Argümanlar​

AdZorunluAnlamı
TASKevetGörevin tam kimliği. Bkz. Bir göreve atıf yapmak.
FILEhayırKopyanın içindeki bir dosya ya da klasör, örneğin src/main.rs. Verilmezse kopyanın kendisi.

Seçenekler​

SeçenekDeğerVarsayılanAnlamı
--homeyol~/.kuleKule'nin ev klasörü (KULE_HOME ile de verilebilir). Bkz. genel seçenekler.

Örnekler​

Kopya:

$ kule path 3422f830
/Users/me/.kule/tasks/3422f830/w/app

Oraya gitmek:

cd "$(kule path 3422f830)"

Kopyayı editörünüzde açmak:

code "$(kule path 3422f830)"

Tek bir dosya:

$ kule path 3422f830 src/main.rs
/Users/me/.kule/tasks/3422f830/w/app/src/main.rs

Bir dosyayı çalışma klasöründekiyle karşılaştırmak:

diff ~/code/app/src/main.rs "$(kule path 3422f830 src/main.rs)"

Bir git config değişikliğinden sonraki uyarı:

$ kule path 3422f830
kule: careful in there: the copy's git config changed, and git there would run it outside the sandbox; review it, then commit or roll it back before opening a terminal
/Users/me/.kule/tasks/3422f830/w/app

Çıktı​

stdout'ta tek bir mutlak yol. Uyarı varsa, stderr'de kule: careful in there: ile başlar.

Hatalar ve çözümleri​

MesajNe yapmalı
kule: <file>: No such file or directory (os error 2)Dosya kopyada yok. Yollar kopyanın en üstüne göredir.
kule: <file>: a path inside the copy, without .... ya da mutlak bir yol kullanmayın.
ipucu

Bir editör bir klasörden kendiliğinden bazı şeyler çalıştırır: görevler (tasks), ayarlar, önerilen eklentiler, git hook'ları. Kopyada bir ajan çalıştıysa onu VS Code'un Restricted Mode'unda açın (yazarlara güvenip güvenmediğinizi sorduğunda no deyin). Uygulamadaki Open the copy in your editor bunu ilk seferde açıklar.

Uygulamada​

Files'taki bir dosyada Copy path (macOS'ta ⌥⌘C, Linux'ta Ctrl+Alt+C) ve görevin ⋮ menüsünde Open the copy in your editor. Bkz. Files ve Preview.

Ayrıca bakın​