00:00:12 23:29 The rationale, per the man page, is that "wget -O foo ..." is supposed to work like "wget ... > foo", which would also have created/truncated the output file even if it fails. 00:00:20 I might go as far as to call it a scow. 00:00:40 any option to disable it? 00:00:54 Not that I noticed. 00:01:13 oerjan: Hello. What did I mess up now? 00:01:47 `rm bin/ 00:01:48 rm: cannot remove `bin/ ': No such file or directory 00:01:51 Oh. 00:02:13 zgrep: you tried to make "bin/ " about a year ago, but it failed for two different reasons. 00:02:27 so now i removed it, since it's useless. 00:02:29 O-okay. 00:02:45 Past zgrep is a whole other zgrep. 00:02:55 * zgrep doesn't remember that in the slightest 00:02:58 (the first reason is that you can't get ` cmd to work that way, the other is that you messed up quoting) 00:03:04 heh 00:04:03 I wonder, how many esoteric interpreters / compilers are inside HackEgo. 00:04:41 ` relcome zgrep 00:04:43 ​zgrep: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: . (For the other kind of esoterica, try #esoteric on EFnet or DALnet.) 00:05:22 ` echo does # this work? 00:05:23 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: : not found 00:05:58 ` ls -1 bin 00:05:59 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: : not found 00:06:17 `` ls -1 bin | grep relcome | wc -l 00:06:18 1 00:06:34 I'm just going to continue being confused then. 00:06:42 Does HackEgo behave weirdly with notices? 00:06:59 Err... oh, wait, I'm not looking at my screen properly. 00:07:02 Maybe I should take a nap. 00:08:38 fizzie: hm a simple workaround would be to drop the commit if the file ends up empty 00:09:27 (once again, tmp/ gets left out :P) 00:13:27 zgrep: shachaf is cheating hth 00:15:10 (possibly you can see it in your client, i cannot) 00:16:11 fizzie: thanks for the help. I also made a musical brainfuck, this should be interesting. 00:19:55 `unidecode 00:19:55 ​[U+0020 SPACE] 00:20:06 I cannot. 00:20:22 ` echo shocking. 00:20:23 shocking. 00:20:53 it's between the ` and the space fwiw 00:20:53 Grr. Now I'm going to have to figure this out. 00:21:18 but with my client, even that doesn't help. 00:21:35 *MWAHAHAHA* 00:22:16 What's a ^O? 00:22:33 * zgrep looks at a 4 column ascii chart 00:22:45 SI. 00:22:59 the control codes have special meaning for irc. 00:23:17 ^O is "cancel formatting" or something like that 00:23:36 oerjan: Plausible, but would involve a little interaction with lib/fetch and the transaction logic. 00:23:36 So it is, it seems. 00:24:13 `` which `python -c 'print"\x0f"'` 00:24:14 ​/hackenv/bin/ 00:24:24 `` which `python -c 'print"\u200b"'` 00:24:25 No output. 00:24:38 oerjan: As it stands, fetch runs under the same transaction logic. (Yes, it fetches the URL twice.) 00:24:42 [wiki] [[User:Juju2143]] N https://esolangs.org/w/index.php?oldid=50978 * Juju2143 * (+421) Created page with "I'm '''juju2143''' (or '''Juju''', mind the capitals) and I program things. I wrote my first [[Brainfuck]] interpreter in TI-83+ BASIC around 2009 and it keeps happening sinc..." 00:24:53 `` hg cat wisdom/fetch 00:24:54 wisdom/fetch: no such file in rev 1b9e4e8dbb85 00:24:57 [wiki] [[User:Juju2143]] M https://esolangs.org/w/index.php?diff=50979&oldid=50978 * Juju2143 * (+1) 00:25:01 `` hg cat wisdom/revert 00:25:01 wisdom/revert: no such file in rev 1b9e4e8dbb85 00:25:07 wat 00:25:13 `` hg cat wisdom/\`revert 00:25:14 ​`revert now works fine. Yay fizzie! 00:25:24 fizzie: you could use that ^ 00:26:46 or perhaps whatever the command is for reverting the file back to rep 00:27:04 you could run it inside lib/fetch 00:27:58 and then the transaction logic should recognize that nothing changed, by itself. 00:32:00 I guess. 00:32:16 I'll do that after the current behaviour turns out to be a problem. 00:32:30 fiendish 00:33:01 Presumably if you're overwriting a file, and it fails, you're going to just keep trying until it has the contents you want, anyway. 00:33:10 point. 00:33:35 ...will it give an error message, then? 00:33:55 if so, that's probably unlikely to be a problem. 00:33:58 It'll say whatever wget says. So usually an error message of some sort. 00:34:11 It may not be a particularly good error message. 00:34:15 good, good 00:38:03 `help 00:38:03 Runs arbitrary code in GNU/Linux. Type "`", or "`run " for full shell commands. "`fetch [] " downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert " can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/ 00:38:11 `source 00:38:12 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: source: not found 00:38:14 `? source 00:38:15 Sources for HackEgo can be found at https://bitbucket.org/GregorR/hackbot + https://bitbucket.org/GregorR/multibot + https://bitbucket.org/GregorR/umlbox 00:38:46 There's one really quirky corner case it currently gets wrong, which I'm not going to bother worrying about. (Mostly because I already made the pull request.) 00:38:46 `mkx source//\? source 00:38:48 source 00:38:54 `fetch tmp/foo https://zem.fi/tmp/home/hackbot/hackbot.hg/multibot_cmds/env/foo 00:38:57 2017-02-16 00:38:45 URL:https://zem.fi/tmpfoo [4/4] -> "/home/hackbot/hackbot.hg/multibot_cmds/env/tmp/foo" [1] 00:39:18 fizzie: Can we get access to tmp/ via HTTP somehow? 00:39:59 There's a .replace() that converts the "raw" path in the wget output to the "logical" path, but it fails if the $HACKENV path happens to be a substring in the URL. 00:40:22 SERIOUSLY 00:41:43 ok, probably unlikely 00:42:35 `cat tmp/foo 00:42:35 foo 00:42:54 oh, it's just about the output printed? 00:43:03 Yes. 00:43:21 oh well, it wouldn't be HackEgo if it weren't hacky. 00:44:01 whoa whoa whoa 00:44:04 shaventions are hacky?! 00:45:11 shachaf: That might be a bit tricky. Definitely not via fshg, and I don't think it would be feasible in the naive way of just pointing the web server at the directory. 00:45:12 shocking 00:45:42 Besides, if I make that happen you'll start asking for a way to NFS-mount tmp/ on your machines. 00:46:44 \pence{that's nonsense} 00:47:15 what's \pence 00:48:17 How much disk space does HackEgo have... 00:48:17 Could be Mike Pence. 00:48:54 `df -h 00:48:55 df: cannot read table of mounted file systems: No such file or directory 00:48:57 Heh. 00:49:05 Makes sense, given how it works. 00:49:14 There's probably some way to work around that. 00:49:20 Anyway, there's 28 gigs or so free. 00:49:25 Hmm. 00:49:37 For some reason I was thinking of loading some dictionaries onto there, unless there's already some there. 00:50:33 `` df -h /hackenv 00:50:34 df: Warning: cannot read table of mounted file systems: No such file or directory \ Filesystem Size Used Avail Use% Mounted on \ - 39G 9.6G 28G 27% /hackenv 00:50:39 There we go. 00:50:43 :D: 00:50:58 `` df -h /hackenv 2>/dev/null 00:50:59 Filesystem Size Used Avail Use% Mounted on \ - 39G 9.6G 28G 27% /hackenv 00:51:26 A statfs call on the UML bind mount is fine, it's just the getting of mountpoints that it can't do. 00:52:52 Does mk / mkx let you make multiline things in an easy fashion? 00:53:05 `which env 00:53:05 ​/usr/bin/env 00:53:18 I think they're single-line-only. 00:53:35 `` url `which mk` 00:53:35 http://codu.org/projects/hackbot/fshg/index.cgi/file/tip/bin/mk 00:53:59 There's been some talk of a line editor, which I think should use tmp/ for state, if someone goes ahead and does one. 00:54:28 I was about to ask why, then I realised IRC. 00:55:00 I think people generally just fall back to `fetch at the point things get too tricky. 00:55:14 `which ed 00:55:14 ​/bin/ed 00:55:32 Hmmm. 00:55:56 E-except mercurial says not found? 00:56:05 `` url `which ed` 00:56:06 File is outside web-viewable filesystem repository. 00:56:10 Ah. I see. 00:56:13 fizzie: I was thinking of doing it. 00:56:28 * zgrep has a bad idea of how to do it 00:58:35 There was an attempt already, but it went nowhere, except for leaving some cruft in tmp. 00:58:39 `ls tmp 00:58:39 8 \ foo \ metar \ pad.1 \ pad.1 print 1+! \ pad.print 1+! \ spline \ spout 00:59:06 I wonder if I could in fact do it the naive way after all. 01:00:15 Does the naive way involve mv for the final step? 01:00:34 Oh, I meant the "expose tmp over HTTP". 01:00:38 i,i do it the knave way 01:00:42 Oh. 01:00:44 You should do it. 01:00:47 Yes. 01:00:47 The permissions look plausible (after all, the web server can access the repository too), and nginx might be configurable to override content-type with something safe-ish. 01:01:05 You should use application/octet-stream and annoy everyone. 01:01:11 D: 01:01:19 That's what the fshg raw links do. 01:01:32 D: 01:01:38 * zgrep feels annoyed 01:01:43 * zgrep must be everyone 01:01:51 imo do it 01:02:01 They used to serve a guessed MIME type, but there's obvious problems if there's anything else on the same domain. 01:02:20 Hm. I guess it would be safer. 01:02:30 I don't know if text/plain would be okay. 01:02:37 I think text/plain should be fine? 01:03:00 -!- krok_ has quit (Quit: Leaving). 01:03:10 It can look a bit odd if it's a big binary file, but maybe that's not too bad. 01:03:33 "Risks of serving untrusted content under HTTP Content-Type: text/plain" 01:04:03 isn't text/css supposedly a workaround people use 01:04:24 That sounds vaguely familiar. 01:05:06 imo do it and ask questions later 01:05:23 And question answers. 01:05:56 `fetch minsk https://esolangs.org/wiki/The Amnesiac From Minsk 01:05:58 2017-02-16 01:05:46 URL:https://esolangs.org/wiki/The%20Amnesiac%20From%20Minsk [41183] -> "minsk" [1] 01:06:09 oh it does work 01:06:13 `rm minsk 01:06:14 No output. 01:06:27 Yes, it splits at most once, at the first whitespace. 01:07:15 oh that's what , 1) is for, i guess 01:07:31 Spaces are invalid in URIs anyway. 01:08:42 `fetch .hg/test https://esolangs.org/wiki/The Amnesiac From Minsk 01:08:44 2017-02-16 01:08:32 URL:https://esolangs.org/wiki/The%20Amnesiac%20From%20Minsk [41183] -> ".hg/test" [1] 01:08:55 Whoops. 01:08:56 cat .hg/test 01:08:59 *COUGH* 01:09:05 `cat .hg/test 01:09:06 ​ \ \ \ \ The Amnesiac From Minsk - Esolang \ \