-
Notifications
You must be signed in to change notification settings - Fork 30
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
(enh) adds Process.exec(cmd, [args], [cwd],[env]) #94
Open
joshgoebel
wants to merge
13
commits into
wren-lang:main
Choose a base branch
from
joshgoebel:process_exec
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from 8 commits
Commits
Show all changes
13 commits
Select commit
Hold shift + click to select a range
00daf20
adds Process.exec(cmd, [args])
joshgoebel c2a105f
cannot spell
joshgoebel ca04513
refactor; fix ownership of strings, clean up the uv handle safely, ad…
ruby0x1 2b74cd6
more api
joshgoebel aa20336
single exec
joshgoebel 58c4a8b
exec tests
joshgoebel 5ca2367
cwd
joshgoebel 3384115
env
joshgoebel df6e8ba
questions
joshgoebel 4842cd5
windows is the outlier
joshgoebel 0791b4c
clean ups
joshgoebel 6c3be41
Scheduler.await_
joshgoebel 854a5fc
consistency
joshgoebel File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
#ifndef cli_common_h | ||
#define cli_common_h | ||
|
||
#include <stdlib.h> | ||
#include <string.h> | ||
|
||
inline char* cli_strdup(const char* s) { | ||
size_t len = strlen(s) + 1; | ||
char* m = (char*)malloc(len); | ||
if (m == NULL) return NULL; | ||
return memcpy(m, s, len); | ||
} | ||
|
||
inline char* cli_strndup(const char* s, size_t n) { | ||
char* m; | ||
size_t len = strlen(s); | ||
if (n < len) len = n; | ||
m = (char*)malloc(len + 1); | ||
if (m == NULL) return NULL; | ||
m[len] = '\0'; | ||
return memcpy(m, s, len); | ||
} | ||
|
||
#endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,51 @@ | ||
import "os" for Platform, Process | ||
|
||
var result | ||
if(Platform.name == "Windows") { | ||
result = Process.exec("cmd.exe", []) | ||
} else { | ||
// works on Mac | ||
result = Process.exec("/usr/bin/true", []) | ||
} | ||
System.print(result) // expect: 0 | ||
|
||
// basics | ||
|
||
if (Platform.isPosix) { | ||
// known output of success/fail based on only command name | ||
System.print(Process.exec("/usr/bin/true")) // expect: 0 | ||
System.print(Process.exec("/usr/bin/false")) // expect: 1 | ||
// these test that our arguments are being passed as it proves | ||
// they effect the result code returned | ||
System.print(Process.exec("/bin/test", ["2", "-eq", "2"])) // expect: 0 | ||
System.print(Process.exec("/bin/test", ["2", "-eq", "3"])) // expect: 1 | ||
} else if (Platform.name == "Windows") { | ||
// TODO: more windows argument specific tests | ||
} | ||
|
||
// cwd | ||
|
||
if (Platform.isPosix) { | ||
// tests exists in our root | ||
System.print(Process.exec("ls", ["test"])) // expect: 0 | ||
// but not in our `src` folder | ||
System.print(Process.exec("ls", ["test"], "./src/")) // expect: 1 | ||
} else if (Platform.name == "Windows") { | ||
// TODO: can this be done with dir on windows? | ||
} | ||
|
||
// env | ||
|
||
if (Platform.isPosix) { | ||
System.print(Process.exec("/usr/bin/true",[],null,{})) // expect: 0 | ||
|
||
var fiber = Fiber.new { | ||
Process.exec("ls",[],null,{"PATH": "/binx/"}) | ||
} | ||
var r = fiber.try() | ||
System.print(r) | ||
// expect: Could not launch ls, reason: no such file or directory | ||
// expect: Could not spawn process. | ||
} else if (Platform.name == "Windows") { | ||
|
||
} |
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed in later commit.