const char *json;
if (socket == -1) {
mode_ = Running;
+#ifdef CY_EXECUTE
json = CYExecute(pool, data);
+#else
+ json = NULL;
+#endif
mode_ = Working;
if (json != NULL)
size = strlen(json);
int main(int argc, char *argv[]) {
bool tty(isatty(STDIN_FILENO));
- pid_t pid(_not(pid_t));
bool compile(false);
- for (;;) switch (getopt(argc, argv, "cg:n:p:s")) {
+#ifdef CY_ATTACH
+ pid_t pid(_not(pid_t));
+#endif
+
+ for (;;) switch (getopt(argc, argv,
+ "cg:n:"
+#ifdef CY_ATTACH
+ "p:"
+#endif
+ "s"
+ )) {
case -1:
goto getopt;
case '?':
- fprintf(stderr, "usage: cycript [-c] [-p <pid>] [<script> [<arg>...]]\n");
+ fprintf(stderr, "usage: cycript [-c]"
+#ifdef CY_ATTACH
+ " [-p <pid>]"
+#endif
+ " [<script> [<arg>...]]\n");
return 1;
case 'c':
}
break;
+#ifdef CY_ATTACH
case 'p': {
size_t size(strlen(optarg));
char *end;
return 1;
}
} break;
+#endif
case 's':
strict_ = true;
const char *script;
+#ifdef CY_ATTACH
if (pid != _not(pid_t) && optind < argc - 1) {
fprintf(stderr, "-p cannot set argv\n");
return 1;
fprintf(stderr, "-p conflicts with -c\n");
return 1;
}
+#endif
if (optind == argc)
script = NULL;
script = NULL;
}
- if (script == NULL && !tty && pid != _not(pid_t)) {
- fprintf(stderr, "non-terminal attaching to remove console\n");
+#ifdef CY_ATTACH
+ if (pid != _not(pid_t) && script == NULL && !tty) {
+ fprintf(stderr, "non-terminal attaching to remote console\n");
return 1;
}
+#endif
int socket;
+#ifdef CY_ATTACH
if (pid == _not(pid_t))
socket = -1;
else {
_syscall(connect(socket, reinterpret_cast<sockaddr *>(&address), SUN_LEN(&address)));
}
+#else
+ socket = -1;
+#endif
if (script == NULL && tty)
Console(socket);
# XXX: objective-c exists on non-Darwin
header += Struct.hpp ObjectiveC.hpp
-code += ObjectiveC.o
+code += ObjectiveC.o Library.o
filters += ObjC
+flags += -DCY_ATTACH -DCY_EXECUTE
Struct.hpp:
$$($(target)gcc -print-prog-name=cc1obj) -print-objc-runtime-info </dev/null >$@
return json;
}
-bool CYRecvAll_(int socket, uint8_t *data, size_t size) {
- while (size != 0) if (size_t writ = _syscall(recv(socket, data, size, 0))) {
- data += writ;
- size -= writ;
- } else
- return false;
- return true;
-}
-
-bool CYSendAll_(int socket, const uint8_t *data, size_t size) {
- while (size != 0) if (size_t writ = _syscall(send(socket, data, size, 0))) {
- data += writ;
- size -= writ;
- } else
- return false;
- return true;
-}
-
static apr_pool_t *Pool_;
struct CYExecute_ {