I have this maven project which packages up some shell scripts and batch files in a plugin. On the client side, they get extracted into a local directory where they can be used for various functions. Long story short, I was a bit irritated that on windows the batch files are treated as executables, but on Mac OS X and Linux, they were simply text files, and had to be launched with:
sh etlunit
Granted this is not a big deal, but I was annoyed anyway. So, I Googled and found a directive to the maven assembly plugin which supports setting the file mode.
<fileSets>
<fileSet>
<directory>src/bin/</directory>
<outputDirectory>bin</outputDirectory>
<fileMode>0755</fileMode>
</fileSet>
</fileSets>
I tried that, and for some reason now my bin directory (created by the plugin) was inaccessible - it's mode had changed inadvertently - to 0000. On a hunch I added the directory mode as well:
<fileSets>
<fileSet>
<directory>src/bin/</directory>
<outputDirectory>bin</outputDirectory>
<fileMode>0755</fileMode>
<directoryMode>0755</directoryMode>
</fileSet>
</fileSets>
And now I feel much better about the universe. I can add the scripts to the path or use:
./etlunit
It's little victories like these that make the Open Source Software world so much fun . . .
No comments:
Post a Comment