mix nerves.new hoge의 약간 개선 풀릭이 병합 된 이야기 (Elixir)

6846 단어 NervesElixir

소개



  • Nerves이란, Elixir의 IoT에서 나우에서 영 cool 놀라운 녀석입니다.
  • mix nerves.new hoge 하고, hoge/mix.exs already exists, overwrite? [Yn]n 로 대답하면 좀 있을까? 일이 일어납니다

  • Nerves 의 준비 곳에서 한다 $ mix archive.install hex nerves_bootstrapnerves_bootstrap 에 (정말로) 조금 있었어? 가 있었다.

  • Nerves 의 환경 구축은, @ 타카세 히스 선생님의 Elixir에서 IoT#4.1: Nerves 개발 환경 준비(2020년 9월 버전) 가 상세합니다


  • (정말) 조금 있어? 뭔가


    $ mix nerves.new hoge
    * creating hoge/config/config.exs
    * creating hoge/config/target.exs
    * creating hoge/lib/hoge.ex
    * creating hoge/lib/hoge/application.ex
    * creating hoge/test/test_helper.exs
    * creating hoge/test/hoge_test.exs
    * creating hoge/rel/vm.args.eex
    * creating hoge/rootfs_overlay/etc/iex.exs
    * creating hoge/.gitignore
    * creating hoge/.formatter.exs
    * creating hoge/mix.exs
    * creating hoge/README.md
    
    Fetch and install dependencies? [Yn] n
    Your Nerves project was created successfully.
    
    You should now pick a target. See https://hexdocs.pm/nerves/targets.html#content
    for supported targets. If your target is on the list, set `MIX_TARGET`
    to its tag name:
    
    For example, for the Raspberry Pi 3 you can either
      $ export MIX_TARGET=rpi3
    Or prefix `mix` commands like the following:
      $ MIX_TARGET=rpi3 mix firmware
    
    If you will be using a custom system, update the `mix.exs`
    dependencies to point to desired system's package.
    
    Now download the dependencies and build a firmware archive:
      $ cd hoge
      $ mix deps.get
      $ mix deps.get
      $ mix firmware
    
    If your target boots up using an SDCard (like the Raspberry Pi 3),
    then insert an SDCard into a reader on your computer and run:
      $ mix firmware.burn
    
    Plug the SDCard into the target and power it up. See target documentation
    above for more information and other targets.
    
  • 이해하십니까?
  • Now download the dependencies and build a firmware archive: 아래에 $ mix deps.get가 두 번 왔습니다.

  • 눈치 채기 때문에 개선하는 것이 좋다고해서 풀릭을 냈습니다.



  • 풀릭 을 내고 나서 무려 30분 정도로 병합해 주었습니다.


  • 내 노란 고양이 아이콘이 왼쪽 상단과 오른쪽 하단에 있습니다!
  • 이번은 Elixir 로 쓰여진 코드를 조금 바꾼 커밋이 병합해 주었습니다
  • 이전에, Nerves 관련으로 풀릭을 병합해 주었던 적이 있습니다만 그 때는 문서만이었습니다
  • 소스 코드의 약간의 수정이지만, Elixir
  • 이전 문서 수정했다고 하는 풀릭 → Update /CONTRIBUTING.md to /.github/CONTRIBUTING.md on README.md #501

  • 전체를 보지 않으면 아무 것도 모르겠지만, 차이는 다음과 같습니다.
    @@ -215,15 +215,11 @@ defmodule Mix.Tasks.Nerves.New do
         install? = Mix.shell().yes?("\nFetch and install dependencies?")
    
         File.cd!(path, fn ->
    -      extra =
    -        if install? && Code.ensure_loaded?(Hex) do
    -          cmd("mix deps.get")
    -          []
    -        else
    -          ["  $ mix deps.get"]
    -        end
    +      if install? && Code.ensure_loaded?(Hex) do
    +        cmd("mix deps.get")
    +      end
    
    -      print_mix_info(path, extra)
    +      print_mix_info(path)
         end)
       end
    
    @@ -255,8 +251,8 @@ defmodule Mix.Tasks.Nerves.New do
         end
       end
    
    -  defp print_mix_info(path, extra) do
    -    command = ["$ cd #{path}"] ++ extra
    +  defp print_mix_info(path) do
    +    command = ["$ cd #{path}"]
    
         Mix.shell().info("""
         Your Nerves project was created successfully.
    
  • 여러 가지 수정 방법이 있다고 생각했습니다
  • print_mix_info 의 제2 인수의 extra 는 그대로 남기는 수정의 방법도 있다고는 생각했습니다만, 하늘의 리스트를 건네주는 것 같은 처리가 늘어나게 되고, 프라이빗 함수로 사용되는 방법은 제한적이었기 때문에 과감하게 두 번째 인수의 extra를 지우기로 결정했습니다.

    nerves_bootstrap 의 풀릭을 내기 위해 한 일


  • README를 읽고 손으로 빌드 한 올레올레 nerves_bootstrap을 설치 한 상태에서 $ mix nerves.new hoge가 올바르게 작동하는지 확인했습니다.
  • 그리고는 조금 두근두근하면서 풀릭을 보내자마자 병합해 주었습니다
    $ cd nerves_bootstrap
    $ mix test
    $ mix do deps.get, archive.build, archive.install
    $ cd ..
    $ mix nerves.new hoge
    

    Wrapping Up


  • 뭔가 이상하다고 생각하면 수정을 검토해 보자!
  • 수정할 수 있으면 풀릭 해 보자!
  • Enjoy Nerves !!!
  • Enjoy Elixir !!!
  • 좋은 웹페이지 즐겨찾기