11-08-2019
UNIX Utility Development Conventions?
I'm slowly hacking away at a zsh script that shows some promise as a command line tool. I want to learn more about the conventions regarding command line tool development in Unix (and/or macOS), but don't really know where to look for this information.
What is the correct way, or convention, to specify and parse command line arguments, for example? How should I package my tool? What is the best way to handle deployment of the various aspects of my tool, for example the man page, or configuration settings? How should I handle the upgrade process?
Smaller details, like should I store my source code in the repo with execute permissions turned on, or should I only turn on those permissions when the files are deployed on the user's machine? What group should I set as the default for my executable files?
Does anyone know any great resources out there that address these issues?
10 More Discussions You Might Find Interesting
1. UNIX for Advanced & Expert Users
Hi ,
I have wrote a telnet clinet application to interact with remote system . This program takes the screen shots for every interaction and send back to us. After connecting to remote machine , i want to call tip utility to interact with a device which is connected to one remote system. Now my... (0 Replies)
Discussion started by: prasadvsda
0 Replies
2. SCO
how can zip a directory in sco unix and transfer it to any other system using ftp. and finally how can i unzip it
regards,
ajay (1 Reply)
Discussion started by: ajay234
1 Replies
3. Shell Programming and Scripting
Kindly help me to build the script similar to VLOOKUP function of MS Excell. (5 Replies)
Discussion started by: hjoshi
5 Replies
4. UNIX for Dummies Questions & Answers
Hi,
Can anyone explain me the use of age utility and how it works?
Looking forward reply...
Thanks,
Venkatesh. (1 Reply)
Discussion started by: venkatesht
1 Replies
5. UNIX for Dummies Questions & Answers
Hello everyone.
Could you please advise of what would be the best Unix (Debian 4) program for regular (daily or weekly) incremental backups?
I'm not sure whether the backups will be stored on a "backup" drive on the same system or on an external "backup" system, but we would like to have a... (2 Replies)
Discussion started by: nottrobin
2 Replies
6. Programming
C calling convention we all know defines a way how the parameters are pushed onto the stack.
My question is when and how does this C calling conventions matters to a user?
When the user will have to bother about the calling conventions in his project? (5 Replies)
Discussion started by: rupeshkp728
5 Replies
7. UNIX for Dummies Questions & Answers
I am looking for a utility that does file hashing in unix. ...Please let me know of any good easy to use utility (3 Replies)
Discussion started by: jbjoat
3 Replies
8. UNIX for Dummies Questions & Answers
is there a typographic convention that is followed in the man pages.
where could a description be found.
at this time i am in man stty and the author uses upper case in some places.
and my brain is just burning to a fizzle while studying a book on bash and trying to stay in scope of the... (1 Reply)
Discussion started by: cowLips
1 Replies
9. UNIX for Beginners Questions & Answers
Hi,
I work on a Middleware application which is installed on Windows, but its file System is on HP UNIX. I am supposed to change the SMTP host address for my application. But I am not able to find the file where the old SMTP host would have been configured/hardcoded. Can anyone assist me on this... (2 Replies)
Discussion started by: jhilmil
2 Replies
10. Cybersecurity
Hey guys, not sure should I post it here or in 'What is on Your Mind?'
I'm discussing usage of DSL (domain specific language) in security tools with my colleagues. We haven't been able to reach an agreement over naming conventions.
There are many tools using DSL: splunk, sumologic,... (2 Replies)
Discussion started by: Tobby P
2 Replies
LEARN ABOUT DEBIAN
rdswap
RDSWAP(1) General Commands Manual RDSWAP(1)
["NAME"]
rdswap - a multi-language RD documents support tool
["SYNOPSIS"]
rdswap [ -h | -v ] filename ...
["DESCRIPTION"]
This tool is written to support you to write multi-language documents using the Ruby-Document-Format (RD).
The idea for such a tool was originated by Minero Aoki, how has thought about, how to make life easier for developers who have to write and
maintain scripts in more than one language.
You have to specify at least two filenames on the command line. One containing the Ruby script, the second containing a translated RD. If
the script does not end with `.rb', it has to be the first filename mentioned on the command line! In opposition, all files containing
translations must not ending with `.rb'! They should use a extension that describes the language. So that would give us the following pic-
ture:
o sample.rb : Script contains the original documentation.
o sample.jp : Documentation written in Japanese.
o sample.de : Translation to German.
The tool doesn't care about the language extensions. You can name them as you like! So the file containing the Japanese translation above,
could also be names e.g. `sample.japan' or even `japantranslation.japan'.
For every translation file, a new file will be created. The name is build from the script filename plus the language extension. So regard-
ing the example above, following files would be created:
o sample.rb.jp
o sample.rb.de
or, given the alternative translation filename as mentioned above...
o sample.rb.japan
["How does it work?"]
The contents of all files will be split into source and RD blocks. The source of the translation files, will be discarded! Every RD block
may be of a certain type. The type will be taken from the contents directly following the `=begin' on the same line. If there is only a
lonely `=begin' on a line by itself, the type of the block is `nil'. That means in
# File sample.rd
:
=begin
bla bla
=end
:
=begin whatever or not
blub blub
=end
:
the first block would be of type `nil' and the second one of type `whatever or not'.
Block types are important for the translation. If a source will be generated from a script and a translation file, only these blocks are
taken from the translation files, that comes in the right sequence and contains the same type as the block in the script! For example:
# File sample.rb
:
=begin gnark
Some comment
=end
:
=begin
block 2
=end
:
=begin
block 3
=end
:
# File sample.de
:
=begin
Block zwei
=end
:
=begin
Block drei
=end
:
Here, the first block of `sample.rb' will *not* be translated, as there is no translation block with that type in sample.de! So the first
block would be inserted as-it-is into the translated script. The blocks afterwards, however, are translated as the block type does match
(it is `nil' there).
Attention: In a translation file, a second block will only be used, if a first one was already used (matched). A third block will only be
used, if a second one was used already!
That means, if the first block of `sample.de' would be of type e.g. `Never match', then no block would ever be taken to replace anyone of
`sample.rb'.
["OPTIONS"]
["-h"]
shows this help text.
["-v"]
shows some more text during processing.
["filename"]
means a file, that contains RD and/or Ruby code.
["EXAMPLES"]
rdswap -v sample.rb sample.ja sample.de
rdswap -v sample.ja sample.rb sample.de
rdswap -v sample.ja sample.de sample.rb
rdswap -v sample.??
["AUTHORS"]
Clemens Hintze <c.hintze@gmx.net>.
June 2012 RDSWAP(1)