USAGE for reset_sdp.sh v2.9.16: reset_sdp.sh [-B|-local] [-fast] [-no_ssl] [-no_sd] [-b [,@cl] |-t ] [-p [,,...]>] [-D] or reset_sdp.sh [-h|-man] SAFETY NOTICE: This script SHOULD NEVER EXIST on a Production Perforce server. DESCRIPTION: This script simplifies the process of testing an SDP installation, repetitively blasting all process by the 'perforce' user and resetting the SDP from the ground up, blasting typical SDP folders each time. It is helpful when bootstrapping a demo server with a sample data set, complete with broker, and optionally Perl/P4Perl and Python/P4Python. PLATFORM SUPPORT: This works on Red Hat Enterprise Linux, CentOS, and Mac OSX (Mavericks, Yosemitie, Sierra) platforms. It works on RHEL/CentOS 6.4-6.9 and likely on other Linux derivatives with little or no modification. It currently supports only the bin.linux26x86_64 (Linux) and bin.darwin90x86_64 (Mac OSX/Darwin) architectures. REQUIREMENTS: Development utilities such as 'make' and the 'gcc' compiler must be installed and available in the PATH (unless running with '-fast'). The 'curl' utility must be installed and available in the PATH (unless running with '-local'). OPTIONS: -B Specify '-B' to blast base SDP dirs, for a clean start. Otherwise, downloaded components from earlier runs will be used (which should be fine if they were run recently). The '-B' and '-local' arguments are mutually exclusive. -local By default, various files and executables are downloaded from the Perforce Workshop or the Perforce FTP server as needed. With '-local', any missing files are treated as an error condition. The '-B' and '-local' arguments are mutually exclusive. -fast Specify '-fast' to skip installation of Perl auxiliary things like Perl, Python, P4Perl, P4Python. The '-fast' argument changes the check for GCC/G++ from a fatal error to a warning message. -no_ssl By default, the Perforce server is setup SSL-enabled. Specify '-no_ssl' to avoid using SSL feature. -no_sd By default, the Perforce Sample Depot data set is loaded. Specify '-no_sd' to skip loading the Sample Depot. -p [,,...]>] Specify a comma-delimited list of directories under /p4/common to preserve that would otherwise be removed. Directories must be specified as paths relative to /p4/common, and cannot contain spaces. For example, the value '-p config,bin/triggers' would preserve the /p4/common/config and /p4/common/bin/triggers directories. Directories specified are moved aside to a temporary working area before the SDP folders are removed. After installation, they are moved back via an 'rsync' command with no '--delete' option. This means any files that overlap with the stock install are replaced by ones that originally existed, but non-overlapping files are not removed. This is intended to be useful for developing test suites that install server under /p4/common/bin, e.g. Component Based Development scripts which install under /p4/common/bin/cbd would use '-p bin/cbd'. -b [,@cl] The default SDP install method is to clone the SDP from the main branch in The Workshop (public.perforce.com:1666). Specify '-b' to use a different branch, e.g. 'dev'. If '-b' is specified with the optional @cl syntax, where @cl specifies a changelist with files shelved on the given branch, a form of unshelving is done, enabling a workflow for testing shelved changes with the Helix Installer. So for example, specify '-b dev,@23123' to clone from the dev branch, and then followed by a fetch of shelved changelist @23123, which is expected to have files shelved in the dev branch. -t Specify a tarfile to use, e.g. '-t sdp.Unix.2017.3.23041.tgz', or use the special value '-t default' to use the default SDP tarfile, sdp.Unix.2018.1.23583.tgz The specified tar file must exist here: https://swarm.workshop.perforce.com/projects/perforce-software-sdp/files/downloads If '-t ' is not specified, default install method is used instead, which is to clone the SDP main branch from The Workshop (public.perforce.com:1666). Use '-t' to get a known version of the SDP for testing. Avoid '-t' to test with the very latest SDP from a given branch (see '-b' above for more info), even if the latest has not yet been packaged into a distribution tar file. -D Set extreme debugging verbosity. HELP OPTIONS: -h Display short help message -man Display man-style help message EXAMPLES: COMPREHENSIVE INSTALLATION: su - useradd perforce mkdir -p /hxdepots/reset chown -R perforce:perforce /hxdepots/reset cd /hxdepots/reset curl -k -s -O https://swarm.workshop.perforce.com/downloads/guest/perforce_software/helix-installer/main/src/reset_sdp.sh ./reset_sdp.sh 2>&1 | tee reset_sdp.log FAST INSTALLATION (skipping Perl, Python): su - useradd perforce mkdir -p /hxdepots/reset chown -R perforce:perforce /hxdepots/reset cd /hxdepots/reset curl -k -s -O https://swarm.workshop.perforce.com/downloads/guest/perforce_software/helix-installer/main/src/reset_sdp.sh curl -k -s -O https://swarm.workshop.perforce.com/downloads/guest/perforce_software/helix-installer/main/src/r ./r Note that the 'r' wrapper script calls the reset_sdp.sh script with a pre-defined of flags optimized for fast opreration. The 'r' wapper also handles log capture, writing to the file 'reset.log'. SDP DEV BRANCH TESTING: The Helix Installer can be used to test SDP changes shelved to the SDP dev branch in The Workshop. The following example illustrates testing a change in shelved changelist 23123: su - useradd perforce mkdir -p /hxdepots/reset chown -R perforce:perforce /hxdepots/reset cd /hxdepots/reset curl -k -s -O https://swarm.workshop.perforce.com/downloads/guest/perforce_software/helix-installer/main/src/reset_sdp.sh ./reset_sdp.sh -b dev,@23123 2>&1 | tee reset_sdp.CL23123.log After the first test, an iterative test cycle may follow on the same shelved changelist. For each test iteration, the shelved changelist is first updated in the workspace from which the change was originally shelved, e.g. with a command like 'p4 shelve -f -c 23123'. Then a new test can be done by calling reset_sdp.sh with the same arguments. The script will re-install the SDP cleanly, and then re-apply the updated shelved changelist.