اکسیر دم کنید

برنامه های اکسیر را با homebrew در OSX توزیع کنید

اخیراً به دنبال اطلاعاتی در مورد نحوه انتشار برنامه خط فرمان Elixir با homebrew بود. من آنچه را که به دنبالش می گشتم پیدا نکردم و فکر کردم آنچه را یاد گرفته ام با این امید که به شخص دیگری کمک کند ، تقسیم می کنم.

مرحله 1: ابزار خود را بنویسید

Elixir بیشتر برای نوشتن نرم افزار مبتنی بر سرور استفاده می شود ، اما دلیلی برای این کار وجود ندارد. من در حال کار روی DSL برای تولید HTML به نام Taggart بودم. من اکثر اوقات کار می کردم ، بنابراین مرحله بعدی من تبدیل برخی HTML به Taggart بود. من یک ابزار در prestochange.io دارم که امکان تبدیل سریع آنلاین را فراهم می کند ، اما من می خواستم تعداد زیادی فایل را به صورت عمده تبدیل کنم. من یک شرح برای این کار ایجاد کرده ام.

مرحله 2: بگذارید به عنوان فیلمنامه کار کند

تنظیم کتابخانه خود به عنوان یک اسکریپت کار دشواری نیست. این فقط یک ماژول سریع CLI و تغییراتی در پرونده mix.exs شما است. در ElixirSchool.com شما دستورالعمل های خوبی برای ایجاد یک اسکریپت پیدا خواهید کرد.

  1. یک ماژول CLI ایجاد کنید:
Taggart.CLI defmodule do def main (args) آرگومان | Boolean] ، نام مستعار: [h :: help]) # تنظیمات پیش فرض flags = Keyword.put_new (flags،: indent، "2") را با کلمه کلیدی تعریف کنید. has_key؟ (پرچم ها ،: راهنما) ->: help true -> {: شروع ، پرچم ها} پایان پایان
defp run (: help) make IO.puts taggart "" "[--indent ] [- help] "" "پایان
اجرای defp ({: شروع ، پرچم ها) اجرای indent = keyword.get (پرچم ها ،: تورفتگی)
IO.read (: all) |> HTMLToTaggart.html_to_taggart (انتقال در داخل) |> IO.puts پایان پایان

2. برای استفاده از آن ، mix.exs را به روز کنید:

...
Def project to do [app :: taggart، ... deps: deps ()، escript: escript ()] end
...
defp escript do [main_module: Taggart.CLI، embed_elixir: true] end

3. آن را امتحان کنید:

mix escript.build ./taggart --indent 2

مرحله 3: دستور العمل homebrew ایجاد کنید

بعد از ایجاد یک اسکریپت که به صورت محلی کار می کند ، مرحله بعدی ایجاد یک دستور العمل خانگی حباب محلی و اطمینان از عملکرد آن است.

  1. اطمینان حاصل کنید که یک تاربال آزاد برای ساخت وجود دارد. من این کار را با قرار دادن روزی در گیتوب و ترک آنها برای انجام کار انجام دادم:
Git Checkout Master Git-Tag-f -a v0.1.1 -m "نسخه 0.1.1" مبدا فشار git --tags

2. از brew create استفاده کنید تا یک الگوی مبتدی ایجاد کنید که حاوی URL تاربال انتشار نسخه اخیر شماست.

ایجاد brewing https://github.com/ijcd/taggart/archive/v0.1.1.tar.gz

این یک الگوی ایجاد کرده و ویرایشگر شما را باز می کند. پرونده من اینجا بود:

/usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/taggart.rb

3. دستور العمل خود را ایجاد کرده و در صورت لزوم به کتاب آشپزی فرمول مراجعه کنید. اگر از ویرایشگر خارج شوید ، می توانید با استفاده از عملکرد "دم" بازگردید.

ایجاد برچسب ویرایش

الگوی فعلی من که برای اکسیر کار می کند اینگونه است:

Taggart عالی
بستگی به "erlang" بستگی به "rebar" =>: ساخت بستگی به "elixir" =>: ساخت
سیستم دف نصب "mix local.hex --force" system "mix local.rebar --force" system "mix deps.get" system "mix escript.build"
بن "نصب" پایان "taggart"
تست پایان سیستم "taggart --help" پایان

عبارت های وابسته باعث نصب وابستگی می شوند. اسکریپت ها اکسیر را به عنوان یک وابستگی بسته بندی می کنند ، بنابراین شما فقط باید آن را در زمان اجرا دریافت کنید. اگر می خواهید دارایی های بیشتری نصب کنید ، از bin.install استفاده کنید. برای اطلاعات بیشتر به کتاب آشپزی فرمول مراجعه کنید.

4. بسته خود را نصب و حذف کنید تا مطمئن شوید که همه چیز به رضایت شما رسیده است.

نصب مرورگرها --verbose - Taggart مرورگر Taggart را بردارید

تبریک می گویم ، شما تقریبا آنجا هستید!

مرحله 4: برای توزیع یک شیر آب تنظیم کنید

اکنون که چیزهایی در زمین دارید ، زمان آن رسیده است که آنها را گسترش دهید تا گسترش گسترده تری داشته باشید. Homebrew مفهوم شیرهایی را برای این کار دارد. شیرها مخازن نگهداری شده توسط کاربر هستند که می توانند برای میزبانی فرمولهای غیر هسته ای استفاده شوند. برای اطلاعات بیشتر ، به ایجاد و مدیریت شیر ​​ضربه بزنید.

  1. برای شیر خود یک رپو ایجاد کنید. من در GitHub مین را میزبانی می کنم زیرا homebrew پشتیبانی ویژه ای برای اداره آنها دارد. می توانید در خانه GitHub برای "homebrew-" جستجو کنید تا از آنچه دیگران را repo می نامند ، ایده بگیرید. کنوانسیون را انتخاب کردم / شیر Homebrew تصمیم گرفت. repo شیر من در اینجا است:
https://github.com/ijcd/homebrew-tap

2. فرمول خود را از بالا در repo جدید خود کپی کنید. اکنون باید دستور محلی را نیز حذف کنید.

> CD Homebrew-Tap> Tree. فرمول │ └── taggart.rb └── README.md
> git commit -m 'اولین دستور من'> مبدا فشار Git

3. آن را امتحان کنید:

Brühhahn ijcd / شیر مرورگرهای ساخت سوگتاگارت Taggart را نصب کنید

نتیجه گیری

امیدوارم این باعث شود کسی مدتی را نجات دهد. درک خودم خیلی دشوار نبود ، اما چند لحظه را گذراندم تا بفهمم چه دستور العمل مورد نیاز وابسته است. من این را از یادداشت ها و خاطراتم نوشتم. لطفاً اگر این کار را امتحان کرده اید و با مشکل روبرو هستید ، به من اطلاع دهید. ایمیل من در نمایه GitHub من است.