Here's what I did for mine:
have a text file with your custom commands, then:
(defun c:ccd (/ path1)
(vl-load-com)
(setq path1 (strcat (vl-filename-directory (findfile "acad.pgp")) "\\")
proglocationc "MYPATH")
(if (= (vl-file-systime (strcat path1 logan "acad.pgp")) nil)
(progn
(vl-file-copy
(strcat path1 "acad.pgp")
(strcat path1 logan "acad.pgp")
) ;_ end of vl-file-copy
(vl-file-copy
(strcat proglocationc "cowgill.txt")
(strcat path1 "acad.pgp")
t
) ;_ end of vl-file-copy
(setvar "re-init" 16)
) ;_ end of progn
(progn
(vl-file-delete (strcat path1 "acad.pgp"))
(vl-file-rename
(strcat path1 logan "acad.pgp")
(strcat path1 "acad.pgp")
) ;_ end of vl-file-rename
(setvar "re-init" 16)
) ;_ end of progn
) ;_ end of if
) ;_ end of defun
obviously you'd rename a few of the file names, but basically what it does is make a copy of the existing pgp, using the user's login name, then copy's the custom pgp commands from the cowgill.txt file into the acad.pgp, then reninits. If you run the command again, it erases acad.pgp, and renames the original file back to acad.pgp.