Support use_stdio: false in System.cmd/3 and System.shell/2
Module
System
36 changes across 24 versions
Changes by version
Add a note that arguments are unsafe when invoking .bat/.com scripts on Windows via System.cmd/3
Add a note that arguments are unsafe when invoking .bat/.com scripts on Windows via System.cmd/3
Support :lines in System.cmd/3 to capture output line by line
Fix race condition when a script would terminate before System.stop/1 executes
Add :close_stdin to System.shell/2
Do not close stdin by default in System.shell/2
Raise non-generic exception on missing env in System.fetch_env!/1 to mirror map operations
System.get_pid/0 is deprecated, use System.pid/0 instead
Add System.trap_signal/3 and System.untrap_signal/2
Add System.shell/2 to invoke a command that is interpreted by the shell
Deprecate System.stacktrace/0 (it was already deprecated outside of catch/rescue and now it is deprecated everywhere)
Deprecate System.stacktrace/0 in favor of __STACKTRACE__
Add System.restart/0, System.pid/0 and System.no_halt/1
Add System.get_env/2, System.fetch_env/1, and System.fetch_env!/1
Support SOURCE_DATE_EPOCH for reproducible builds
Make sure :init.get_status/0 is set to {:started, :started} once the system starts
:seconds, :milliseconds, etc. as time units is deprecated in favor of :second, :millisecond, etc.
System.cwd/0 and System.cwd!/0 are deprecated in favor of File.cwd/0 and File.cwd!/0
Use ISO 8601 in System.build_info/0
Raise on paths with null bytes in System.cmd/2 and in System.find_executable/1 (security issue reported by Griffin Byatt)
Raise on ill-formed environment variables (security issue reported by Griffin Byatt)
Deprecate plural time units in favor of singular ones to align with future Erlang releases
Use NUL instead of /dev/null on Windows when building System.build_info
Add System.os_time/0 and System.os_time/1
Add System.time_offset, System.monotonic_time, System.system_time, System.convert_time_unit and System.unique_integer
Allow System.cmd/3 to remove variables by specifying nil values
Do not allow relative paths in System.cmd/3 as documented
Fix :stderr_to_stdout option in System.cmd/3
System.cmd/1 is deprecated in favor of System.cmd/3
Giving a char list to System.find_executable/1 is deprecated
build_info/0 now returns a map
Convert remaining functions in System to rely on char data
Add System.delete_env/1 to remove a variable from the environment
System.get_env/0 now returns a list of tuples as previously advertised
System.halt/2 was removed since the current Erlang implementation of such function is bugged