Nerves v1.5.0 Nerves.Utils.WSL View Source
This module contains utility functions to assist in detecting a Windows Subsystem for Linux environment as well as functions to convert paths between the Windows host and Linux.
Link to this section Summary
Functions
Returns a two item tuple where the first item is a command and the second is the argument list to run a powershell command as administrator in Windows
If the file was created in a temporary location, get the WSL path and delete it. Otherwise return :ok
Executes wslpath with the file and arguments.
Gets a list of fwup devices on a Windows host. This function can be run from within WSL, as it runs a powershell command to get the list and writes it to a temporary file that WSL can access.
Returns a path to the base file name a temporary location in Windows
Returns a two item tuple containing the Windows host path for a file and its WSL counterpart.
Returns true if the WSL utility wslpath
is available
Returns an item tuple with the Windows accessible path and whether the path is a temporary location or original location
Returns true if the path is accessible in Windows
Returns true if inside a WSL shell environment
Returns true when the path starts with a drive letter, colon and either single backslash or double backslash
Returns true if the path is not a Windows path
Link to this section Functions
admin_powershell_command(command, args) View Source
Returns a two item tuple where the first item is a command and the second is the argument list to run a powershell command as administrator in Windows
cleanup_file(file, arg2) View Source
If the file was created in a temporary location, get the WSL path and delete it. Otherwise return :ok
execute_wslpath(file, arguments) View Source
Executes wslpath with the file and arguments.
When a valid WSL path is passed through to wslpath
asking for a
valid path an "Invalid argument" error is returned. This function
catches this error and returns the valid path.
get_fwup_devices() View Source
Gets a list of fwup devices on a Windows host. This function can be run from within WSL, as it runs a powershell command to get the list and writes it to a temporary file that WSL can access.
get_temp_file_location(file) View Source
Returns a path to the base file name a temporary location in Windows
get_wsl_paths(file, use_wslpath) View Source
Returns a two item tuple containing the Windows host path for a file and its WSL counterpart.
If the path is not available in either Windows or WSL, nil will replace the item
Examples
iex> Nerves.Utils.WSL.get_wsl_paths("mix.exs", Nerves.Utils.WSL.has_wslpath?())
{"C:\Users\username\src\nerves\mix.exs",
"/mnt/c/Users/username/src/nerves/mix.exs"}
has_wslpath?()
View Source
has_wslpath?() :: boolean()
has_wslpath?() :: boolean()
Returns true if the WSL utility wslpath
is available
make_file_accessible(file, is_wsl, has_wslpath) View Source
Returns an item tuple with the Windows accessible path and whether the path is a temporary location or original location
path_accessible_in_windows?(file, use_wslpath) View Source
Returns true if the path is accessible in Windows
running_on_wsl?(osrelease_path \\ "/proc/sys/kernel/osrelease") View Source
Returns true if inside a WSL shell environment
valid_windows_path?(path) View Source
Returns true when the path starts with a drive letter, colon and either single backslash or double backslash
valid_wsl_path?(path) View Source
Returns true if the path is not a Windows path