News for hackers. Stuff that matters.
Re:Astro 1.0 – a web framework for building fast, content-fo... by dotancohen on Wednesday August 10, 2022 @11:32AM (#32413680)
I see, but then your scripts are not nice compact commands.

For instance, my most-used bash script takes a file as input and opens either VIM or Emacs depending on whether the file is a .md or .org (simplified example). I run it like so:

  $ n foo.org
I can edit ~/.local/bin/n and update the file, and use it immediately. I actually have my whole ~/.local/bin in version control. Having to type out e.g.

  $ nim compile --run n foo.org
...would make the whole experience far less fluent. I probably would never use it.

I'm asking because I'd love to rewrite this script in e.g. Rust, but I don't see any good way to deploy it to ~/.local/bin/n.

Re:Astro 1.0 – a web framework for building fast, content-fo... by firesloth on Thursday August 11, 2022 @01:02PM (#32428695)
For nim, you could use something like nimcr (https://nimble.directory/pkg/nimcr). You put a shebang in your script `#!/usr/bin/env nimcr` and then call it like a normal script.

eg:

  $ code script.nim


  #!/usr/bin/env nimcr
  echo "hello world"


  $ ./script.nim
  hello world
edit:

There's also the possibility of using nimscript, using nim e. It works similarly but you'd change the shebang line to something like

  #!/usr/bin/env nim e --hints:off
Re:Astro 1.0 – a web framework for building fast, content-fo... by firesloth on Saturday August 13, 2022 @04:34PM (#32453540)
Actually another way to do nimscript is to make a config.nims file with tasks in it. eg:

In config.nims:

  switch("hints", "off")
  task hello, "say hello world":
    echo "hello world"
In bash:

  $ nim hello
  hello world
Re:Astro 1.0 – a web framework for building fast, content-fo... by cercatrova on Wednesday August 10, 2022 @12:02PM (#32414232)
Just alias the command in your .bashrc? e.g. `alias n="nim compile --run n"`. I'm not sure what the issue is with longer commands because the benefits of writing in a strongly statically typed language definitely outweigh a few extra characters to type, which you don't even need to do with aliases.
Re:Astro 1.0 – a web framework for building fast, content-fo... by cb321 on Thursday August 11, 2022 @12:21PM (#32428030)
For what it's worth, you need only type "nim r n". If "n.nim" is marked executable and begins with "#!/usr/bin/nim r" then you also need only type "n.nim".