=== _ion [i=johan@kiviniemi.name] has joined #upstart [03:07] X really doesn't like ioctl()s on its file descriptor === j_ack [n=rudi@p508D9B93.dip0.t-ipconnect.de] has joined #upstart [03:15] wing-commander scott# cat /etc/event.d/test [03:15] on wibble [03:15] script [03:15] exit 1 [03:15] end script [03:15] wing-commander scott# initctl emit wibble [03:15] wibble [03:15] test (start) waiting [03:15] test (start) starting [03:15] test (start) running, process 8155 [03:15] initctl: wibble event failed [03:15] zsh: exit 1 initctl emit wibble [03:15] -- [03:15] sweeeet === Amaranth [n=travis@ubuntu/member/Amaranth] has joined #upstart === j_ack_ [n=rudi@p508DAD6C.dip0.t-ipconnect.de] has joined #upstart === wasabi_ [n=wasabi@ubuntu/member/wasabi] has joined #upstart === wasabi_ [n=wasabi@ubuntu/member/wasabi] has joined #upstart === AlexExtreme [n=AlexExtr@frugalware/developer/AlexExtreme] has joined #upstart === jonibo [n=jonas@213.212.2.215] has joined #upstart === Md [i=md@freenode/staff/md] has joined #upstart === baze [n=baze@c188040.adsl.hansenet.de] has joined #upstart === Keybuk [n=scott@quest.netsplit.com] has joined #upstart [11:34] wow, my laptop booted this morning *impressed* [12:04] <_ion> Ooh [12:10] I'm finishing up merging the new state machine today [12:15] <_ion> Cool [12:17] of course, I need to fix shutdown first === pkt [n=knoppel@85.75.153.158] has joined #upstart [01:57] yay, fixed that [02:24] Committed revision 500 [02:24] woo [02:31] <_ion> \o/ === Amaranth [n=travis@ubuntu/member/Amaranth] has joined #upstart [02:51] wing-commander scott# cat /etc/event.d/test [02:51] start on wibble [02:51] script [02:51] sleep 5 [02:51] exit 1 [02:51] end script [02:51] wing-commander scott# initctl emit wibble [02:51] wibble [02:51] test (start) waiting [02:51] test (start) starting [02:51] test (start) running, process 2941 [02:51] test (stop) running [02:51] test (stop) stopping [02:51] initctl: wibble event failed [02:51] zsh: exit 1 initctl emit wibble [02:51] yay [02:54] <_ion> Whee === baze [n=baze@c157169.adsl.hansenet.de] has joined #upstart === mbiebl [n=michael@e180103239.adsl.alicedsl.de] has joined #upstart === phsdv [n=paul@dyn-88-123-133-34.ppp.tiscali.fr] has joined #upstart === mbiebl [n=michael@e180118088.adsl.alicedsl.de] has joined #upstart [07:23] Keybuk, great job with the new features :) you asked for the link to the frugalware upstart repository, it's at http://ftp.frugalware.org/pub/other/people/alex/upstart [07:24] also if you want an icon for it like debian and ubuntu have there, just use the favicon here: http://frugalware.org/ [07:34] ok, cool; thanks === Seveas [n=seveas@ubuntu/member/seveas] has joined #upstart === |phsdv| [n=paul@dyn-83-152-233-224.ppp.tiscali.fr] has joined #upstart === juergbi [n=juerg@80-219-17-102.dclient.hispeed.ch] has joined #upstart [09:48] AlexExtreme: ok, linked [09:48] thanks :) === Amaranth [n=travis@ubuntu/member/Amaranth] has joined #upstart === mbiebl [n=michael@e180118088.adsl.alicedsl.de] has joined #upstart [10:58] <_ion> keybuk: Today's proposition for 'FOO': 'goal', as in 'goal frodo until bilbo', 'goal with multiuser', 'goal network-up until network-down and fhs-mounted until fhs-unmounted' [11:09] heh [11:21] well [11:21] there goes the first of the old state machine ... [11:21] 505 changed the enums === j_ack [n=rudi@p508DA242.dip0.t-ipconnect.de] has joined #upstart [11:56] Keybuk: do you have a BNF of the job file format (or a detailed spec)? [11:56] I wanted to write a syntax file for vim over the weekend. [11:58] So you get nice syntax highlighting on editing upstart job files ;-) [12:00] I actually don't [12:00] feel free to write one based on the config code [12:00] let me quickly define it for you [12:00] it's a line-based format; newlines end a stanza [12:00] Comments begin with '#' and run up to the next newline [12:01] whitespace chars are space, tab, \r and \n if inside quotes [12:01] newlines inside single or double quotes are ignored [12:01] s/ignored/treated as whitespace/ sorry [12:02] a slash may be used to cause a single or double quote to be treated as a plain character [12:02] and a slash may also be used to treat a newline as a whitespace character [12:02] so that's the basic format [12:03] an argument is a token of characters up until the first comment, whitespace or newline character that's not quoted [12:03] examples [12:03] foo [12:03] bar [12:03] "foo bar" [12:03] foo\ bar [12:03] foo\ [12:03] bar [12:03] (last two lines is one arg) [12:03] "foo [12:03] bar" [12:03] (likewise) [12:03] foo#foo bar [12:03] (the token there is foo) [12:04] a command is a token of characters up until the first comment or newline [12:04] whitespace is part of the command [12:04] commands are parsed according to shell rules (i.e. by running "sh -c $COMMAND" ) [12:04] the only other special thing is a block [12:05] that begins on the line after the stanza, and is ended up the phrase "WS? end WS BLOCKTYPE WS? COMMENT? NL" [12:05] see init/cfgfile.c for the list of stanzas, and how each one parses what follows [12:06] next_arg eats one argument [12:06] skip_comment eats a comment and the following newline [12:06] parse_args eats all arguments to the end of the line [12:06] parse_command eats the following command [12:06] some stanzas are more complex than others, expecting second-level words === Amaranth [n=travis@ubuntu/member/Amaranth] has joined #upstart [12:13] Ok, thanks for the pointers. [12:15] It will be a bit hard to detect a upstart job file, because it doesn't have a special file extension or shebang. [12:16] they live in /etc/event.d :p [12:16] easy [12:16] Yeah, this is the metric I use already ;-) [12:18] I don't like "extensions" [12:18] you end up with something silly like ".job" [12:21] or [12:21] /etc/udev/rules.d/foo.rules [12:21] (or, worse) [12:21] /etc/udev/rules.d/foo-udev.rules [12:26] Keybuk: did you add a regexp to ignore dot files, rpm/dpkg/emacs/vi backup files, etc?