Commit Graph

58 Commits

Author SHA1 Message Date
Qi Xiao
482a9498cc Force terminal in blocking mode after sourcing rc.elv and executing commands.
This fixes #588 and #822.
2019-08-11 13:35:59 +01:00
Christian Muehlhaeuser
3f2a85db48 Simplified Go code (#843)
A few code simplifications which should come with no side-effects.
2019-07-20 13:58:38 +01:00
Qi Xiao
fd4a0a2342 Remove newedit (except subpackages); cliedit is the new newedit. 2019-06-22 21:25:59 +01:00
Qi Xiao
48a277ff65 Rename package edit/tty -> cli/term. 2019-05-13 22:37:43 +01:00
Qi Xiao
71d050b31c newedit: Hook up with its Store dependency. 2019-03-18 22:41:38 +00:00
Qi Xiao
a2cf05a463 On Windows, enable VT100 escape sequence on startup.
This fixes #798.
2019-03-14 21:42:21 +00:00
Qi Xiao
5979fd5c4f eval/vars: Cleanups. 2018-11-18 15:23:31 +01:00
Qi Xiao
6a0267a6b6 eval/vars: Always guard variable access with mutexes. 2018-11-18 15:13:50 +01:00
Qi Xiao
980bc4792d parse: Cleanups.
* Unexport the Parser type, and remove an unused field.

* parse.ParseAs -> parse.As; parse.Parse -> parse.AsChunk.
2018-10-13 17:27:39 +01:00
Qi Xiao
24e0449318 s/Pprint/PPrint/ everywhere. 2018-10-13 16:51:00 +01:00
Qi Xiao
217ed4b9e0 eval: Refactor Evaler API.
EvalWithStdPorts and Eval have been merged into EvalInTTY; the original
eval method is renamed Eval.

Also factor the logic for relaying interrupts.
2018-10-13 14:04:13 +01:00
Qi Xiao
fb80862ec4 Add a new package diag for diagnostic utils. 2018-10-11 00:20:32 +08:00
Qi Xiao
cdd5576760 eval: Introduce an Op type that combines effectOp and Source. 2018-10-10 19:43:42 +08:00
Qi Xiao
4b603bf8ec Move the handling of $-exports- to program/shell. 2018-09-29 00:27:54 +01:00
Qi Xiao
ac00b2e60d newedit: Add prompt API. 2018-09-20 02:22:45 +01:00
Qi Xiao
31e22206a4 newedit: Add very basic API. 2018-07-31 22:59:54 +01:00
Qi Xiao
81b36ecebf program: -newedit uses the new line editor. 2018-07-31 22:59:54 +01:00
Qi Xiao
95e6589d81 program: Add a -newedit flag. 2018-07-31 22:59:54 +01:00
Qi Xiao
8a49c8fa27 program: Add Go version to output of -buildinfo. 2018-07-03 00:36:40 +01:00
Qi Xiao
510675af1b -version is no longer deprecated \o/
This addresses #709.
2018-07-03 00:09:01 +01:00
Ian Woloschin
67568e2b8c Add support for -norc flag (#707)
* Add support for -norc flag

* Style fixes

* Clean up shell.New declaration
2018-06-27 11:56:11 +02:00
Qi Xiao
84377247a6 build -> buildinfo; include GOROOT and GOPATH and remove builder. 2018-06-15 00:35:10 +01:00
Diego Zamboni
d120747bbf Fix JSON produced by -buildinfo -json (#682) 2018-05-27 22:48:27 +01:00
Qi Xiao
4d252db2e9 eval: Pour $-exports- in rc.elv into interactive namespace.
This fixes #613.
2018-03-01 11:03:02 -05:00
Qi Xiao
d925c5c8e8 eval: More cleanups. 2018-02-28 21:50:27 -05:00
Qi Xiao
5a714929e8 eval: Remove default ports from Evaler.
The ports are now made anew each time EvalWithStdPorts is called. This
fixes #571.
2018-02-28 21:35:32 -05:00
Qi Xiao
596816f8cf eval/types: Remove the Value type.
Just use the good old interface{} type...
2018-01-29 17:39:41 +00:00
Qi Xiao
e7a29d9955 program/web: Rewrite HTML and CSS parts. 2018-01-27 01:30:32 +00:00
Qi Xiao
cb0ed60c36 Command arguments in $args.
This fixes #556.
2018-01-09 01:12:44 +01:00
Qi Xiao
f33f3ff2ae program/shell: Cleanup. 2018-01-09 01:06:42 +01:00
Qi Xiao
085fe8b18c eval: Add a Source type for exposing source info.
A builtin src has been provided to expose this info. This fixes #327.
2018-01-05 04:07:11 +00:00
Qi Xiao
ebdd2c8303 program/clientcommon -> runtime 2018-01-02 23:36:18 +00:00
Qi Xiao
acb157d929 program/web: Update codegen script. 2018-01-01 15:05:48 +00:00
Qi Xiao
29b13a917c eval: Move Value interfaces to eval/types. 2017-12-31 20:31:45 +00:00
Qi Xiao
6c1113fa3d daemon/: Merge daemon/ with daemon/api. 2017-12-28 21:30:19 +00:00
Qi Xiao
8db0115692 eval: Make out chan relaying part of Evaler. 2017-12-27 20:43:43 +00:00
Qi Xiao
86534000d8 Merge module imports into the main namespace.
A module called x is now the same as a variable called $x:, much like
how a function called f is the same as a variable called $f~.

Such module variables are not accessible yet though, due to limitations
of the current variable name resolution rules. However, those will be
fixed later.
2017-12-23 23:51:32 +00:00
Qi Xiao
f8b1c6f084 program/clientcommon: Add empty test for accurate coverage. 2017-12-23 14:30:28 +00:00
Qi Xiao
14ca5756d1 program/clientcommon: Improve error handling of daemon-spawning code. 2017-12-23 14:23:08 +00:00
Qi Xiao
07fa612759 eval: NewEvaler now requires no arg.
All the initialization steps that were related to the args are not
optional, and can be done separately by calling the relevant methods of
the Evaler.
2017-12-23 00:07:12 +00:00
Qi Xiao
0ded0b92ec Fix daemon build on Windows. 2017-12-15 22:12:59 +01:00
Qi Xiao
5465aceb3e daemon: No need for triple forking. 2017-12-15 21:13:18 +01:00
Qi Xiao
d10e1daf66 Fix Unix build, again :-/ 2017-12-15 01:12:53 +00:00
Qi Xiao
b1f33314bf Make daemon work on Windows.
The following are done on Windows:

1) Daemon listens on a TCP socket on 127.0.0.1, and writes the address
   to the sock file. Client reads the sock file and interpretes it as
   a TCP address.

2) Daemon only forks once, with an environment containing the SystemRoot
   variable (which for some reason is required for net.Listen to
   function).

The code is far from ideal, but it works \o/
2017-12-15 00:52:03 +00:00
Qi Xiao
b181ba1fbc daemon: On Windows, let daemon cd to c:\ instead of /. 2017-12-15 00:52:02 +00:00
Qi Xiao
93ef9ddc9d Fix sys.IsATTY, and enable Editor on windows (broken for now) 2017-12-14 19:50:41 +00:00
Qi Xiao
81617e8ef2 Fix minor issues found by gofmt, go vet, and misspell. 2017-12-14 01:28:07 +00:00
Qi Xiao
75b5ea18f4 Fix running of binary by striping out first arg. 2017-12-09 01:48:55 +00:00
Qi Xiao
c44e2d7321 Use build tags in a more compact way. 2017-12-08 00:45:10 +00:00
Qi Xiao
84caac010d program: Add tests, and some small cleanup. 2017-12-08 00:23:56 +00:00