/*------------------------------------------------------------------
THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR
CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT
LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED
AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS
GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES
-------------------------------------------------------------------*/
/* CLON1LNX EXEC: clone 100 disk from zvl281 to a target user ID */
/* Arg 1: the target user ID                                     */
parse arg targetID .
sourceID = "zvl281"
call checkID sourceID
call checkID targetID
say ' '
say 'Copying mindisk 100 from' sourceID 'to' targetID
'CP LINK' sourceID '100 1100 RR'
'CP LINK' targetID '100 2100 MR'
COPYMDSK 1100 2100
'CP DETACH 1100'
'CP DETACH 2100'
exit
 
/*+------------------------------------------------------------------+*/
checkID: procedure
/*| Check that a user ID is logged off                               |*/
/*|  parm 1: userID in question                                      |*/
/*+------------------------------------------------------------------+*/
parse arg userid
'cp query' userid
retVal = rc
select
  when (retVal = 0) then do
    say 'User ID' userid 'must be logged off'
    exit 1
  end
  when (retVal = 3) then do
    say 'User ID' userid 'does not exist'
    exit 2
  end
  when (retVal = 45) then do
    /* no-op - this is expected */
  end
  otherwise
    say 'Return code of' retval 'is not expected'
    exit 3
end /* select */
return