robot@legalese.io is an account at Google.
It makes use of two services: Drive and Gmail.
Under Drive, a script runs once a minute to move new "Shared With Me" folders into "My Drive / incoming".
At any time, anyone on the Internet can share with the Robot a folder containing a specially formatted XML file.
The Robot will accept the folder share.
There exists a Mac Mini running InDesign Desktop Edition (as opposed to Server Edition). It runs an xml2pdf-sleep.jsx script, which notices new XML files and converts them to PDF.
It also runs the Google Drive service in the background, syncing its drive to the local filesystem.
So, the steps are:
The robot should probably only accept folder shares from trusted senders.
A caveat before you do this -- the robot is not yet designed to run in parallel; it assumes only one instance is running at any time. If you run multiple instances you may end up with google drive sync conflicts PDFs. However, as long as the PDFs are there, the main Google Apps scripts should be able to perform.
To set up a new instance of the InDesign robot,
** install InDesign CC 2014
** install a bunch of fonts that are used by the templates
adobe text pro adobe text pro italic
** install Google Drive and sync:
20161003-10:50:04 robot@venice2:~/Google Drive% ls -l total 688 -rw-r--r--@ 1 robot staff 0 Oct 3 10:28 Icon? -rw------- 1 robot staff 247 Oct 3 08:59 browser.gsheet drwxr-xr-x 211 robot staff 7174 Oct 3 10:48 done drwxr-xr-x 25 robot staff 850 Oct 3 10:48 incoming 20161003-10:50:09 robot@venice2:~/Google Drive%
** configure Google Drive to run noninteractively
under Preferences, Advanced, uncheck "Show confirmation when removing items from shared folders"
if you don't do this, every time the InDesign script deletes a .xml file, Google Drive will helpfully pop up a modal dialog and stop operating. Super annoying.
** clone the repo
you may need to xcode-select --install
mkdir -p src/l tmp/build cd src/l git clone https://github.com/legalese/legalese-indesign.git
** set up the scripts
20161003-10:53:21 robot@venice2:~/Library/Preferences/Adobe InDesign/Version 10.0/en_US/Scripts/Scripts Panel% ln -s ~/non-db-src/l/legalese-indesign/scripts/xml2pdf{-sleep,-lib,}.jsx . 20161003-10:53:23 robot@venice2:~/Library/Preferences/Adobe InDesign/Version 10.0/en_US/Scripts/Scripts Panel% ls -al total 24 drwxr-xr-x 5 robot staff 170 Oct 3 10:53 . drwxr-xr-x 3 robot staff 102 Oct 3 10:24 .. lrwxr-xr-x 1 robot staff 58 Oct 3 10:53 xml2pdf-lib.jsx -> /Users/robot/non-db-src/l/indesign/scripts/xml2pdf-lib.jsx lrwxr-xr-x 1 robot staff 60 Oct 3 10:53 xml2pdf-sleep.jsx -> /Users/robot/non-db-src/l/indesign/scripts/xml2pdf-sleep.jsx lrwxr-xr-x 1 robot staff 54 Oct 3 10:53 xml2pdf.jsx -> /Users/robot/non-db-src/l/indesign/scripts/xml2pdf.jsx
** make sure the XML Rules glue code is installed
a copy of the ~XML Rules~ folder is available in this repo.
20161003-10:56:42 robot@venice2:/Applications/Adobe InDesign CC 2014/Scripts/XML Rules% ls -al total 80 drwxrwxr-x 5 root admin 170 Jan 30 2016 . drwxrwxr-x 8 root admin 272 Oct 3 10:43 .. -rw-rw-r-- 1 root admin 3668 Jan 30 2016 glue code.jsx -rw-rw-r-- 1 root admin 26804 Jan 30 2016 glue code.scpt -rw-rw-r-- 1 root admin 5642 Jan 30 2016 glue code.vbs
** create the ~build~ directory
mkdir -p ~/tmp/build
later, the script will output an indesignlog.txt to here
** from the scripts panel in InDesign, run xml2pdf-sleep.jsx
STOPPING
STARTING
** view the indesignlog file
20161003-11:06:18 mengwong@venice2:~/non-db-src/l/indesign% perl -ple 's/\r+/\n/g' ~/non-db-src/l/build/indesignlog.txt | less