$30 off During Our Annual Pro Sale. View Details »

コマンド履歴にタグを つけるCLIツールを作った

ryosukes
October 24, 2017

コマンド履歴にタグを つけるCLIツールを作った

ryosukes

October 24, 2017
Tweet

More Decks by ryosukes

Other Decks in Technology

Transcript

  1. ίϚϯυཤྺʹλάΛ ͚ͭΔCLIπʔϧΛ࡞ͬͨ 2017.10.24 ryosukes (kurashicom.inc)

  2. ࣗݾ঺հ ࠤʑ໦ ྄༞(ryosukes/ciger47) 85೥ੜ·Εͷٶ৓ग़਎ 16೥͘Β͍ϥοϓ΍ͬͯ·͢ ࠷ۙస৬͠·ͨ͠ ———>

  3. πʔϧΛ࡞ͬͨഎܠ

  4. CLIͰૢ࡞͢Δ͜ͱଟ͍͚ͲΑ͘๨ΕΔ

  5. εχϖοτͱ͔࡞Δͷ໘౗

  6. ཤྺḷΔͷʹΊͬͪΌpeco࢖ͬͯΔ

  7. ཤྺʹλά͕͚ͭΒΕΕ͹ྑ͍ͷͰ͸

  8. ࡞ͬͨ

  9. https://github.com/ryosukes/histag

  10. ͲΜͳײ͡ʁ

  11. ಈ͖ 1. $ histag add ͱଧͭͱpecoىಈ 2. ཤྺ͔Βద౰ʹબ୒ 3. ඪ४ೖྗʹͳΔͷͰίϝϯτΛଧͭ

    4. $ go #golang࠷ߴ Έ͍ͨʹίϝϯτ෇ͰώετϦʔ ϑΝΠϧʹ௥ه͞ΕΔ(࣮ߦ͸͞Εͳ͍)
  12. ಈ͖ 1. $ histag add ͱଧͭͱpecoىಈ 2. ཤྺ͔Βద౰ʹબ୒ 3. ඪ४ೖྗʹͳΔͷͰίϝϯτΛଧͭ

    4. $ go #golang࠷ߴ Έ͍ͨʹίϝϯτ෇ͰώετϦʔ ϑΝΠϧʹ௥ه͞ΕΔ(࣮ߦ͸͞Εͳ͍)
  13. ಈ͖ 1. $ histag add ͱଧͭͱpecoىಈ 2. ཤྺ͔Βద౰ʹબ୒ 3. ඪ४ೖྗʹͳΔͷͰίϝϯτΛଧͭ

    4. $ go #golang࠷ߴ Έ͍ͨʹίϝϯτ෇ͰώετϦʔ ϑΝΠϧʹ௥ه͞ΕΔ(࣮ߦ͸͞Εͳ͍)
  14. ಈ͖ 1. $ histag add ͱଧͭͱpecoىಈ 2. ཤྺ͔Βద౰ʹબ୒ 3. ඪ४ೖྗʹͳΔͷͰίϝϯτΛଧͭ

    4. $ go #golang࠷ߴ Έ͍ͨʹίϝϯτ෇ͰώετϦʔ ϑΝΠϧʹ௥ه͞ΕΔ(࣮ߦ͸͞Εͳ͍)
  15. Ͳ͏΍͔ͬͨ

  16. ϙΠϯτ CLI࡞੒ࢧԉπʔϧͷcobra ώετϦϑΝΠϧͷࢦఆ pecoݺͼग़͠ CLI্Ͱͷίϝϯτͷ෇͚ํ

  17. cobra ؆୯ʹCLIπʔϧ࡞ΕΔcobraΛ࢖༻ ༗໊ͳͷͰ͙͙Ε͹Ұൃ

  18. ώετϦϑΝΠϧͷࢦఆ history := os.Getenv(“HISTFILE”) Ͱ؀ڥม਺ಡΈࠐΈ σϑΥϧτͰ͸஋͕ۭͩͬͨͷͰγΣϧͰύεࢦ ఆɻվળ͍ͨ͠

  19. pet ͱ͍͏εχϖοτ࡞੒πʔϧΛࢀߟʹͨ͠ ͜Ε΋golang੡ pecoݺͼग़͠

  20. ίϚϯυͱཤྺΛ exec.Command() ʹ౉͠ ݁ՌΛऔಘͯ͠ॻ͖ग़ͯ͠Δ͚ͩɻ pecoೖͬͯͳ͍ͱࢮ͵

  21. CLI্Ͱͷίϝϯτͷ෇͚ํ γΣϧεΫϦϓτ͸ # ࢖͑Δ͚ͲCLI্Ͱ͸جຊNG zshͰ setopt interactivecomment ͕ඞཁ : ͱ͍͏ʮԿ΋͠ͳ͍ίϚϯυʯΛݕ౼͕ͨ͠ؾ࣋

    ͪѱ͍ͷͰ΍Ίͨ
 ΍Ζ͏ͱ͢Δͱ $ ls ;: ‘golang࠷ߴ’ ͱͳΔ
  22. ࠓޙ ೔ຊޠ͕Խ͚Δ͜ͱ͕͋Δόά(க໋త)Λ௚͢ ൒֯εϖʔε͕ೖΔͱͦΕҎ߱ʹॻ͍ͨͷ͕ίϚ ϯυऴྃޙʹ࣮ߦ͞ΕΔόά(க໋త)Λ௚͢ GithubͷϦϞʔτϦϙδτϦʹ͋ΔStaleϒϥϯν Λgraphql࢖ͬͯҰׅ࡟আ͢ΔπʔϧΛ࡞Δ༧ఆ

  23. ͋Γ͕ͱ͏͍͟͝·ͨ͠