GithubHelp home page GithubHelp logo

Comments (7)

kvz avatar kvz commented on June 2, 2024

That's a lot of docs to read, do i understand that we'd need to ship dependencies with bash3boilerplate? while i think our implementation isn't the prettiest, i think not requiring dependencies is a nice thing of b3bp?
https://argbash.readthedocs.io/en/stable/install.html#install

from bash3boilerplate.

gdevenyi avatar gdevenyi commented on June 2, 2024

Nope, there's no need to ship anything with the resulting script.

Fundamentally, its a m4 preprocessor that generates bash code upon being processed.

For example, I just wrote these lines:
https://github.com/CobraLab/iterativeN4_multispectral/blob/master/iterativeN4_multispectral.sh#L3-L29

And then I do:

argbash iterativeN4_multispectral.sh -o iterativeN4_multispectral.sh

And it generated all the code you see in these lines:
https://github.com/CobraLab/iterativeN4_multispectral/blob/master/iterativeN4_multispectral.sh#L30-L289

If I update my command-line specification, I just rerun the command, and it rewrites the parser.

from bash3boilerplate.

kvz avatar kvz commented on June 2, 2024

Okay so it's a bit like you would need a transpile step before you could run the bash script. We'd also need m4 to be installed everywhere. Is it ubiquitous?

I'm tempted to go along with this proposal so that we can remove the beast that our cli parsing has grown into, but at the same time, much of the appeal of b3bp was (and is to me still at least) that it can run on any thing that has bash3, no strings attached 🤔

from bash3boilerplate.

gdevenyi avatar gdevenyi commented on June 2, 2024

Okay so it's a bit like you would need a transpile step before you could run the bash script. We'd also need m4 to be installed everywhere. Is it ubiquitous?

m4 is part of the "build-essential" of Ubuntu, it's a pretty classic piece of software that you should find on any machine with development happening. I love b3bp for the other features, but argbash's parser is just so vastly superior that I wonder why we should be duplicating the effort.

from bash3boilerplate.

kvz avatar kvz commented on June 2, 2024

from bash3boilerplate.

gdevenyi avatar gdevenyi commented on June 2, 2024

Well the transpiling is only needed once, for the person writing the script, after that argbash generates/embeds the parser in regular bash code. transpiling is only needed again if one modifies the definitions of the parser and needs to update the code.

from bash3boilerplate.

kvz avatar kvz commented on June 2, 2024

from bash3boilerplate.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.