1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%
%% Copyright (C) 2014-2016, New York University.
%% Copyright (C) 2011-2014, NYU-Poly.
%% Copyright (C) 2006-2011, University of Utah.
%% All rights reserved.
%% Contact: contact@vistrails.org
%%
%% This file is part of VisTrails.
%%
%% "Redistribution and use in source and binary forms, with or without
%% modification, are permitted provided that the following conditions are met:
%%
%% - Redistributions of source code must retain the above copyright notice,
%% this list of conditions and the following disclaimer.
%% - Redistributions in binary form must reproduce the above copyright
%% notice, this list of conditions and the following disclaimer in the
%% documentation and/or other materials provided with the distribution.
%% - Neither the name of the New York University nor the names of its
%% contributors may be used to endorse or promote products derived from
%% this software without specific prior written permission.
%%
%% THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
%% AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
%% THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
%% PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
%% CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
%% EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
%% PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
%% OR BUSINESS INTERRUPTION) 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 OF THIS SOFTWARE, EVEN IF
%% ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Note: shell-escape needs to be activated for this to work.
%% This can either be done by passing -shell-escape as an option to
%% latex or by adding/changing "shell_escape = t" in your texmf.cnf .
\NeedsTeXFormat{LaTeX2e}[1994/12/01]
\ProvidesPackage{crowdlabs}[2013/06/07 v0.2 CrowdLabs in LaTeX]
%% keyval package allows us to define arguments in a command as key-value pairs,
%% which is more convenient
\RequirePackage{graphicx,keyval,ifthen}
%% This is to hide the border of the included image
\RequirePackage[pdfborder={0 0 0}]{hyperref}
%% we will generate a file for passing to python
\newwrite\pythonincludein
%% by default we will run vistrails on the web server
\newcommand{\urlcrowdlabs}{http://www.crowdlabs.org}
%% full path to python or just python if it is on PATH
\newcommand{\pythonpath}{python3}
%% this is for allowing line breaks, empty values in vistrails command's options
\def\crowdlabs{\kernel@ifnextchar [{\@crowdlabs}{\@crowdlabs[]}}
\def\@crowdlabs[#1]#2{%
%% macros that will be used
\def\clpdf{false}
\def\clworkflow{false}
\def\clvtid{}
\def\clwfid{}
\def\clbuildalways{false}
\immediate\openout\pythonincludein=\jobname.crowd.cmdline
\immediate\write\pythonincludein{url=\urlcrowdlabs}
\setkeys{cl}{#1}
\ifthenelse{\equal{\clvtid}{}}{% it's a workflow
\immediate\write\pythonincludein{wfid=\clwfid}
\immediate\write\pythonincludein{workflow=\clworkflow}
}
{% else it's a vistrail
\immediate\write\pythonincludein{vtid=\clvtid}
}
\immediate\write\pythonincludein{buildalways=\clbuildalways}
\immediate\write\pythonincludein{pdf=\clpdf}
\ifx\@empty#2\@empty
\immediate\write\pythonincludein{other=}
\else
\immediate\write\pythonincludein{other=\string#2}
\fi
\immediate\closeout\pythonincludein
\immediate\write18{"\pythonpath" includecrowdlabs.py \jobname.crowd.cmdline > \jobname.crowd.cmdline.tex 2> \jobname.crowd.cmdline.err}
\immediate\input\jobname.crowd.cmdline.tex
}
%% key-value pairs for the command's options
\define@key{cl}{vtid}{\def\clvtid{#1}}
\define@key{cl}{wfid}{\def\clwfid{#1}}
\define@key{cl}{showworkflow}[true]{\def\clworkflow{#1}}
\define@key{cl}{pdf}[true]{\def\clpdf{#1}}
\define@key{cl}{buildalways}[true]{\def\clbuildalways{#1}}
|