diff options
Diffstat (limited to 'manual.tex')
-rw-r--r-- | manual.tex | 215 |
1 files changed, 215 insertions, 0 deletions
diff --git a/manual.tex b/manual.tex new file mode 100644 index 0000000..c0033de --- /dev/null +++ b/manual.tex @@ -0,0 +1,215 @@ +\input texinfo +@setfilename dscip.info +@settitle Dead Simple Continuous Integration POSIX + +@copying +Dead Simple Continuous Integration POSIX Manual by Charadon +(DSCIP Manual for short.) + +To the extent possible under law, the person who associated CC0 with +DSCIP Manual has waived all copyright and related or neighboring rights +to DSCIP Manual. + +You should have received a copy of the CC0 legalcode along with this +work. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>. +@end copying + +@contents + +@node Top +@top DSCIP Manual + +This is the manual for the Dead Simple Continuous Integration POSIX program. + +@menu +* Installing:: +* Using:: +* Platform Specifics:: + +* Index:: +@end menu + +@node Installing +@chapter Installing + @cindex Installing + Details on installing DSCIP onto various systems. + + @node Unix + @section Unix + @cindex Installing on Unix + In this section, Unix refers to systems that are similar in nature to the + old System V Unix or is POSIX in nature. This would include: Linux, BSD, + Mac, Haiku, and Illumos.@*@* + The instructions will pretty much be the same for all systems. + + @node As a Package + @subsection As a Package + @cindex Unix: Installing Packaged DSCIP + If your host OS packaged DSCIP correctly according to + Packaging (@xref{Packaging}), these instructions should work. + + @enumerate + @item + Run @command{setup-dscip} in the terminal. See @command{setup-dscip + -h} for more details. + @item + Add the new script as a cronjob or daemon. See your OS's + manual for instructions on how to do so. + @end enumerate + + And that's it! You're ready to go! + + @node Manually + @subsection Manually + @cindex Unix: Install Manually + While not as simple as if it was packaged. The process is still not + that hard. + @enumerate + @item + Run @command{setup.sh}. See @command{setup.sh -h} for more + details. + @item + Add the new script as a cronjob or daemon. See your OS's manual + for instructions on how to do so. + @end enumerate + And that's it! You're ready to go! + + @node Windows + @section Windows + @cindex Installing on Windows + Windows is a different beast from Unix. So it warrants it's own dedicated + section. + @node MSYS2 (Recommended) + @subsection MSYS2 (Recommended) + @cindex Windows: Installing on MSYS2 + @enumerate + @item + Install @url{https://www.msys2.org, MSYS2} in whatever way you want. I recommend using + @url{https://scoop.sh, Scoop}. + @item + Once MSYS2 is installed, run setup.sh (@command{setup.sh -h} for + more info.). + @item + Next, we'll need to set it up as a service since Windows doesn't + really have cronjobs. I recommend using @url{https://nssm.cc, NSSM} + to create a service for Windows. + @item + Edit config.sh and set @env{DSCIP_DAEMON} to true, and set + @env{DSCIP_DAEMON_FORK} to false. + @item + Next, create a batch/powershell script to launch MSYS2 to run the + dscip script. Here's an example batch script: + @example +set MSYSTEM=MINGW64 +"C:\Users\builder.DESKTOP-U8KQJI1\scoop\apps\msys2\current\usr\bin\bash" -l -c "path/to/dscip" + @end example + @item + Next, run @command{nssm install <name of service>} and set follow + it's instructions. You can also use + @url{https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/sc-create, + sc.exe} if you'd rather not use NSSM. + @item + Then you just open services.msc and run it, or use @command{nssm + start name-of-service}, if you went with NSSM. + + @end enumerate + + @node Only Bash + @subsection Bash + @cindex Windows: Installing with only Bash + The easiest way to get Bash on Windows is to install git, so we'll + be assuming that path. + @enumerate + @item + Install @url{https://gitforwindows.org/, Git for Windows}, I recommend using @url{https://scoop.sh, + Scoop}. + @item + Once Git is installed, you should be able to run @command{bash} from + the command prompt or powershell. Once in Bash, run setup.sh + (@command{setup.sh -h} for more info.) and install dscip. + @item + Once installed, you'll need to set up a service for it. I recommend + using @url{https://nssm.cc, NSSM} for an easier time. + @item + Open config.sh and change @env{DSCIP_DAEMON} to true, and set + @env{DSCIP_DAEMON_FORK} to false. + @item + Create a Batch or Powershell script, here's an example batch script: + @* + @example + bash "C:\path\to\dscip" + @end example + @item + Once the script is done being made, you can use NSSM to create the + service, or + @url{https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/sc-create, + sc.exe}. + @item + Now just open services.msc or @command{nssm start <name-of-service>} + to start it. + @end enumerate + + + @node Packaging + @section Packaging + @cindex Packaging + Packaging is pretty easy, just run @command{make install} and it'll do + everything for you. You can use environment variables to change where + certain things go though. + @enumerate + @item + @env{PREFIX}: This specifies where on the system everything will go. By + default it's /usr/local. + @item + @env{BINDIR}: The directory to install setup.sh to. When installed, it + will change it's name to @command{setup-dscip}. + @item + @env{INFODIR}: The directory to install the manual. Default is + @env{PREFIX}/share/info. + @end enumerate + @noindent + This is the general layout that the Makefile defaults to: + @example +├── bin +│ └── setup-dscip (setup.sh) +└── share + ├── charadon + │ └── dscip + │ ├── build.sh + │ ├── config.sh + │ ├── dscip + │ ├── failed.sh + │ ├── post.sh + │ └── pre.sh + └── info + └── dscip.info.gz + @end example + @* + @noindent + You'll note two things: + @enumerate + @item + @command{update.sh} is not included. This is mainly mean't for non-package + installs. Such as direct @command{git} clones, or using the + @command{setup.sh} script on it's own. + @item + @env{SCRIPT_DIR} cannot be changed from it's default of + $PREFIX/share/charadon/dscip. This is because the @command{setup.sh} + script relies on the scripts being there to symlink to them. + @end enumerate + + @node Using Templates + @section Using Templates + @cindex Using Templates + + + +@node Using + +@node Platform Specifics + +@node Index +@unnumbered Index +@printindex cp + +@bye |