הכוח של שורת פקודה

החל מגרסאות חדשות של GTK 2, הוסרו כמה פונקציות שהיו בשימוש עד אז. העניין הוא ש FPC 2.2.2 ומטה מגיע עם הסמלים האלו ביחידות שמהודרות מראש, ובשביל לתקן את זה צריך לבנות חבילה חדשה של FPC עם תיקון ידני של 2 שורות קוד או פשוט לעבוד עם RC1 של 2.2.4. אז החלטתי שהגיע הזמן להוריד את 2.2.4RC1. הבעיה היא שאני לא רוצה להשקיע אנרגיה וליצור חבילה מזה היות ועוד יהיו שינויים ותוספות עם RC2 וכו' ואני גם לא רוצה לדרוס את הגרסה היציבה הנוכחית אצלי במערכת, כך שחבל על האנרגיה. אז פשוט אני משתמש בה במקום שעשיתי svn co.

עכשיו צריך להגיד בקובץ הגדרות של FPC איפה הוא צריך לחפש את היחידות השונות. הבעיה היא שפרט ל

rtl/units/<arch-os>/

יש גם את הספריות שנמצאות תחת packages והן רבות (קרוב ל100 ספריות). עכשיו אפשר להגדיר ידנית כל ספרייה והמבנה של

units/<arch-os>

אבל אנחנו אנשי לינוקס ! אנחנו עצלנים ובצדק, יש לנו כלים טובים שעושים עבורינו את העבודה.  כאן יש לנו ספרייה שיש לה קרוב ל100 תתי ספריות שצריך ללכת שם  ולהוסיף ידנית נתיב ארוך בקובץ הגדרות עבור כל ספרייה. אני אבל רוצה להמשיך להיות עצלן, ולמה להגדיר ידנית כאשר אפשר לא 🙂

יצרתי את הפקודה הבאה בשביל שתעשה עבורי את העבודה (את רובה לפחות):

find /full/path/to/fpc/fpc.2.2.4/packages/ -type d -maxdepth 1 -exec echo "-Fu{}/units/x86_64-linux/" \; > /tmp/dirs

למי שאין כוח לקרוא את התיעוד של find ולא יודע מה עשיתי כאן, הנה הסבר קצר:

אמרתי ל find לחפש בנתיב מלא קבצים שהם בעצם ספרייה (type d-) ואמרתי לו לא לגשת לתתי הספריות, אלא להישאר ברמה הראשונה (maxdepth 1-). אחר כך אמרתי לו שכל פעם שהוא מוצא משהו להפעיל פקודה שאני ביקשתי. הסימנים של הסוגריים המסולסלים מוחלפים במה שנמצא, הנקודה פסיק אומרת ל find שזה כל מה שהוא צריך להריץ ואז כל מה שהודפס על המסך תפסתי לקובץ ששמתי בספריית /tmp/ וזהו.

התוצאה היא שקיבלתי רשימה של קרוב ל100 ספריות. העפתי כמובן את הספרייה הנוכחית ואת הספרייה של svn מהרשימה, וזהו הוספתי את הרשימה תחת ifdef על הגרסה הנוכחית (אני לא רוצה לדרוס את הגרסה היציבה הנוכחית) בקובץ הגדרות של fpc. כל זה לקח לי קרוב ל10 דקות (לקח לי קצת זמן להיזכר איך עובדים עם exec נכון, ולמצוא בדיוק את הפרמטרים שאני צריך עבור find וגם לעשות קצת ניסויים).

אחד הדברים הכי לא מובנים לי הוא, שאנשי Windows אוהבים לרדת על שורת הפקודה, אבל נראה אותם הולכים להגדיר 100 ספריות בקובץ הגדרות בצורה ידנית כי אין להם אפשרות לעשות את זה (בלי ליצור תוכנה עכשיו שתעשה את זה בשבילהם). יודעים מה, בשביל המשימות מהסוג הזה, שהם ישארו עם Windows, לי ממש טוב עם לינוקס המגיעה עם שורת הפקודה ואין ולו סיבה אחת שאראה את עצמי מחליף את דרך העבודה בזמן הקרוב.

להשאיר תגובה

הזינו את פרטיכם בטופס, או לחצו על אחד מהאייקונים כדי להשתמש בחשבון קיים:

הלוגו של WordPress.com

אתה מגיב באמצעות חשבון WordPress.com שלך. לצאת מהמערכת / לשנות )

תמונת Twitter

אתה מגיב באמצעות חשבון Twitter שלך. לצאת מהמערכת / לשנות )

תמונת Facebook

אתה מגיב באמצעות חשבון Facebook שלך. לצאת מהמערכת / לשנות )

תמונת גוגל פלוס

אתה מגיב באמצעות חשבון Google+ שלך. לצאת מהמערכת / לשנות )

מתחבר ל-%s