mirror of
https://github.com/urbit/shrub.git
synced 2025-01-06 13:14:01 +03:00
add -I to inject event
This commit is contained in:
parent
0b0766b32b
commit
30a3ec41c5
26
pkg/arvo/gen/reload-event.hoon
Normal file
26
pkg/arvo/gen/reload-event.hoon
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
:: Produce a raw event to reload a vane
|
||||||
|
::
|
||||||
|
:: Try: .event/ovo +reload-event %c, then restart urbit with
|
||||||
|
:: -I pier/.urb/put/event.ovo
|
||||||
|
::
|
||||||
|
:- %say
|
||||||
|
|= $: [now=@da eny=@uvJ bek=beak]
|
||||||
|
[[tam=term ~] ~]
|
||||||
|
==
|
||||||
|
:- %ovo
|
||||||
|
=/ top `path`/(scot %p p.bek)/[q.bek]/(scot r.bek)
|
||||||
|
=/ nam
|
||||||
|
=/ van=(list [term ~])
|
||||||
|
:- zus=[%zuse ~]
|
||||||
|
~(tap by dir:.^(arch %cy (welp top /sys/vane)))
|
||||||
|
?. =(1 (met 3 tam))
|
||||||
|
tam
|
||||||
|
=+ ^- zaz=(list [p=knot ~])
|
||||||
|
(skim van |=([a=term ~] =(tam (end 3 1 a))))
|
||||||
|
?> ?=([[@ ~] ~] zaz)
|
||||||
|
`term`p.i.zaz
|
||||||
|
=/ tip (end 3 1 nam)
|
||||||
|
=/ bip ?:(=('z' tip) %$ tip)
|
||||||
|
=/ way ?:(=('z' tip) (welp top /sys/[nam]) (welp top /sys/vane/[nam]))
|
||||||
|
=/ fil .^(@ %cx (welp way /hoon))
|
||||||
|
[//arvo %veer bip way fil]
|
@ -95,7 +95,7 @@ _main_getopt(c3_i argc, c3_c** argv)
|
|||||||
u3_Host.ops_u.kno_w = DefaultKernel;
|
u3_Host.ops_u.kno_w = DefaultKernel;
|
||||||
|
|
||||||
while ( -1 != (ch_i=getopt(argc, argv,
|
while ( -1 != (ch_i=getopt(argc, argv,
|
||||||
"G:J:B:K:A:H:w:u:e:E:f:F:k:m:p:LjabcCdgqstvxPDRS")) )
|
"G:J:B:K:A:H:I:w:u:e:E:f:F:k:m:p:LjabcCdgqstvxPDRS")) )
|
||||||
{
|
{
|
||||||
switch ( ch_i ) {
|
switch ( ch_i ) {
|
||||||
case 'J': {
|
case 'J': {
|
||||||
@ -118,6 +118,10 @@ _main_getopt(c3_i argc, c3_c** argv)
|
|||||||
u3_Host.ops_u.dns_c = strdup(optarg);
|
u3_Host.ops_u.dns_c = strdup(optarg);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case 'I': {
|
||||||
|
u3_Host.ops_u.jin_c = strdup(optarg);
|
||||||
|
break;
|
||||||
|
}
|
||||||
case 'e': {
|
case 'e': {
|
||||||
u3_Host.ops_u.eth_c = strdup(optarg);
|
u3_Host.ops_u.eth_c = strdup(optarg);
|
||||||
break;
|
break;
|
||||||
|
@ -556,6 +556,7 @@
|
|||||||
c3_c* gen_c; // -G, czar generator
|
c3_c* gen_c; // -G, czar generator
|
||||||
c3_o gab; // -g, test garbage collection
|
c3_o gab; // -g, test garbage collection
|
||||||
c3_c* dns_c; // -H, ames bootstrap domain
|
c3_c* dns_c; // -H, ames bootstrap domain
|
||||||
|
c3_c* jin_c; // -I, inject raw event
|
||||||
c3_c* lit_c; // -J, ivory (fastboot) kernel
|
c3_c* lit_c; // -J, ivory (fastboot) kernel
|
||||||
c3_o tra; // -j, json trace
|
c3_o tra; // -j, json trace
|
||||||
c3_w kno_w; // -K, kernel version
|
c3_w kno_w; // -K, kernel version
|
||||||
|
@ -69,6 +69,7 @@ static void _pier_boot_complete(u3_pier* pir_u);
|
|||||||
static void _pier_boot_ready(u3_pier* pir_u);
|
static void _pier_boot_ready(u3_pier* pir_u);
|
||||||
static void _pier_boot_set_ship(u3_pier* pir_u, u3_noun who, u3_noun fak);
|
static void _pier_boot_set_ship(u3_pier* pir_u, u3_noun who, u3_noun fak);
|
||||||
static void _pier_exit_done(u3_pier* pir_u);
|
static void _pier_exit_done(u3_pier* pir_u);
|
||||||
|
static void _pier_inject(u3_pier* pir_u, c3_c* pax_c);
|
||||||
static void _pier_loop_resume(u3_pier* pir_u);
|
static void _pier_loop_resume(u3_pier* pir_u);
|
||||||
|
|
||||||
/* _pier_db_bail(): bail from disk i/o.
|
/* _pier_db_bail(): bail from disk i/o.
|
||||||
@ -1531,6 +1532,12 @@ _pier_boot_complete(u3_pier* pir_u)
|
|||||||
u3_term_ef_verb();
|
u3_term_ef_verb();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
if ( 0 != u3_Host.ops_u.jin_c ) {
|
||||||
|
_pier_inject(pir_u, u3_Host.ops_u.jin_c);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* _pier_boot_ready():
|
/* _pier_boot_ready():
|
||||||
@ -1772,6 +1779,17 @@ _pier_create(c3_w wag_w, c3_c* pax_c)
|
|||||||
return pir_u;
|
return pir_u;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* _pier_inject(): inject raw event at filename
|
||||||
|
*/
|
||||||
|
static void
|
||||||
|
_pier_inject(u3_pier* pir_u, c3_c* pax_c)
|
||||||
|
{
|
||||||
|
u3_noun ovo = u3ke_cue(u3m_file(pax_c));
|
||||||
|
u3m_p("injecting event", u3h(ovo));
|
||||||
|
u3_pier_work(pir_u, u3k(u3h(ovo)), u3k(u3t(ovo)));
|
||||||
|
u3z(ovo);
|
||||||
|
}
|
||||||
|
|
||||||
/* u3_pier_interrupt(): interrupt running process.
|
/* u3_pier_interrupt(): interrupt running process.
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
|
Loading…
Reference in New Issue
Block a user