BusyBox is a C program that provides implementations of many Unix utilities in one small package. It is frequently used in embedded systems.
This Elixir module makes it available to Elixir programs on platforms that BusyBox supports. This lets you enable more BusyBox utilities than provided by the official Nerves systems.
All BusyBox programs are installed under the busybox
OTP application's
priv
directory. See the module documentation for helpers for adding the
appropriate directories to the PATH
variable, running commands or finding
paths to commands.
The BusyBox command list is not configurable, yet. If you would like to modify
the enabled commands, look for the make_menuconfig
helper script after you
build once. It runs BusyBox's configuration utility using the correct paths and
copies back changes. Work is needed to let you specify your own configuration in
your config.exs
. Please consider helping add this if you need it.
The package can be installed by adding busybox
to your list of dependencies in
mix.exs
:
def deps do
[
{:busybox, "~> 0.1.0"}
]
end
Take a deep breath.
Upstream BusyBox uses busybox
and BusyBox
(mostly). We attempt to follow
upstream project's spellings in our documentation. In Elixir, the convention
would be to either use busy_box
or Busybox
. We decided that the lowercase
spelling was more important to stay the same since the main executable was named
busybox
. Therefore, to stay consistent with Elixir conventions, the main
module is named Busybox
.
BusyBox is covered by the GNU General Public License version 2. Please see the BusyBox source and website for details.
All Elixir code and infrastructure in this repository that's not BusyBox is covered by the MIT license.