about summary refs log tree commit diff stats
path: root/manual.tex
diff options
context:
space:
mode:
Diffstat (limited to 'manual.tex')
-rw-r--r--manual.tex215
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