leinigen membalas dengan profil

Pertanyaan ini merupakan tindak lanjut dari How apakah seseorang memuat file clojure terlebih dahulu di repl leiningen?.

~/.lein/profiles.clj saya terlihat sebagai berikut:

{  
  :user {:source-paths ["C:/Users/username/.lein/src"] }
}

~/.lein/src/user.clj saya mungkin terlihat sebagai berikut:

(ns user)

(println "user file loaded")  

Ketika saya menjalankan lein repl dalam folder yang berisi project.clj, maka file user.clj dijalankan, tetapi ketika saya menjalankan lein repl dari folder lain, profil pengguna saya tidak dimuat. Apakah ada solusi untuk ini atau apakah perilaku ini memang disengaja? Faktanya, saya tahu bahwa Leinigen memang memuat profile.clj saya (walaupun tidak ada project.clj) karena ada juga hal-hal lain di dalamnya (diambil dari germo repl saya artikel). Leinigen baru saja mengalami masalah dengan pengaturan jalur sumber tambahan saya.

Satu pertanyaan lain terkait dengan ini adalah kenyataan bahwa saya perlu menentukan path lengkap folder untuk file user.clj saya: "C:/Users/username/.lein/src". Ketika saya mengubahnya menjadi "~/.lein/src" leiningen gagal memuat file saya.


person shaft    schedule 15.04.2014    source sumber
comment
Apakah Anda melihat sesuatu di dokumentasi yang menyarankan bahwa ~ di jalur sumber harus berfungsi? Secara umum ekspansi tilde hanya berfungsi di shell Linux - Saya tidak mengharapkannya berfungsi dari dalam Java, atau pada platform Windows.   -  person Alex    schedule 15.04.2014
comment
Tangkapan bagus: Menggantinya dengan {:source-paths [~(str (System/getProperty user.home) /.lein/src)]} dan berhasil. Tapi saya masih tidak bisa menggunakannya dari folder tanpa project.clj di dalamnya.   -  person shaft    schedule 15.04.2014


Jawaban (1)


Sepertinya Anda hanya ingin beberapa kode dimuat untuk lein repl sesi Anda. Ini dilakukan dengan kunci :init dari :repl-options di profiles.clj Anda. Anda dapat load-file file lain di init jika Anda ingin mengaturnya dengan cara seperti itu.

{:user 
  {:repl-options 
    {:init (load-file "path-to-file/user.clj")} 
     ...}} 

Catatan: Jika Anda menggunakan pembatas jalur bergaya Windows /, Anda harus menghindarinya //.

person A. Webb    schedule 15.04.2014
comment
Terima kasih, persis apa yang saya cari. Cuplikan berikut berfungsi untuk saya, termasuk memuat skrip relatif terhadap direktori beranda saya: {:user {:repl-options {:init (load-file (str (System/getProperty user.home) /.lein/src/user .clj))}}} - person shaft; 15.04.2014
comment
Ah, saya sedang bekerja melalui Cygwin di Windows, saya berasumsi Anda juga menggunakan referensi ~/path. - person A. Webb; 15.04.2014