blob: 7f59f6162b5b822551ce2a896802195b866cf866 (
plain) (
tree)
|
|
%%
%% This is file `ifplatform.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% ifplatform.dtx (with options: `package')
%% ________________________________________________________
%% Copyright (C) 2007-2010 Will Robertson & Johannes Große
%% License information appended.
\ProvidesPackage{ifplatform}
[2010/10/22 v0.4 Testing for the operating system]
\RequirePackage{pdftexcmds,catchfile,ifluatex}
\newif\ifshellescape
\newif\ifwindows
\newif\ifmacosx
\newif\iflinux
\newif\ifcygwin
\newcommand\windowsname{Windows}
\newcommand\notwindowsname{*NIX}
\newcommand\linuxname{Linux}
\newcommand\macosxname{Mac\,OS\,X}
\newcommand\cygwinname{Cygwin}
\newcommand\unknownplatform{[Unknown]}
\edef\ip@file{\jobname.w18}
\newif\if@ip@nix@
\ifnum\pdf@shellescape=1\relax
\shellescapetrue
\else
\ifluatex\else
\PackageWarningNoLine{ifplatform}{^^J \space\space\space
shell escape is disabled,
so I can only detect \@backslashchar ifwindows%
}
\fi
\fi
\def\ip@cantdecide{%
\PackageWarningNoLine{ifplatform}{^^J \space\space\space
I can't tell if this is Windows or *nix;
you appear to be both%
}%
}
\ifluatex
\csname\directlua{
if os.type == "unix" then
tex.sprint("@ip@nix@true")
elseif os.type == "windows" then
tex.sprint("windowstrue")
end
}\endcsname
\else
\IfFileExists{nul:}{\@ip@nix@false}{\@ip@nix@true}
\IfFileExists{/dev/null}{\windowsfalse}{\windowstrue}
\edef\ip@windows@echo@test{echo \string# > "\ip@file"}
\def\ip@backupplan{%
\IfFileExists{\ip@file}{%
\PackageWarningNoLine{ifplatform}{^^J \space\space\space
Please delete the file "\ip@file" and try again%
}%
\ip@cantdecide
}{%
\immediate\write18{\ip@windows@echo@test}%
\IfFileExists{\ip@file}{%
\immediate\write18{del "\ip@file"}%
\windowstrue
}{%
\@ip@nix@true
}%
}%
}
\ifwindows
\if@ip@nix@
\PackageWarningNoLine{ifplatform}{^^J \space\space\space
I can't tell if this is Windows or *nix;
you appear to be neither%
}
\fi
\else
\if@ip@nix@\else
\ifshellescape
\ip@backupplan
\else
\ip@cantdecide
\fi
\fi
\fi
\fi
\def\ip@only@six#1#2#3#4#5#6#7\@nil{#1#2#3#4#5#6}
\if@ip@nix@
\ifshellescape
\ifwindows\else
\immediate\write18{uname -s > "\ip@file"}
\CatchFileDef\@tempa{\ip@file}{}
\immediate\write18{rm -- "\ip@file"}
\edef\@tempa{\expandafter\zap@space\@tempa\@empty}
\def\@tempb{Linux}
\ifx\@tempa\@tempb
\linuxtrue
\else
\def\@tempb{Darwin}
\ifx\@tempa\@tempb
\macosxtrue
\else
\def\@tempb{CYGWIN}
\edef\@tempc{\expandafter\ip@only@six\@tempa------\@nil}
\ifx\@tempb\@tempc
\cygwintrue
\else
\edef\unknownplatform{\@tempa}
\fi
\fi
\fi
\fi
\fi\fi
\edef\platformname{%
\ifwindows
\noexpand\windowsname
\else
\ifshellescape
\iflinux
\noexpand\linuxname
\else
\ifmacosx
\noexpand\macosxname
\else
\ifcygwin
\noexpand\cygwinname
\else
\noexpand\unknownplatform
\fi
\fi
\fi
\else
\noexpand\notwindowsname
\fi
\fi
}
%% Copyright (C) 2007-2010 by Will Robertson & Johannes Große
%%
%% Distributable under the LaTeX Project Public License,
%% version 1.3c or higher (your choice). The latest version of
%% this license is at: http://www.latex-project.org/lppl.txt
%%
%% This work is "author-maintained" by Will Robertson.
%%
%% This work consists of the file ifplatform.dtx
%% and the derived files ifplatform.pdf,
%% ifplatform.sty, and
%% ifplatform.ins.
%%
%% End of file `ifplatform.sty'.
|