รวมถึงไดเร็กทอรีเพิ่มเติมด้วย Keter

ฉันมีไซต์ Yesod และได้สร้างตัวจัดการสำหรับจัดการการดาวน์โหลดและการบังคับใช้ข้อจำกัด ไดเร็กทอรีโปรเจ็กต์ Yesod ของฉันมีไดเร็กทอรีย่อยชื่อ downloads และมีไฟล์ที่ฉันต้องการให้ผู้ใช้ดาวน์โหลดได้หากพวกเขาเข้าสู่ระบบแล้ว ตัวจัดการใช้งานได้ดีในกล่องการพัฒนาและการจัดเตรียมของฉัน แต่จะพังเมื่อฉันถ่ายโอนไปยังการใช้งานจริง ฉันติดตามปัญหาจนถึง yesod keter ไม่เก็บถาวรไฟล์เมื่อสร้างบันเดิล

ฉันจะโน้มน้าวให้ keter รวมไดเรกทอรีได้อย่างไร


person nomen    schedule 20.10.2015    source แหล่งที่มา
comment
ฉันลืมรายละเอียดที่แน่นอน แต่ฉันคิดว่าฟังก์ชันของ yesod keter นั้นครอบคลุมอยู่ในแพ็คเกจอื่น บางทีนั่นอาจมีตัวเลือกการกำหนดค่าเพิ่มเติม?   -  person MaxGabriel    schedule 22.10.2015


คำตอบ (1)


คำสั่ง yesod keter ทั้งหมดทำคือสร้างไฟล์เก็บถาวรที่บีบอัด .tar.gz โดยมีนามสกุล .keter ซึ่งมีไดเร็กทอรีย่อยต่อไปนี้:

  • config: สำเนาทุกประการของไดเร็กทอรีที่มีชื่อเหมือนกันในแผนผังต้นทางของคุณ
  • dist: มีไดเรกทอรีย่อย bin ที่มีไบนารีของแอปของคุณ
  • static: สำเนาที่ถูกต้องของไดเร็กทอรีที่มีชื่อเหมือนกันในแผนผังต้นทางของคุณ

โปรดทราบว่าเส้นทางไปยังไบนารีของแอปของคุณตั้งค่าไว้ใน config/keter.yml ผ่านการตั้งค่า exec ในขณะที่เส้นทางไปยังไฟล์คงที่ของคุณตั้งค่าผ่านการตั้งค่า root ชุดไฟล์ที่แน่นอนที่รวมอยู่ในคำสั่ง yesod keter ระบุไว้ใน findFiles หากคุณต้องการดูซอร์สโค้ด

หากคุณต้องการปรับแต่งเนื้อหาของไฟล์ .keter ของคุณ การเขียนเชลล์สคริปต์เพื่อสร้างไฟล์เก็บถาวรนั้นตรงไปตรงมาที่สุด ด้วยสคริปต์นี้ คุณสามารถเพิ่มไดเร็กทอรีพิเศษลงในไฟล์เก็บถาวรได้ตามต้องการ

สคริปต์ทุบตีขั้นต่ำเปลือยที่คุณต้องจำลองพฤติกรรมของ yesod keter มีดังนี้:

#!/bin/bash
tar cvf myapp.keter config/ dist/bin/ static/

คุณสามารถปรับแต่งสิ่งนี้ได้ตามที่คุณต้องการเพื่อสร้างเนื้อหาที่ถูกต้อง การเพิ่ม download/ ต่อท้ายบรรทัดคำสั่งนี้ควรทำเคล็ดลับ

person Richard Cook    schedule 21.10.2015