about summary refs log tree commit diff stats
Commit message (Collapse)AuthorAgeFilesLines
* 1245Kartik K. Agaram2015-05-032-2/+2
|
* 1244Kartik K. Agaram2015-05-0342-178/+173
|
* 1243Kartik K. Agaram2015-05-031-1/+1
|
* 1242 - simpler implementation for 'scenario'Kartik K. Agaram2015-05-0254-1042/+2227
| | | | | Also now has the side effect that scenarios can have any number of 'run' or check or any future blocks, in any order.
* 1241 - bugfix: comments inside run [ ... ]Kartik K. Agaram2015-05-025-21/+73
|
* 1240 - fix a spuriously passing testKartik K. Agaram2015-05-023-16/+45
| | | | | | Running list of non-obvious special cases in tangle: a) trace checks are sometimes grouped, sometimes not (previous commit) b) comments are sometimes passed through, sometimes not
* 1239 - scheduler bugfixKartik K. Agaram2015-05-024-1/+117
| | | | | | | | | | | | | | | | | | | | | | | | | | In the process, some extra unit tests as well. The final scenario is newly fixed. Between the earlier support for '%' escaping C code inside scenarios, and the previous commit, we now actually have the ability to setup the Routines data structure just so to simulate different situations. One unanticipated but happy consequence of ignoring run(""): I can interleave '+' lines with '-' lines to avoid making any ordering assertions between '+' lines. So the '+' lines here are checked in order: +layer1: a +layer3: c But here they will pass even if present out of order: +layer1: a -layer2: b +layer3: c This might be too confusing. In general, relying on run("") is just a temporary hack. It might well have even worse counter-intuitive effects. At least I'm not seeing any string-escaping issues so far.
* 1238 - stop dying on run("")Kartik K. Agaram2015-05-021-0/+1
| | | | | | | | This makes our scenarios more flexible; we can now accept '+' and '-' trace lines in any order, because the tangler simply inserts a no-op run("") between them, and since we don't '===' clear the trace in between, later checks continue to apply to the trace from the first call to run().
* 1237 - more lenient 'tangle'Kartik K. Agaram2015-05-011-17/+7
| | | | | | | If the scenario has no trace checks, just run it and check for segfaults or whatnot. The function you're running may also flag test errors internally.
* 1236Kartik K. Agaram2015-05-011-2/+1
|
* 1235Kartik K. Agaram2015-05-014-0/+155
|
* 1234 - support for trace checksKartik K. Agaram2015-05-017-17/+212
|
* 1233Kartik K. Agaram2015-05-012-0/+16
|
* 1232Kartik K. Agaram2015-05-011-0/+5
|
* 1231Kartik K. Agaram2015-05-015-0/+254
|
* 1230 - start building scenarios out of 'pseudo recipes'Kartik K. Agaram2015-05-013-0/+116
|
* 1229Kartik K. Agaram2015-05-017-19/+19
|
* 1228Kartik K. Agaram2015-04-301-1/+1
|
* 1227Kartik K. Agaram2015-04-302-0/+1101
|
* 1226 - bugfix in allocating arraysKartik K. Agaram2015-04-3032-2686/+3270
| | | | Also our first test of printing to screen.
* 1225Kartik K. Agaram2015-04-29119-0/+1909
| | | | Finally start tracing the actual instructions as they run.
* 1224Kartik K. Agaram2015-04-291-0/+0
|
* 1223 - more stable traces for parse scenariosKartik K. Agaram2015-04-29149-477/+476
|
* 1222Kartik K. Agaram2015-04-293-5/+28
|
* 1221Kartik K. Agaram2015-04-291-0/+0
|
* 1220 - permit mu comments in tangle scenariosKartik K. Agaram2015-04-293-15/+38
|
* 1219Kartik K. Agaram2015-04-291-47/+25
|
* 1218Kartik K. Agaram2015-04-293-0/+250
| | | | No tests yet for the screen primitives. Need to extend 'scenario' for that.
* 1217 - string literals weren't handling later commentsKartik K. Agaram2015-04-288-27/+65
|
* 1216Kartik K. Agaram2015-04-284-6/+13
|
* 1215 - relative motions for cursorKartik K. Agaram2015-04-282-0/+56
|
* 1214Kartik K. Agaram2015-04-282-0/+274
|
* 1213Kartik K. Agaram2015-04-2866-111/+141
|
* 1212Kartik K. Agaram2015-04-281-1/+1
|
* 1211 - /same-as-ingredient property is now checkedKartik K. Agaram2015-04-282-0/+58
|
* 1210Kartik K. Agaram2015-04-281-1/+1
|
* 1209 - channels painlessly ported overKartik K. Agaram2015-04-2810-0/+3307
| | | | | | | | I've made some tweaks to the arc version. In/out params should be identical; it was ugly that the in param was a pointer but the out wasn't. Still need to check the /same-as-ingredient property.
* 1208Kartik K. Agaram2015-04-281-2/+2
|
* 1207Kartik K. Agaram2015-04-272-1/+1
|
* 1206 - 'wait' state for synchronizing routinesKartik K. Agaram2015-04-2736-58/+155
| | | | I think I have enough now to port channels over.
* 1205Kartik K. Agaram2015-04-271-1/+1
|
* 1204 - more extensible schedulerKartik K. Agaram2015-04-261-16/+49
| | | | | | Instead of creating ad hoc data structures for every new state that routines can be in, track states in one coherent place and provide a well-defined waypoint for state transitions.
* 1203Kartik K. Agaram2015-04-261-2/+0
|
* 1202Kartik K. Agaram2015-04-262-8/+6
|
* 1201Kartik K. Agaram2015-04-261-1/+1
|
* 1200Kartik K. Agaram2015-04-251-2/+2
|
* 1199 - ignore errors in 'make clean'Kartik K. Agaram2015-04-254-4/+4
|
* 1198 - now compiles on mac os; thanks sam putmanKartik K. Agaram2015-04-253-9/+14
| | | | | | | | | | Just toss out that snprintf prototype I'd hackily copied in earlier and avoid using snprintf entirely. Hopefully I got the assertions right :/ Looks like the previous nul-padding was redundant. If you had snprintf it would take care of it.
* 1197Kartik K. Agaram2015-04-253-2/+70
|
* 1196Kartik K. Agaram2015-04-242-1/+1
|
of all flags: f fork program to background r run program as root, using sudo t run program in a separate terminal, as specified by \f(CW$TERMCMD\fR .IP "\fB\-l\fR" 14 .IX Item "-l" List all possible ways to open the specified files. Each line will contain information in the format of \fIid:label:flags:command\fR. \fIid\fR is the identification number. \fIlabel\fR is an arbitrary string that was specified for this command, \fIflags\fR are the flags that are used by default, and \fIcommand\fR is the command that is going to be executed. .IP "\fB\-p\fR \fI\s-1KEYWORD\s0\fR" 14 .IX Item "-p KEYWORD" Pick a method to open the files. .Sp \&\fI\s-1KEYWORD\s0\fR is either the \s-1ID\s0 number listed by \f(CW\*(C`rifle \-l\*(C'\fR or a string that matches a label in the configuration file. .IP "\fB\-w\fR \fI\s-1PROGRAM\s0\fR" 14 .IX Item "-w PROGRAM" Open the files with the program \fI\s-1PROGRAM\s0\fR .IP "\fB\-c\fR \fI\s-1CONFIG_FILE\s0\fR" 14 .IX Item "-c CONFIG_FILE" Read configuration from \fI\s-1CONFIG_FILE\s0\fR, instead of the default. .IP "\fB\-h\fR, \fB\-\-help\fR" 14 .IX Item "-h, --help" Print a list of options and exit. .SH "FILES" .IX Header "FILES" rifle shares configuration files with ranger, though ranger is not required in order to use rifle. The default configuration file \fIrifle.conf\fR is expected to be at \fI~/.config/ranger/rifle.conf\fR. However, this can be overridden with the \fB\-c\fR option. .PP This file specifies patterns for determining the commands to open files with. The syntax is described in the comments of the default \fIrifle.conf\fR that ships with ranger. To obtain it, you need to run: \f(CW\*(C`ranger \-\-copy\-config=rifle\*(C'\fR .SH "ENVIRONMENT" .IX Header "ENVIRONMENT" .IP "\s-1VISUAL\s0" 8 .IX Item "VISUAL" Determines which editor to use for editing files. .IP "\s-1EDITOR\s0" 8 .IX Item "EDITOR" Determines which editor to use for editing files if \s-1VISUAL\s0 is undefined or empty (in the default \fIrifle.conf\fR). If both are undefined or empty, \*(L"vim\*(R" is used instead. .IP "\s-1PAGER\s0" 8 .IX Item "PAGER" Determines which pager to use for displaying files (in the default \fIrifle.conf\fR). .IP "\s-1TERMCMD\s0" 8 .IX Item "TERMCMD" Determines the terminal emulator command for use with the \fIt\fR flag. It is required that the value is the path to an executable file which accepts the \*(L"\-e \s-1COMMAND\*(R"\s0 argument. .IP "\s-1XDG_CONFIG_HOME\s0" 8 .IX Item "XDG_CONFIG_HOME" Specifies the directory for configuration files. Defaults to \fI\f(CI$HOME\fI/.config\fR. .SH "EXAMPLES" .IX Header "EXAMPLES" List all the different methods: .PP .Vb 4 \& $ rifle \-l helloworld.py \& 0:editor::"$EDITOR" \-\- "$@" \& 1:pager::"$PAGER" \-\- "$@" \& 2:::python \-\- "$1" .Ve .PP Display its content by opening it with \*(L"cat\*(R": .PP .Vb 2 \& $ rifle \-w cat helloworld.py \& print("Hello World!") .Ve .PP Run it by picking the method 2, which calls 'python \*(-- \*(L"$1\*(R"': .PP .Vb 2 \& $ rifle \-p 2 helloworld.py \& Hello World! .Ve .PP Display the file in a pager inside a new terminal, run as root: .PP .Vb 1 \& $ rifle \-p 1 \-f tr helloworld.py .Ve