{"@context":"https://w3id.org/codemeta/3.0","@type":"SoftwareSourceCode","identifier":"pkg:hackage/shebanger","name":"shebanger","description":"\n\n[Index] [Quick Jump]\n\nPackage maintainers\n\nFor package maintainers and hackage trustees\n\nCandidates\n\n\n\nshebanger is a small CLI tool to transform a boring shell script into an\nexciting series of shebang lines!\n\nshebanger takes a shell script as input, and outputs a series of shell\nscripts. Each of the output shell scripts only consists of a shebang line, they\ndon't have any code in their body.  Executing the first output shell script will\nrun your original input shell program.\n\nThis section lists installation instructions for various Linux distros.\n\nThere is a statically-linked x86_64 Linux ELF binary for shebanger available on each of\nthe GitHub Releases.\n\nCloudy can be built with Nix by using the .nix files in this repo:\n\nYou can find the shebanger binary in ./result/bin/shebanger.\n\nYou can also install shebanger from Nixpkgs by using the haskellPackages.shebanger\nderivation:\n\nPRs are welcome adding instructions for installing Cloudy on other Linux\ndistributions!\n\nshebanger assumes it will be available on your PATH.  You might see errors\nwith the following commands if shebanger can't be found on your PATH.\n\nThere is an example shell script to use with shebanger in this repo called\ntest.sh:\n\nFirst, run shebanger on this script:\n\nThis outputs a bunch of scripts named like the following:\n\nEach of these scripts is just a single line, and they look like the following:\n\nYou can see that this is a script that only consists of a shebang line.  The\ncontents of the original script are split into 50-byte chunks, base-64 encoded,\npassed within the shebang lines of the output scripts.\n\nIf you run ./test.sh.shebanged, the original test.sh will be reconstructed\nand executed:\n\nshebanger works by base-64-encoding the original input script, and splitting\nit up into the shebang lines of a series of output scripts.  Each of these\noutput scripts consist of only a shebang line.\n\nWhen running the output script, by executing each output script one-by-one in\nturn, shebanger collects the contents of the original script, reconstructs\nit, and executes it.\n\nshebanger actually doesn't require the input to be a script, it works on any\nexecutable.  However, see the following sections on limitations of this.\n\nCurrently shebanger collects the contents of the original scripts into an\nenvironment variable, and passes that along when exec'ing the next script.\n\nThis means that shebanger is not able to execute scripts longer than a few\nhundred kilobytes, since they tend to overflow the max size of all environment\nvariables.\n\nshebanger is inspired by bangscript\nby @viperML.  The About explanation of bangscript is:\n\nEmbed scripts in a shebang\n\nWhen I read this, I immediately thought it would be what shebanger currently\nis.  Since bangscript is instead something actually useful, I knew I needed to write\nshebanger.\n\nQ: Why would someone ever actually use shebanger?\n\nA: ...","version":"1.0.0.0","softwareVersion":"1.0.0.0","license":"https://spdx.org/licenses/BSD-3-Clause","codeRepository":"https://github.com/cdepillabout/shebanger","issueTracker":"https://github.com/cdepillabout/shebanger/issues","url":"https://github.com/cdepillabout/shebanger","keywords":["bsd3","library","productivity","program","Propose Tags"],"programmingLanguage":{"@type":"ComputerLanguage","name":"Haskell"},"maintainer":[{"@type":"Person","name":"cdepillabout"}],"author":[{"@type":"Person","name":"cdepillabout"}],"copyrightHolder":[{"@type":"Person","name":"cdepillabout"}],"dateCreated":"2024-11-16","dateModified":"2024-11-16","datePublished":"2024-11-16","copyrightYear":2024,"downloadUrl":"https://hackage.haskell.org/package/shebanger-1.0.0.0/shebanger-1.0.0.0.tar.gz","applicationCategory":"hackage","runtimePlatform":"hackage","developmentStatus":"active","sameAs":["https://hackage.haskell.org/package/shebanger"],"funder":[{"@type":"Organization","url":"https://github.com/sponsors/cdepillabout"}],"https://www.w3.org/ns/activitystreams#likes":17,"https://forgefed.org/ns#forks":1}