Révision partielle de formations EOLE

This commit is contained in:
2020-08-05 17:08:33 +02:00
parent a781e00a5a
commit 93be45617e
595 changed files with 19487 additions and 0 deletions

View File

@ -0,0 +1,7 @@
[notes]
### 55
Se faciliter la vie en désactivant la validation des mots de passe et le timeout
### 120
copier la clef publique : scp root@<ip\_zephir>:/etc/ssl/certs/ca\_local.crt /usr/local/share/ca-certificates/ update-ca-certificates
### 199
test des notes standard

175
presentations/CD73/CD73.tex Normal file
View File

@ -0,0 +1,175 @@
\documentclass{beamer}
\usepackage{skb}
\skbconfig[
root = ../../,
rep = content,
pub = presentations,
fig = figures,
sli = slides,
acr = database/acr,
bib = database/bib
]{skblocal.tex}
\skbinput[from=sli]{style/preambule}
\title[]{Modules EOLE}
\subtitle{Formation personnalisée}
\author[Equipe Auteur]{Cadoles}
\institute[Cadoles]{\skbfigure[width=2cm]{cadoles/logo_01.png}}
\date{{\small \today}}
\subject{Talks}
\begin{document}
\skbinput[from=sli]{style/title}
%\skbinput[from=sli]{style/plan}
% Corps de la formation
%\skbinput[from=sli]{}
\section{Introduction}
\subsection{Présentations}
\skbinput[from=sli]{presentation/formateurs/bbohard}
\skbinput[from=sli]{presentation/stagiaires/etvous}
\begin{frame}
\frametitle{À propos de cette formation}
\framesubtitle{Contenu}
Cette formation est une formation personnalisée qui emprunte des éléments de contenu aux formations du PNF du ministère de lÉducation nationale :
\begin{itemize}
\item élements de la formation tronc commun avec laccent mis sur les bases de ladministration dun système GNU/Linux ;
\item éléments de la formation Scribe ;
\item éléments de la formation Seth.
\end{itemize}
En complément, il a été demandé une présentation du logiciel Veyon (\url{https://veyon.io}) et du module Amon.
\end{frame}
\begin{frame}
\frametitle{À propos de cette formation}
\framesubtitle{Objectifs}
Lobjectif de cette formation est de vous préparer à administrer les serveurs EOLE qui sont mis en place dans votre infrastructure.
\end{frame}
\begin{frame}
\frametitle{À propos de cette formation}
\framesubtitle{Objectifs}
Partagez-vous cet objectif ?
Quels objectifs personnels souhaiteriez-vous atteindre en plus ?
\end{frame}
\subsection{EOLE}
\skbinput[from=sli]{modules_EOLE_envole/commun/00-intro}
\skbinput[from=sli]{modules_EOLE_envole/zephir/description}
\skbinput[from=sli]{modules_EOLE_envole/hapy/description}
\skbinput[from=sli]{modules_EOLE_envole/amon/description}
\skbinput[from=sli]{modules_EOLE_envole/sphynx/description}
\skbinput[from=sli]{modules_EOLE_envole/scribe/description}
\skbinput[from=sli]{modules_EOLE_envole/horus/description}
\skbinput[from=sli]{modules_EOLE_envole/seth/description}
\skbinput[from=sli]{modules_EOLE_envole/thot/description}
\skbinput[from=sli]{modules_EOLE_envole/amonecole/description}
\skbinput[from=sli]{modules_EOLE_envole/eclair/description}
\skbinput[from=sli]{modules_EOLE_envole/commun/nouveautes25}
\skbinput[from=sli]{modules_EOLE_envole/commun/nouveautes26}
\skbinput[from=sli]{modules_EOLE_envole/commun/nouveautes27}
\skbinput[from=sli]{modules_EOLE_envole/commun/ecosysteme}
\subsection{Infrastructure de formation}
{\setbeamercolor{background canvas}{bg=TravauxPratiques}
\begin{frame}
\frametitle{}
Logiciel de virtualisation utilisé : VirtualBox.
Liste des images disques à copier :
\begin{itemize}
\item scribe-formation.vdi ;
\item zephir-formation.vdi ;
\item seth1-formation.vdi ;
\item seth2-formation.vdi ;
\item pc1-formation.vdi ;
\item amon-formation.vdi.
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{VirtualBox}
\framesubtitle{Réseau privé hôte}
Les VM utiliseront un réseau privé hôte.
\end{frame}
}
\skbinput[from=sli]{modules_EOLE_envole/zephir/virtualbox}
\skbinput[from=sli]{modules_EOLE_envole/seth/virtualbox}
\skbinput[from=sli]{modules_EOLE_envole/scribe/virtualbox}
\skbinput[from=sli]{modules_EOLE_envole/client_windows/virtualbox}
\skbinput[from=sli]{modules_EOLE_envole/amon/virtualbox}
%\skbinput[from=sli]{pauses/simple}
\section{Tronc commun}
\subsection{Les quatre phases}
\skbinput[from=sli]{modules_EOLE_envole/commun/installation}
\skbinput[from=sli]{modules_EOLE_envole/commun/installation-pratique}
\skbinput[from=sli]{modules_EOLE_envole/commun/configuration}
\skbinput[from=sli]{modules_EOLE_envole/commun/02-gen_config}
\skbinput[from=sli]{modules_EOLE_envole/zephir/configuration-locale-pratique}
\skbinput[from=sli]{modules_EOLE_envole/commun/instance}
\skbinput[from=sli]{modules_EOLE_envole/zephir/instance-pratique}
\skbinput[from=sli]{modules_EOLE_envole/commun/administration}
\subsection{Administration commune}
\skbinput[from=sli]{modules_EOLE_envole/commun/02-instance-reconfigure}
\skbinput[from=sli]{modules_EOLE_envole/commun/03-mise-a-jour}
\skbinput[from=sli]{modules_EOLE_envole/commun/04-diagnose}
\skbinput[from=sli]{modules_EOLE_envole/zephir/diagnose-pratique}
\skbinput[from=sli]{modules_EOLE_envole/tronc-commun-1/06-firewall}
\skbinput[from=sli]{modules_EOLE_envole/tronc-commun-1/06-schedule}
\skbinput[from=sli]{modules_EOLE_envole/tronc-commun-1/06-zpratique}
%\skbinput[from=sli]{modules_EOLE_envole/tronc-commun-1/07-onduleur}
%\skbinput[from=sli]{modules_EOLE_envole/tronc-commun-1/07-onduleur-pratique}
\skbinput[from=sli]{modules_EOLE_envole/tronc-commun-1/08-trouver}
\skbinput[from=sli]{modules_EOLE_envole/zephir/genrpt-pratique}
\subsection{Interfaces d'administration EOLE}
\skbinput[from=sli]{modules_EOLE_envole/tronc-commun-1/30-ead}
\skbinput[from=sli]{modules_EOLE_envole/zephir/ead-pratique}
\skbinput[from=sli]{modules_EOLE_envole/tronc-commun-1/31-interface-semi-graphique}
\skbinput[from=sli]{modules_EOLE_envole/zephir/interface-semi-graphique-pratique}
\subsection{Application Zéphir 1}
\skbinput[from=sli]{modules_EOLE_envole/zephir/concepts}
\skbinput[from=sli]{modules_EOLE_envole/zephir/utilisateurs}
\skbinput[from=sli]{modules_EOLE_envole/zephir/interface}
%\skbinput[from=sli]{modules_EOLE_envole/zephir/interface-parametre-utilisateur}
%\skbinput[from=sli]{modules_EOLE_envole/zephir/interface-etablissement}
\skbinput[from=sli]{modules_EOLE_envole/zephir/utilisateurs-locaux-pratique}
\subsection{GNU/Linux}
\skbinput[from=sli]{modules_EOLE_envole/tronc-commun-1/20-gnu_linux}
\skbinput[from=sli]{modules_EOLE_envole/tronc-commun-1/20-tcpdump-tshark}
\skbinput[from=sli]{modules_EOLE_envole/tronc-commun-1/21-lire-ecrire}
\skbinput[from=sli]{modules_EOLE_envole/tronc-commun-1/22-commande-distance} %faire la configuration du Seth1 à ce moment
\skbinput[from=sli]{modules_EOLE_envole/seth/configuration-locale-pratique}
\skbinput[from=sli]{modules_EOLE_envole/seth/enregistrement-pratique}
\subsection{Application Zéphir 2}
\skbinput[from=sli]{modules_EOLE_envole/tronc-commun-1/11-application-zephir2}
\skbinput[from=sli]{modules_EOLE_envole/scribe/configuration-distante-pratique}
\skbinput[from=sli]{modules_EOLE_envole/scribe/enregistrement-pratique}
\section{Scribe}
\skbinput[from=sli]{modules_EOLE_envole/scribe/01-utilisateur}
\skbinput[from=sli]{modules_EOLE_envole/scribe/31-scripts-user-scribe}
\skbinput[from=sli]{modules_EOLE_envole/scribe/12-machine-ead}
\skbinput[from=sli]{modules_EOLE_envole/scribe/17-corbeille}
\skbinput[from=sli]{modules_EOLE_envole/scribe/20-sauvegarde}
\skbinput[from=sli]{modules_EOLE_envole/scribe/devoirs}
\section{Seth}
\skbinput[from=sli]{modules_EOLE_envole/seth/administrateur}
\skbinput[from=sli]{modules_EOLE_envole/seth/role}
\skbinput[from=sli]{modules_EOLE_envole/seth/dns}
\skbinput[from=sli]{modules_EOLE_envole/seth/sauvegarde}
\skbinput[from=sli]{modules_EOLE_envole/seth/dhcp}
\skbinput[from=sli]{licences/license-cc-by-sa-2.0}
\end{document}

View File

@ -0,0 +1,70 @@
\ProvidesPackage{pdfpcnotes}
% Handling of kv parameters.
% We have the following options, that all take time in the HH:MM format
\RequirePackage{kvoptions}
\SetupKeyvalOptions{
family=PDFPC,
prefix=PDFPC@
}
\DeclareStringOption{duration}
\DeclareStringOption{starttime}
\DeclareStringOption{endtime}
\DeclareStringOption{lastminutes}
\DeclareStringOption{fontsize}
\ProcessKeyvalOptions*
% Small macro to make inserting options easier.
\newcommand\PDFPC@option[2]{
\ifx#2\@empty\else
\immediate\write\pdfpcnotesfile{[#1]}%
\immediate\write\pdfpcnotesfile{#2}%
\fi
}
% create a new file handle
\newwrite\pdfpcnotesfile
% open file on \begin{document}
\AtBeginDocument{%
\immediate\openout\pdfpcnotesfile\jobname.pdfpc\relax
\PDFPC@option{duration}{\PDFPC@duration}
\PDFPC@option{start_time}{\PDFPC@starttime}
\PDFPC@option{end_time}{\PDFPC@endtime}
\PDFPC@option{last_minutes}{\PDFPC@lastminutes}
\PDFPC@option{font_size}{\PDFPC@fontsize}
\immediate\write\pdfpcnotesfile{[notes]}
}
% define a # http://tex.stackexchange.com/a/37757/10327
\begingroup
\catcode`\#=12
\gdef\hashchar{#}%
\endgroup
\def\lastframenumber{0}
% define command \pnote{} that works like note but
% additionally writes notes to file in pdfpc readable format
\newcommand{\pnote}[1]{%
% keep normal notes working
\note{#1}%
% if frame changed - write a new header
\ifdim\theframenumber pt>\lastframenumber pt
\let\lastframenumber\theframenumber
\begingroup
\let\#\hashchar
\immediate\write\pdfpcnotesfile{\#\#\# \theframenumber}%
\endgroup
\fi
% write note to file
\immediate\write\pdfpcnotesfile{\unexpanded{#1}}%
}
% close file on \end{document}
\AtEndDocument{%
\immediate\closeout\pdfpcnotesfile
}

View File

@ -0,0 +1,70 @@
\ProvidesPackage{pdfpcnotes}
% Handling of kv parameters.
% We have the following options, that all take time in the HH:MM format
\RequirePackage{kvoptions}
\SetupKeyvalOptions{
family=PDFPC,
prefix=PDFPC@
}
\DeclareStringOption{duration}
\DeclareStringOption{starttime}
\DeclareStringOption{endtime}
\DeclareStringOption{lastminutes}
\DeclareStringOption{fontsize}
\ProcessKeyvalOptions*
% Small macro to make inserting options easier.
\newcommand\PDFPC@option[2]{
\ifx#2\@empty\else
\immediate\write\pdfpcnotesfile{[#1]}%
\immediate\write\pdfpcnotesfile{#2}%
\fi
}
% create a new file handle
\newwrite\pdfpcnotesfile
% open file on \begin{document}
\AtBeginDocument{%
\immediate\openout\pdfpcnotesfile\jobname.pdfpc\relax
\PDFPC@option{duration}{\PDFPC@duration}
\PDFPC@option{start_time}{\PDFPC@starttime}
\PDFPC@option{end_time}{\PDFPC@endtime}
\PDFPC@option{last_minutes}{\PDFPC@lastminutes}
\PDFPC@option{font_size}{\PDFPC@fontsize}
\immediate\write\pdfpcnotesfile{[notes]}
}
% define a # http://tex.stackexchange.com/a/37757/10327
\begingroup
\catcode`\#=12
\gdef\hashchar{#}%
\endgroup
\def\lastframenumber{0}
% define command \pnote{} that works like note but
% additionally writes notes to file in pdfpc readable format
\newcommand{\pnote}[1]{%
% keep normal notes working
\note{#1}%
% if frame changed - write a new header
\ifdim\theframenumber pt>\lastframenumber pt
\let\lastframenumber\theframenumber
\begingroup
\let\#\hashchar
\immediate\write\pdfpcnotesfile{\#\#\# \theframenumber}%
\endgroup
\fi
% write note to file
\immediate\write\pdfpcnotesfile{\unexpanded{#1}}%
}
% close file on \end{document}
\AtEndDocument{%
\immediate\closeout\pdfpcnotesfile
}

View File

@ -0,0 +1,68 @@
\begin{itemize}
\item Introduction
\begin{itemize}
\item EOLE
\item Spécificités 2.6
\item Spécificités 2.7
\item Description Scribe
\item Description Horus
\end{itemize}
\item Les quatre phases
\begin{itemize}
\item La phase d'installation
\item La phase de configuration
\item La phase d'instanciation
\item La phase d'administration
\end{itemize}
\item La gestion des utilisateurs
\begin{itemize}
\item Les types d'utilisateurs
\item Les quotas
\item Les groupes
\item Les listes de diffusion
\item L'importation des comptes utilisateur
\end{itemize}
\item La configuration du réseau
\item L'intégration des clients au domaine
\begin{itemize}
\item L'intégration au domaine
\item Le client Scribe
\end{itemize}
\item Les outils de diagnostic
\item L'interface d'administration EAD
\item La gestion des profils
\begin{itemize}
\item Profil local
\item Profil itinerant
\item Profil obligatoire
\end{itemize}
\item La configuration des postes clients
\item Les scripts de démarrage
\item La connexion à distance aux postes clients
\item La gestion des imprimantes
\begin{itemize}
\item L'interface de CUPS
\item L'interface simplifiée EAD
\end{itemize}
\item La gestion de la corbeille
\item La gestion des virus
\item La gestion de l'espace de stockage en réseau
\item La gestion des sauvegardes
\begin{itemize}
\item La configuration de la sauvegarde
\item Le mécanisme de restauration
\end{itemize}
\item Les outils de communication
\begin{itemize}
\item Les serveurs de courriel
\item Le serveur de listes de discussion
\item Le serveur de discussion instantanée
\end{itemize}
\item Les scripts administratifs Horus
\item Les services web
\begin{itemize}
\item L'ajout de services
\item Les applications intégrées
\item Envole
\end{itemize}
\end{itemize}

View File

@ -0,0 +1 @@
3 jours.

View File

@ -0,0 +1 @@
L'appropriation des connaissances est contrôlée par des travaux pratiques durant la formation.

View File

@ -0,0 +1,4 @@
\begin{itemize}
\item une salle de formation équipée d'ordinateurs avec infrasctructure de démonstration pour les travaux pratiques ;
\item un formateur avec l'expérience de l'installation et de la maintenance des solutions présentées.
\end{itemize}

View File

@ -0,0 +1 @@
Le participant à la formation est autonome pour l'administration des serveurs et la recherche d'informations en vue de résoudre les incidents.

View File

@ -0,0 +1 @@
Avoir suivi la formation tronc commun.

View File

@ -0,0 +1 @@
La formation vise toute personne ayant en charge des tâches d'administration sur des serveurs équipés des modules EOLE ScribeAD ou EOLE Horus.

View File

@ -0,0 +1,3 @@
[notes]
### 227
test des notes standard

View File

@ -0,0 +1,161 @@
\documentclass{beamer}
\usepackage{skb}
\skbconfig[
root = ../../../,
rep = content,
pub = presentations,
fig = figures,
sli = slides,
acr = database/acr,
bib = database/bib
]{skblocal.tex}
\skbinput[from=sli]{style/preambule}
\title[]{Scribe - Horus}
\subtitle{ministère de lÉducation Nationale}
\author[Equipe Auteur]{Cadoles}
\institute[Cadoles]{\skbfigure[width=2cm]{cadoles/logo_01.png}}
\date{{\small \today}}
\subject{Talks}
\AtBeginSubsection[]
{
\begin{frame}<beamer>
\frametitle{}
%\tableofcontents[currentsection,currentsubsection]
\tableofcontents[current,subsectionstyle=show/shaded/hide]
\end{frame}
}
\begin{document}
\skbinput[from=sli]{style/title}
% Corps de la formation
%\skbinput[from=sli]{}
%\skbinput[from=sli]{pauses/simple}
\section{Introduction}
\subsection{La distribution EOLE}
\skbinput[from=sli]{modules_EOLE_envole/commun/00-intro}
\skbinput[from=sli]{modules_EOLE_envole/commun/ecosysteme}
\skbinput[from=sli]{modules_EOLE_envole/commun/01-nouveaute26}
\skbinput[from=sli]{modules_EOLE_envole/commun/01-nouveaute27}
\skbinput[from=sli]{modules_EOLE_envole/scribeAD/description}
\skbinput[from=sli]{modules_EOLE_envole/horusAD/description}
\subsection{Scribe, Horus dans leur habitat naturel}
\skbinput[from=sli]{modules_EOLE_envole/commun/infrastructure-type-etablissement}
\section{Tronc commun}
\subsection{Les quatre phases}
\skbinput[from=sli]{modules_EOLE_envole/commun/02-quatre_phases}
\skbinput[from=sli]{modules_EOLE_envole/commun/02-gen_config}
\skbinput[from=sli]{modules_EOLE_envole/commun/02-quatre_phases-pratique}
\subsection{Ladministration courante}
\skbinput[from=sli]{modules_EOLE_envole/commun/02-instance-reconfigure}
\skbinput[from=sli]{modules_EOLE_envole/commun/03-mise-a-jour}
\skbinput[from=sli]{modules_EOLE_envole/commun/04-diagnose}
\skbinput[from=sli]{modules_EOLE_envole/commun/04-diagnose-pratique}
%\skbinput[from=sli]{modules_EOLE_envole/commun/administration/firewall}
%\skbinput[from=sli]{modules_EOLE_envole/commun/administration/schedule}
%\skbinput[from=sli]{modules_EOLE_envole/commun/administration/onduleur}
%\subsection{Les interfaces dadministration}
%\skbinput[from=sli]{modules_EOLE_envole/commun/administration/ncurse/description}
%\skbinput[from=sli]{modules_EOLE_envole/commun/administration/ead/description}
%\skbinput[from=sli]{modules_EOLE_envole/commun/administration/ead/connexion}
%\skbinput[from=sli]{modules_EOLE_envole/commun/administration/ead/fonctions-basiques}
%\skbinput[from=sli]{modules_EOLE_envole/commun/administration/ead/gestion-roles}
\section{La gestion du domaine}
\subsection{La gestion des utilisateurs}
\skbinput[from=sli]{modules_EOLE_envole/scribeAD/utilisateurs}
\skbinput[from=sli]{modules_EOLE_envole/scribeAD/script-user-scribe}
\skbinput[from=sli]{modules_EOLE_envole/scribeAD/utilisateurs-pratique}
\skbinput[from=sli]{modules_EOLE_envole/scribeAD/edition-groupee-utilisateurs}
\skbinput[from=sli]{modules_EOLE_envole/scribeAD/edition-groupee-utilisateurs-pratique}
\skbinput[from=sli]{modules_EOLE_envole/scribeAD/importation-utilisateurs}
\skbinput[from=sli]{modules_EOLE_envole/scribeAD/importation-utilisateurs-pratique}
%\skbinput[from=sli]{pauses/formalites_administratives}
\skbinput[from=sli]{pauses/simple}
\skbinput[from=sli]{modules_EOLE_envole/scribeAD/purge-utilisateurs}
\skbinput[from=sli]{modules_EOLE_envole/scribeAD/purge-utilisateurs-pratique}
\subsection{La gestion des machines et sessions}
\skbinput[from=sli]{modules_EOLE_envole/scribeAD/integration-poste-client}
\skbinput[from=sli]{modules_EOLE_envole/scribeAD/integration-poste-client-pratique}
\skbinput[from=sli]{modules_EOLE_envole/scribeAD/client-scribe-defunct}
\skbinput[from=sli]{modules_EOLE_envole/scribeAD/gestion-machines}
\skbinput[from=sli]{modules_EOLE_envole/scribeAD/machine-diagnostique}
\skbinput[from=sli]{modules_EOLE_envole/scribeAD/machine-diagnostique-pratique}
\skbinput[from=sli]{modules_EOLE_envole/scribeAD/machine-ead}
\skbinput[from=sli]{modules_EOLE_envole/scribeAD/machine-ead-pratique}
\skbinput[from=sli]{modules_EOLE_envole/scribeAD/machine-profils}
\skbinput[from=sli]{modules_EOLE_envole/scribeAD/esu}
\skbinput[from=sli]{modules_EOLE_envole/scribeAD/esu-diagnostic}
\skbinput[from=sli]{modules_EOLE_envole/scribeAD/eop}
\skbinput[from=sli]{modules_EOLE_envole/scribeAD/eop-pratique}
\skbinput[from=sli]{modules_EOLE_envole/scribeAD/gpo}
\skbinput[from=sli]{modules_EOLE_envole/scribeAD/gpo-pratique}
\skbinput[from=sli]{modules_EOLE_envole/scribeAD/veyon}
\skbinput[from=sli]{modules_EOLE_envole/scribeAD/veyon-pratique}
\skbinput[from=sli]{modules_EOLE_envole/scribeAD/client-salt}
\skbinput[from=sli]{modules_EOLE_envole/scribeAD/client-salt-pratique}
\skbinput[from=sli]{modules_EOLE_envole/scribeAD/script-scribe}
\skbinput[from=sli]{modules_EOLE_envole/scribeAD/script-scribe-pratique}
\section{La sauvegarde-restauration}
\subsection{La sauvegarde}
\skbinput[from=sli]{modules_EOLE_envole/commun/sauvegarde/description}
\skbinput[from=sli]{modules_EOLE_envole/commun/sauvegarde/configuration}
\skbinput[from=sli]{modules_EOLE_envole/commun/sauvegarde/resolution_problemes}
\skbinput[from=sli]{modules_EOLE_envole/commun/sauvegarde/sauvegarde-pratique}
\subsection{La restauration}
\skbinput[from=sli]{modules_EOLE_envole/commun/sauvegarde/restauration}
\skbinput[from=sli]{modules_EOLE_envole/commun/sauvegarde/restauration-pratique}
\subsection{Les interfaces utilisateurs}
\skbinput[from=sli]{modules_EOLE_envole/commun/sauvegarde/ead2}
\skbinput[from=sli]{modules_EOLE_envole/commun/sauvegarde/ead3}
\skbinput[from=sli]{modules_EOLE_envole/commun/sauvegarde/bconsole}
\skbinput[from=sli]{modules_EOLE_envole/commun/sauvegarde/webui}
%\skbinput[from=sli]{pauses/formalites_administratives}
\skbinput[from=sli]{pauses/simple}
\section{Les services}
\subsection{Les services du Scribe}
\skbinput[from=sli]{modules_EOLE_envole/scribeAD/imprimantes}
\skbinput[from=sli]{modules_EOLE_envole/scribeAD/corbeille}
\skbinput[from=sli]{modules_EOLE_envole/scribeAD/corbeille-pratique}
\skbinput[from=sli]{modules_EOLE_envole/scribeAD/virus}
\skbinput[from=sli]{modules_EOLE_envole/scribeAD/virus-pratique}
\skbinput[from=sli]{modules_EOLE_envole/scribeAD/ftp}
\skbinput[from=sli]{modules_EOLE_envole/scribeAD/ftp-pratique}
\skbinput[from=sli]{modules_EOLE_envole/scribeAD/communication}
\skbinput[from=sli]{modules_EOLE_envole/scribeAD/communication-pratique}
\subsection{Les services de lHorus}
\skbinput[from=sli]{modules_EOLE_envole/horusAD/script-horus}
\skbinput[from=sli]{modules_EOLE_envole/horusAD/script-horus-pratique}
\skbinput[from=sli]{modules_EOLE_envole/horusAD/scripts-administratifs}
\subsection{Les services web}
\skbinput[from=sli]{modules_EOLE_envole/scribeAD/application-web}
\skbinput[from=sli]{modules_EOLE_envole/scribeAD/application-web-pratique}
\skbinput[from=sli]{licences/license-cc-by-sa-2.0}
\end{document}

View File

@ -0,0 +1 @@
3 jours.

View File

@ -0,0 +1 @@
L'appropriation des connaissances est contrôlée par des travaux pratiques durant la formation.

View File

@ -0,0 +1,4 @@
\begin{itemize}
\item une salle de formation équipée d'ordinateurs avec infrasctructure de démonstration pour les travaux pratiques ;
\item un formateur avec l'expérience de l'installation et de la maintenance des solutions présentées.
\end{itemize}

View File

@ -0,0 +1 @@
Le participant à la formation est autonome pour l'administration des serveurs et la recherche d'informations en vue de résoudre les incidents.

View File

@ -0,0 +1 @@
Avoir suivi la formation tronc commun.

View File

@ -0,0 +1 @@
La formation vise toute personne ayant en charge des tâches d'administration sur des serveurs équipés des modules EOLE ScribeAD ou EOLE Horus.

View File

@ -0,0 +1,57 @@
\documentclass{article}
\usepackage{skb}
\skbconfig[
root = ../../,
rep = content,
pub = presentations,
fig = figures,
sli = slides,
acr = database/acr,
bib = database/bib
]{skblocal.tex}
\skbinput[from=rep]{style/preambule-questionnaire}
\newcommand{\departement}{Cadoles}
\newcommand{\numeroversion}{0.1}
\newcommand{\adresse}{29 bis, rue de lArquebuse}
\newcommand{\codepostal}{21000}
\newcommand{\ville}{Dijon}
\newcommand{\telephone}{03 73 27 02 86}
\begin{document}
\title{Questionnaire à lattention du personnel éducatif}
\author{Cadoles}
\date{{\small \today}}
\maketitle
\skbinput[from=rep]{style/title}
% Corps du questionnaire
\begin{Form}
%\skbinput[from=rep]{}
Ce questionnaire fait partie dune enquête plus large ayant pour but daffiner la connaissance des rapports des différentes catégories dutilisateurs aux outils numériques mis à leur disposition par la collectivité et les établissements scolaires.
Il est destiné au personnel éducatif.
\section{Les services numériques}
\skbinput[from=rep,level=subsection]{questions/services/liste_service_utilises}
\skbinput[from=rep,level=subsection]{questions/services/acces_service_depuis_ou}
\skbinput[from=rep,level=subsection]{questions/services/authentification_services}
\skbinput[from=rep,level=subsection]{questions/services/degre_satisfaction}
\skbinput[from=rep,level=subsection]{questions/equipement/equipement_utilises}
\skbinput[from=rep,level=subsection]{questions/equipement/equipement_personnel_utilises}
\skbinput[from=rep,level=subsection]{questions/enseignement/lieux_enseignement}
- dans combien détablissements intervenez-vous, dans combien de matière, combien de classes
- menez-vous des activités inter-établissements
- transversalité des outils numériques entre établissements
- utilisation des imprimantes dans différents établissements
- est-ce que les élèves doivent rendre des devoirs sous une forme dématérialisée
- comment sont faits les échanges avec les responsables légaux
- comment sont faits les échanges avec les collègues (besoin doutils collaboratifs)
\end{Form}
\end{document}

View File

@ -0,0 +1,52 @@
\documentclass{beamer}
\usepackage{skb}
\skbconfig[
root = ../../../,
rep = content,
pub = presentations,
fig = figures,
sli = slides,
acr = database/acr,
bib = database/bib
]{skblocal.tex}
\skbinput[from=rep]{style/preambule}
\title[]{SIG libres pour les collectivités}
\subtitle{XXX CLIENT XXX}
\author[Equipe Auteur]{Cadoles}
\institute[Cadoles]{\includegraphics[width=2cm]{beamer-skel/img/logo-cadoles-01.png}}
\date{{\small \today}}
\subject{Talks}
\AtBeginSubsection[]
{
\begin{frame}<beamer>
\frametitle{}
\tableofcontents[currentsection,currentsubsection]
\end{frame}
}
\logo{
% \includegraphics[width=1cm]{beamer-skel/img/logo-ecologie.png}~
\hspace{120pt}
\includegraphics[width=2cm]{beamer-skel/img/logo-cadoles-01.png}~
\hspace{113pt}
\includegraphics[width=1cm]{beamer-skel/img/logo_en.jpg}~
}
\begin{document}
\skbinput[from=rep]{style/title.tex}
% Corps de la formation
\skbinput[from=rep]{style/license.tex}
\end{document}

View File

@ -0,0 +1,69 @@
\documentclass{article}
\usepackage{skb}
\skbconfig[
root = ../../,
rep = content,
pub = presentations,
fig = figures,
sli = slides,
acr = database/acr,
bib = database/bib
]{skblocal.tex}
\skbinput[from=rep]{style/preambule-article}
\newcommand{\departement}{Cadoles Formations}
\newcommand{\numeroversion}{0.1}
\newcommand{\adresse}{29 bis, rue de lArquebuse}
\newcommand{\codepostal}{21000}
\newcommand{\ville}{Dijon}
\newcommand{\telephone}{03 73 27 02 86}
\begin{document}
\title{La procédure dinstallation des applications mutualisées Envole}
\author{Cadoles}
\date{{\small \today}}
\maketitle
% Corps de la formation
%\skbinput[from=rep]{}
\skbinput[from=rep,level=section]{modules_eole_envole/envole/applications}
\skbinput[from=rep,level=section]{modules_eole_envole/envole/applications/moodle}
\skbinput[from=rep,level=section]{modules_eole_envole/envole/applications/balado}
\skbinput[from=rep,level=section]{modules_eole_envole/envole/applications/envole-connecteur}
\skbinput[from=rep,level=section]{modules_eole_envole/envole/applications/gepi}
\skbinput[from=rep,level=section]{modules_eole_envole/envole/applications/grr}
\skbinput[from=rep,level=section]{modules_eole_envole/envole/applications/sacoche}
\skbinput[from=rep,level=section]{modules_eole_envole/envole/applications/eop}
\skbinput[from=rep,level=section]{modules_eole_envole/envole/applications/eoe}
\skbinput[from=rep,level=section]{modules_eole_envole/envole/applications/cdt}
\skbinput[from=rep,level=section]{modules_eole_envole/envole/applications/wordpress}
\skbinput[from=rep,level=section]{modules_eole_envole/envole/applications/dokuwiki}
\skbinput[from=rep,level=section]{modules_eole_envole/envole/applications/fluxbb}
\skbinput[from=rep,level=section]{modules_eole_envole/envole/applications/piwigo}
\skbinput[from=rep,level=section]{modules_eole_envole/envole/applications/mahara}
\skbinput[from=rep,level=section]{modules_eole_envole/envole/applications/nextcloud}
\skbinput[from=rep,level=section]{modules_eole_envole/envole/applications/roundcube}
\skbinput[from=rep,level=section]{modules_eole_envole/envole/applications/etherhome}
\skbinput[from=rep,level=section]{modules_eole_envole/envole/applications/etherpad}
\skbinput[from=rep,level=section]{modules_eole_envole/envole/applications/ethercalc}
\skbinput[from=rep,level=section]{modules_eole_envole/envole/applications/etherdraw}
\skbinput[from=rep,level=section]{modules_eole_envole/envole/applications/pydio}
\skbinput[from=rep,level=section]{modules_eole_envole/envole/applications/limesurvey}
\skbinput[from=rep,level=section]{modules_eole_envole/envole/applications/opensondage}
\skbinput[from=rep,level=section]{modules_eole_envole/envole/applications/mindmaps}
\skbinput[from=rep,level=section]{modules_eole_envole/envole/applications/kanboard}
\skbinput[from=rep,level=section]{modules_eole_envole/envole/applications/scrumblr}
\skbinput[from=rep,level=section]{modules_eole_envole/envole/applications/piwik}
\skbinput[from=rep,level=section]{modules_eole_envole/envole/applications/phpldapadmin}
\skbinput[from=rep,level=section]{modules_eole_envole/envole/applications/glpi}
\skbinput[from=rep,level=section]{licences/license-cc-by-sa-2.0}
\end{document}

View File

@ -0,0 +1,43 @@
\documentclass{article}
\usepackage{skb}
\skbconfig[
root = ../../,
rep = content,
pub = presentations,
fig = figures,
sli = slides,
acr = database/acr,
bib = database/bib
]{skblocal.tex}
\skbinput[from=rep]{style/preambule-article}
\newcommand{\departement}{Cadoles Formations}
\newcommand{\numeroversion}{0.1}
\newcommand{\adresse}{29 bis, rue de lArquebuse}
\newcommand{\codepostal}{21000}
\newcommand{\ville}{Dijon}
\newcommand{\telephone}{03 73 27 02 86}
\begin{document}
\title{Les attributs calculés de eole-SSO}
\author{Cadoles}
\date{{\small \today}}
\maketitle
% Corps de la formation
%\skbinput[from=rep]{}
\skbinput[from=rep,level=section]{modules_eole_envole/eolesso/attributs/attributs-calcules}
\skbinput[from=rep,level=section]{modules_eole_envole/eolesso/attributs/filtrage}
\skbinput[from=rep,level=section]{modules_eole_envole/eolesso/attributs/filtre-attributs}
\skbinput[from=rep,level=section]{licences/license-cc-by-sa-2.0}
\end{document}

View File

@ -0,0 +1,44 @@
\documentclass{article}
\usepackage{skb}
\skbconfig[
root = ../../,
rep = content,
pub = presentations,
fig = figures,
sli = slides,
acr = database/acr,
bib = database/bib
]{skblocal.tex}
\skbinput[from=rep]{style/preambule-article}
\newcommand{\departement}{Cadoles Formations}
\newcommand{\numeroversion}{0.1}
\newcommand{\adresse}{29 bis, rue de lArquebuse}
\newcommand{\codepostal}{21000}
\newcommand{\ville}{Dijon}
\newcommand{\telephone}{03 73 27 02 86}
\begin{document}
\title{Lalimentation de lannuaire en ligne de commande}
\author{Cadoles}
\date{{\small \today}}
\maketitle
% Corps de la formation
%\skbinput[from=rep]{}
\skbinput[from=rep,level=section]{modules_eole_envole/scribe/backend}
\skbinput[from=rep,level=section]{modules_eole_envole/scribe/backend/creation-eleve}
\skbinput[from=rep,level=section]{modules_eole_envole/scribe/backend/creation-groupe}
\skbinput[from=rep,level=section]{modules_eole_envole/scribe/backend/creation-prof}
\skbinput[from=rep,level=section]{modules_eole_envole/scribe/backend/creation-administratif}
\skbinput[from=rep,level=section]{licences/license-cc-by-sa-2.0}
\end{document}

View File

@ -0,0 +1,44 @@
\documentclass{article}
\usepackage{skb}
\skbconfig[
root = ../../,
rep = content,
pub = presentations,
fig = figures,
sli = slides,
acr = database/acr,
bib = database/bib
]{skblocal.tex}
\skbinput[from=rep]{style/preambule-article}
\newcommand{\departement}{Cadoles Formations}
\newcommand{\numeroversion}{0.1}
\newcommand{\adresse}{29 bis, rue de lArquebuse}
\newcommand{\codepostal}{21000}
\newcommand{\ville}{Dijon}
\newcommand{\telephone}{03 73 27 02 86}
\begin{document}
\title{Construire son ENT Envole}
\author{Cadoles}
\date{{\small \today}}
\maketitle
% Corps de la formation
%\skbinput[from=rep]{}
\skbinput[from=rep,level=section]{modules_eole_envole/envole/eportail}
\skbinput[from=rep,level=section]{modules_eole_envole/envole/eportail/filtres}
\skbinput[from=rep,level=section]{modules_eole_envole/envole/eportail/type-ressources}
\skbinput[from=rep,level=section]{modules_eole_envole/envole/eportail/profils}
\skbinput[from=rep,level=section]{licences/license-cc-by-sa-2.0}
\end{document}

View File

@ -0,0 +1,43 @@
\documentclass{article}
\usepackage{skb}
\skbconfig[
root = ../../,
rep = content,
pub = presentations,
fig = figures,
sli = slides,
acr = database/acr,
bib = database/bib
]{skblocal.tex}
\skbinput[from=rep]{style/preambule-article}
\newcommand{\departement}{Cadoles Formations}
\newcommand{\numeroversion}{0.1}
\newcommand{\adresse}{29 bis, rue de lArquebuse}
\newcommand{\codepostal}{21000}
\newcommand{\ville}{Dijon}
\newcommand{\telephone}{03 73 27 02 86}
\begin{document}
\title{Lalimentation de lannuaire via lEAD2}
\author{Cadoles}
\date{{\small \today}}
\maketitle
% Corps de la formation
%\skbinput[from=rep]{}
\skbinput[from=rep,level=section]{modules_eole_envole/scribe/ead2/gestion-annuaire}
\skbinput[from=rep,level=section]{modules_eole_envole/scribe/ead2/gestion-annuaire/eleve}
\skbinput[from=rep,level=section]{modules_eole_envole/scribe/ead2/gestion-annuaire/groupe}
\skbinput[from=rep,level=section]{licences/license-cc-by-sa-2.0}
\end{document}

View File

@ -0,0 +1,41 @@
\documentclass{article}
\usepackage{skb}
\skbconfig[
root = ../../,
rep = content,
pub = presentations,
fig = figures,
sli = slides,
acr = database/acr,
bib = database/bib
]{skblocal.tex}
\skbinput[from=rep]{style/preambule-article}
\newcommand{\departement}{Cadoles Formations}
\newcommand{\numeroversion}{0.1}
\newcommand{\adresse}{29 bis, rue de lArquebuse}
\newcommand{\codepostal}{21000}
\newcommand{\ville}{Dijon}
\newcommand{\telephone}{03 73 27 02 86}
\begin{document}
\title{Limportation des comptes via lEAD2}
\author{Cadoles}
\date{{\small \today}}
\maketitle
% Corps de la formation
%\skbinput[from=rep]{}
\skbinput[from=rep,level=section]{modules_eole_envole/scribe/ead2/importation}
\skbinput[from=rep,level=section]{licences/license-cc-by-sa-2.0}
\end{document}

View File

@ -0,0 +1,41 @@
\documentclass{article}
\usepackage{skb}
\skbconfig[
root = ../../,
rep = content,
pub = presentations,
fig = figures,
sli = slides,
acr = database/acr,
bib = database/bib
]{skblocal.tex}
\skbinput[from=rep]{style/preambule-article}
\newcommand{\departement}{Cadoles Formations}
\newcommand{\numeroversion}{0.1}
\newcommand{\adresse}{29 bis, rue de lArquebuse}
\newcommand{\codepostal}{21000}
\newcommand{\ville}{Dijon}
\newcommand{\telephone}{03 73 27 02 86}
\begin{document}
\title{La syntaxe des requêtes LDAP}
\author{Cadoles}
\date{{\small \today}}
\maketitle
% Corps de la formation
%\skbinput[from=rep]{}
\skbinput[from=rep,level=section]{outils/ldap/requetes}
\skbinput[from=rep,level=section]{licences/license-cc-by-sa-2.0}
\end{document}

View File

@ -0,0 +1,43 @@
\documentclass{article}
\usepackage{skb}
\skbconfig[
root = ../../,
rep = content,
pub = presentations,
fig = figures,
sli = slides,
acr = database/acr,
bib = database/bib
]{skblocal.tex}
\skbinput[from=rep]{style/preambule-article}
\newcommand{\departement}{Cadoles Formations}
\newcommand{\numeroversion}{0.1}
\newcommand{\adresse}{29 bis, rue de lArquebuse}
\newcommand{\codepostal}{21000}
\newcommand{\ville}{Dijon}
\newcommand{\telephone}{03 73 27 02 86}
\begin{document}
\title{Le schéma LDAP du Scribe}
\author{Cadoles}
\date{{\small \today}}
\maketitle
% Corps de la formation
%\skbinput[from=rep]{}
\skbinput[from=rep,level=section]{modules_eole_envole/scribe/annuaire}
\skbinput[from=rep,level=section]{modules_eole_envole/scribe/annuaire/objets}
\skbinput[from=rep,level=section]{modules_eole_envole/scribe/annuaire/objets/eleve}
\skbinput[from=rep,level=section]{modules_eole_envole/scribe/annuaire/objets/enseignant}
\skbinput[from=rep,level=section]{modules_eole_envole/scribe/annuaire/objets/administratif}
\skbinput[from=rep,level=section]{modules_eole_envole/scribe/annuaire/objets/responsable}
\skbinput[from=rep,level=section]{licences/license-cc-by-sa-2.0}
\end{document}

View File

@ -0,0 +1,213 @@
\documentclass{beamer}
%\usertheme{Madrid}
\setbeamercovered{transparent}
\setcounter{tocdepth}{2}
\usepackage[french]{babel}
%\usepackage[utf8,utf8x]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{xunicode} %Unicode extras!
\usepackage{xltxtra} %Fixes
\setmainfont{CaviarDreams}
\usepackage{multicol}
%\usepackage{colortbtl}
\usepackage{graphicx}
\usepackage{verbatim} % Pour l'insertion de fichier en mode verbatim
\usepackage{ucs}
\usepackage{tabto}
\usepackage{xcolor}
\usepackage{hyperref}
\usepackage{hyperxmp}
\hypersetup{%
colorlinks=true,linkcolor=blue,urlcolor=blue,pdfpagemode=UseNone,
pdftitle={Formation interne TC1},
pdfkeywords={distribution, GNU, linux, eole, éducation, nationale, ubuntu},
pdfauthor={Emmanuel Garette},
pdflang={fr-FR},
pdfcopyright={Copyright © 2011-2014 Cadoles}, % Nécessite XeTeX
pdflicenseurl={http://creativecommons.org/licenses/by-nc-sa/2.0/fr/},
}
%\usecolortheme{crane}
\definecolor{UniBlue}{RGB}{83,121,180}
\definecolor{CleanWhite}{RGB}{255,255,255}
\setbeamercolor{title}{fg=UniBlue}
\setbeamercolor{frametitle}{fg=CleanWhite}
\setbeamercolor{structure}{fg=UniBlue}
\newcommand{\eolesmall}{
\begin{minipage}[c]{0.10\textwidth}
\includegraphics[width=1cm]{beamer-skel/img/logo-eole.png}
\end{minipage}
}
\newcommand{\eolebig}{\includegraphics[width=2cm]{beamer-skel/img/logo-eole.png}}
\newcommand{\eolefull}{\includegraphics{beamer-skel/img/logo-eole.png}}
%\setmonofont[Scale=0.86]{Andale Mono}
%\usepackage{colortab}
\setbeamertemplate{background}{\includegraphics[width=128mm]{beamer-skel/img/banner01.png}}
\title[]{Formation interne tronc commun 1}
\subtitle{Formation interne}
\author[Equipe Auteur]{Vincent FEBVRE}
\institute[Cadoles]{\includegraphics[width=2cm]{beamer-skel/img/logo-cadoles-01.png}}
\date{{\small \today}}
\subject{Talks}
\AtBeginSubsection[]
{
\begin{frame}<beamer>
\frametitle{}
\tableofcontents[currentsection,currentsubsection]
\end{frame}
}
\logo{
% \includegraphics[width=1cm]{beamer-skel/img/logo-ecologie.png}~
\hspace{120pt}
\includegraphics[width=2cm]{beamer-skel/img/logo-cadoles-01.png}~
\hspace{113pt}
\includegraphics[width=1cm]{beamer-skel/img/logo_en.jpg}~
}
\begin{document}
% Page de titre
\begin{frame}
\titlepage
\end{frame}
\section{Introduction}
\begin{frame}{Plan}
\begin{columns}[t]
\begin{column}{5cm}
\tableofcontents[sections={1-6},currentsection, hideothersubsections]
\end{column}
\begin{column}{5cm}
\tableofcontents[sections={7-12},currentsection,hideothersubsections]
\end{column}
\end{columns}
\end{frame}
\include{modules_EOLE_envole/commun/00-intro}
\include{modules_EOLE_envole/commun/01-nouveaute23}
\include{modules_EOLE_envole/amon/00-description}
\include{modules_EOLE_envole/sphynx/00-description}
\include{modules_EOLE_envole/scribe/00-description}
\include{modules_EOLE_envole/horus/00-description}
\include{modules_EOLE_envole/tronc-commun-1/00-panorama-module}
\section{Les quatre phases}
\begin{frame}{Plan}
\begin{columns}[t]
\begin{column}{5cm}
\tableofcontents[sections={1-6},currentsection, hideothersubsections]
\end{column}
\begin{column}{5cm}
\tableofcontents[sections={7-12},currentsection,hideothersubsections]
\end{column}
\end{columns}
\end{frame}
\include{modules_EOLE_envole/commun/02-quatre_phases}
\include{modules_EOLE_envole/scribe/00-virtualbox}
\include{modules_EOLE_envole/commun/02-quatre_phases-pratique}
\include{modules_EOLE_envole/tronc-commun-1/01-config-texte}
\section{Administration commune}
\begin{frame}{Plan}
\begin{columns}[t]
\begin{column}{5cm}
\tableofcontents[sections={1-6},currentsection, hideothersubsections]
\end{column}
\begin{column}{5cm}
\tableofcontents[sections={7-12},currentsection,hideothersubsections]
\end{column}
\end{columns}
\end{frame}
\include{modules_EOLE_envole/commun/02-instance-reconfigure}
\include{modules_EOLE_envole/commun/03-mise-a-jour}
\include{modules_EOLE_envole/commun/04-diagnose}
\include{modules_EOLE_envole/commun/04-diagnose-pratique}
\include{modules_EOLE_envole/tronc-commun-1/05-conteneurs}
\include{modules_EOLE_envole/tronc-commun-1/05-conteneurs-pratique}
\include{modules_EOLE_envole/tronc-commun-1/06-firewall}
\include{modules_EOLE_envole/tronc-commun-1/06-schedule}
\include{modules_EOLE_envole/tronc-commun-1/06-zpratique}
\include{modules_EOLE_envole/tronc-commun-1/07-onduleur}
\include{modules_EOLE_envole/tronc-commun-1/07-onduleur-pratique}
\include{modules_EOLE_envole/tronc-commun-1/08-trouver}
\section{Interfaces d'administration EOLE}
\begin{frame}{Plan}
\begin{columns}[t]
\begin{column}{5cm}
\tableofcontents[sections={1-6},currentsection, hideothersubsections]
\end{column}
\begin{column}{5cm}
\tableofcontents[sections={7-12},currentsection,hideothersubsections]
\end{column}
\end{columns}
\end{frame}
\include{modules_EOLE_envole/tronc-commun-1/30-ead}
\include{modules_EOLE_envole/tronc-commun-1/31-interface-semi-graphique}
\section{GNU/Linux}
\begin{frame}{Plan}
\begin{columns}[t]
\begin{column}{5cm}
\tableofcontents[sections={1-6},currentsection, hideothersubsections]
\end{column}
\begin{column}{5cm}
\tableofcontents[sections={7-12},currentsection,hideothersubsections]
\end{column}
\end{columns}
\end{frame}
\include{modules_EOLE_envole/tronc-commun-1/20-gnu_linux}
\include{modules_EOLE_envole/tronc-commun-1/21-lire-ecrire}
\include{modules_EOLE_envole/tronc-commun-1/22-commande-distance}
\section{Application Zéphir 1}
\begin{frame}{Plan}
\begin{columns}[t]
\begin{column}{5cm}
\tableofcontents[sections={1-6},currentsection, hideothersubsections]
\end{column}
\begin{column}{5cm}
\tableofcontents[sections={7-12},currentsection,hideothersubsections]
\end{column}
\end{columns}
\end{frame}
\include{modules_EOLE_envole/tronc-commun-1/10-application-zephir}
\section{Application Zéphir 2}
\begin{frame}{Plan}
\begin{columns}[t]
\begin{column}{5cm}
\tableofcontents[sections={1-6},currentsection, hideothersubsections]
\end{column}
\begin{column}{5cm}
\tableofcontents[sections={7-12},currentsection,hideothersubsections]
\end{column}
\end{columns}
\end{frame}
\include{modules_EOLE_envole/tronc-commun-1/11-application-zephir2}
\subject{Talks}
\begin{frame}
\frametitle{Licence}
Cette œuvre est mise à disposition sous licence \href{http://creativecommons.org/licenses/by-nc-sa/2.0/fr/}{\textsc{cc-by-nc-sa-2.0}}
\begin{itemize}
\item Attribution
\item Pas dUtilisation Commerciale
\item Partage dans les Mêmes Conditions 2.0
\item France
\end{itemize}
Pour voir une copie de cette licence, visitez
\href{http://creativecommons.org/licenses/by-nc-sa/2.0/fr/}{http://creativecommons.org/licenses/by-nc-sa/2.0/fr/}
ou écrivez à Creative Commons, 444 Castro Street, Suite 900,
Mountain View, California, 94041, USA.
\end{frame}
\end{document}

View File

@ -0,0 +1,220 @@
\documentclass{beamer}
%\usertheme{Madrid}
\setbeamercovered{transparent}
\setcounter{tocdepth}{2}
\usepackage[french]{babel}
%\usepackage[utf8,utf8x]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{xunicode} %Unicode extras!
\usepackage{xltxtra} %Fixes
\setmainfont{CaviarDreams}
\usepackage{multicol}
%\usepackage{colortbtl}
\usepackage{graphicx}
\usepackage{verbatim} % Pour l'insertion de fichier en mode verbatim
\usepackage{ucs}
\usepackage{tabto}
\usepackage{xcolor}
\usepackage{hyperref}
\usepackage{hyperxmp}
\hypersetup{%
colorlinks=true,linkcolor=blue,urlcolor=blue,pdfpagemode=UseNone,
pdftitle={Tronc commun 2},
pdfkeywords={distribution, GNU, linux, eole, éducation, nationale, ubuntu},
pdfauthor={Philippe Caseiro},
pdflang={fr-FR},
pdfcopyright={Copyright © 2013 Cadoles}, % Nécessite XeTeX
pdflicenseurl={http://creativecommons.org/licenses/by-nc-sa/2.0/fr/},
}
%\usecolortheme{crane}
\definecolor{UniBlue}{RGB}{83,121,180}
\definecolor{CleanWhite}{RGB}{255,255,255}
\setbeamercolor{title}{fg=UniBlue}
\setbeamercolor{frametitle}{fg=CleanWhite}
\setbeamercolor{structure}{fg=UniBlue}
\newcommand{\eolesmall}{
\begin{minipage}[c]{0.10\textwidth}
\includegraphics[width=1cm]{beamer-skel/img/logo-eole.png}
\end{minipage}
}
\newcommand{\eolebig}{\includegraphics[width=2cm]{beamer-skel/img/logo-eole.png}}
\newcommand{\eolefull}{\includegraphics{beamer-skel/img/logo-eole.png}}
%\setmonofont[Scale=0.86]{Andale Mono}
%\usepackage{colortab}
\setbeamertemplate{background}{\includegraphics[width=128mm]{beamer-skel/img/banner01.png}}
\title[]{Formation personnalisée}
\subtitle{Académie de la Martinique}
\author[Equipe Auteur]{Philippe Caseiro}
\institute[Cadoles]{\includegraphics[width=2cm]{beamer-skel/img/logo-cadoles-01.png}}
\date{{\small \today}}
\subject{Talks}
\AtBeginSubsection[]
{
\begin{frame}<beamer>
\frametitle{}
\tableofcontents[currentsection,currentsubsection]
\end{frame}
}
\logo{
% \includegraphics[width=1cm]{beamer-skel/img/logo-ecologie.png}~
\hspace{120pt}
\includegraphics[width=2cm]{beamer-skel/img/logo-cadoles-01.png}~
\hspace{113pt}
\includegraphics[width=1cm]{beamer-skel/img/logo_en.jpg}~
}
\begin{document}
% Page de titre
\begin{frame}
\titlepage
\end{frame}
\section{Introduction}
\begin{frame}{Plan}
\begin{columns}[t]
\begin{column}{5cm}
\tableofcontents[sections={1-6},currentsection, hideothersubsections]
\end{column}
\begin{column}{5cm}
\tableofcontents[sections={7-12},currentsection,hideothersubsections]
\end{column}
\end{columns}
\end{frame}
%Intro
\include{modules_EOLE_envole/commun/00-intro}
\include{modules_EOLE_envole/commun/01-nouveaute23}
%méta-paquet EOLE description
\include{modules_EOLE_envole/amon/00-description}
\include{modules_EOLE_envole/sphynx/00-description}
\include{modules_EOLE_envole/scribe/00-description}
\include{modules_EOLE_envole/horus/00-description}
\include{modules_EOLE_envole/tronc-commun-1/00-panorama-module}
%méta-paquet EOLE install
\begin{frame}
\frametitle{Les différents méta-paquets EOLE}
\begin{itemize}
\item amon-pkg ;
\item scribe-pkg ;
\item amonecole-pkg ;
\item horus-pkg ;
\item seshat-pkg ;
\item sphynx-pkg ;
\item zephir-pkg.
\end{itemize}
\end{frame}
%Les conteneurs intro (voir suite dans personnalisation creole
\include{modules_EOLE_envole/tronc-commun-1/05-conteneurs}
\include{modules_EOLE_envole/tronc-commun-1/05-conteneurs-pratique}
\section{Personnalisation du serveur}
\begin{frame}{Plan}
\begin{columns}[t]
\begin{column}{5cm}
\tableofcontents[sections={1-6},currentsection, hideothersubsections]
\end{column}
\begin{column}{5cm}
\tableofcontents[sections={7-12},currentsection,hideothersubsections]
\end{column}
\end{columns}
\end{frame}
\include{modules_EOLE_envole/tronc-commun-2/01-personnalisation-creole}
\include{modules_EOLE_envole/tronc-commun-2/01-personnalisation-creole2}
%\section{Application Zéphir}
%\begin{frame}{Plan}
% \begin{columns}[t]
% \begin{column}{5cm}
% \tableofcontents[sections={1-6},currentsection, hideothersubsections]
% \end{column}
% \begin{column}{5cm}
% \tableofcontents[sections={7-12},currentsection,hideothersubsections]
% \end{column}
% \end{columns}
%\end{frame}
%\include{modules_EOLE_envole/tronc-commun-2/02-zephir}
%\include{modules_EOLE_envole/tronc-commun-2/03-zephir_script}
\section{API Python}
\begin{frame}{Plan}
\begin{columns}[t]
\begin{column}{5cm}
\tableofcontents[sections={1-6},currentsection, hideothersubsections]
\end{column}
\begin{column}{5cm}
\tableofcontents[sections={7-12},currentsection,hideothersubsections]
\end{column}
\end{columns}
\end{frame}
\include{modules_EOLE_envole/tronc-commun-2/20-api}
\section{API Bash}
\begin{frame}{Plan}
\begin{columns}[t]
\begin{column}{5cm}
\tableofcontents[sections={1-6},currentsection, hideothersubsections]
\end{column}
\begin{column}{5cm}
\tableofcontents[sections={7-12},currentsection,hideothersubsections]
\end{column}
\end{columns}
\end{frame}
\include{modules_EOLE_envole/tronc-commun-2/30-api_bash}
\section{Administration avancée}
\begin{frame}{Plan}
\begin{columns}[t]
\begin{column}{5cm}
\tableofcontents[sections={1-6},currentsection, hideothersubsections]
\end{column}
\begin{column}{5cm}
\tableofcontents[sections={7-12},currentsection,hideothersubsections]
\end{column}
\end{columns}
\end{frame}
\include{modules_EOLE_envole/tronc-commun-2/04-diagnose}
\include{modules_EOLE_envole/tronc-commun-2/05-script-instance-reconfigure}
\include{modules_EOLE_envole/tronc-commun-2/06-montage-conteneur}
\include{modules_EOLE_envole/tronc-commun-2/07-eole-firewall}
\include{modules_EOLE_envole/tronc-commun-2/08-schedule}
\include{modules_EOLE_envole/tronc-commun-2/09-host}
\include{modules_EOLE_envole/tronc-commun-2/11-mysql}
\include{modules_EOLE_envole/tronc-commun-2/12-interface}
\include{modules_EOLE_envole/tronc-commun-2/13-disknod}
\include{modules_EOLE_envole/tronc-commun-2/14-sso}
\include{modules_EOLE_envole/tronc-commun-2/15-script-ead}
\include{modules_EOLE_envole/tronc-commun-2/16-sauvegarde}
\include{modules_EOLE_envole/tronc-commun-2/17-conteneur_groupe_conteneur}
\include{modules_EOLE_envole/tronc-commun-2/18-cert}
\include{modules_EOLE_envole/scribe/31-scripts-user-scribe}
\subject{Talks}
\begin{frame}
\frametitle{Licence}
Cette œuvre est mise à disposition sous licence \href{http://creativecommons.org/licenses/by-nc-sa/2.0/fr/}{\textsc{cc-by-nc-sa-2.0}}
\begin{itemize}
\item Attribution
\item Pas dUtilisation Commerciale
\item Partage dans les Mêmes Conditions 2.0
\item France
\end{itemize}
Pour voir une copie de cette licence, visitez
\href{http://creativecommons.org/licenses/by-nc-sa/2.0/fr/}{http://creativecommons.org/licenses/by-nc-sa/2.0/fr/}
ou écrivez à Creative Commons, 444 Castro Street, Suite 900,
Mountain View, California, 94041, USA.
\end{frame}
\end{document}

View File

@ -0,0 +1,218 @@
\documentclass{beamer}
%\usertheme{Madrid}
\setbeamercovered{transparent}
\setcounter{tocdepth}{2}
\usepackage[french]{babel}
%\usepackage[utf8,utf8x]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{xunicode} %Unicode extras!
\usepackage{xltxtra} %Fixes
\setmainfont{CaviarDreams}
\usepackage{multicol}
%\usepackage{colortbtl}
\usepackage{graphicx}
\usepackage{verbatim} % Pour l'insertion de fichier en mode verbatim
\usepackage{ucs}
\usepackage{tabto}
\usepackage{xcolor}
\usepackage{hyperref}
\usepackage{hyperxmp}
\hypersetup{%
colorlinks=true,linkcolor=blue,urlcolor=blue,pdfpagemode=UseNone,
pdftitle={Amon Sphynx},
pdfkeywords={distribution, GNU, linux, eole, éducation, nationale, ubuntu},
pdfauthor={Emmanuel Garette},
pdflang={fr-FR},
pdfcopyright={Copyright © 2011-2014 Cadoles}, % Nécessite XeTeX
pdflicenseurl={http://creativecommons.org/licenses/by-nc-sa/2.0/fr/},
}
%\usecolortheme{crane}
\definecolor{UniBlue}{RGB}{83,121,180}
\definecolor{CleanWhite}{RGB}{255,255,255}
\setbeamercolor{title}{fg=UniBlue}
\setbeamercolor{frametitle}{fg=CleanWhite}
\setbeamercolor{structure}{fg=UniBlue}
\newcommand{\eolesmall}{
\begin{minipage}[c]{0.10\textwidth}
\includegraphics[width=1cm]{beamer-skel/img/logo-eole.png}
\end{minipage}
}
\newcommand{\eolebig}{\includegraphics[width=2cm]{beamer-skel/img/logo-eole.png}}
\newcommand{\eolefull}{\includegraphics{beamer-skel/img/logo-eole.png}}
%\setmonofont[Scale=0.86]{Andale Mono}
%\usepackage{colortab}
\setbeamertemplate{background}{\includegraphics[width=128mm]{beamer-skel/img/banner01.png}}
\title[]{Formation EOLE}
\subtitle{Versailles}
\author[Equipe Auteur]{Emmanuel Garette}
\institute[Cadoles]{\includegraphics[width=2cm]{beamer-skel/img/logo-cadoles-01.png}}
\date{{\small \today}}
\subject{Talks}
\AtBeginSubsection[]
{
\begin{frame}<beamer>
\frametitle{}
\tableofcontents[currentsection,currentsubsection]
\end{frame}
}
\logo{
% \includegraphics[width=1cm]{beamer-skel/img/logo-ecologie.png}~
\hspace{120pt}
\includegraphics[width=2cm]{beamer-skel/img/logo-cadoles-01.png}~
\hspace{113pt}
\includegraphics[width=1cm]{beamer-skel/img/logo_en.jpg}~
}
\begin{document}
% Page de titre
\begin{frame}
\titlepage
\end{frame}
\section{Introduction}
\begin{frame}{Plan}
\begin{columns}[t]
\begin{column}{5cm}
\tableofcontents[sections={1-6},currentsection, hideothersubsections]
\end{column}
\begin{column}{5cm}
\tableofcontents[sections={7-12},currentsection,hideothersubsections]
\end{column}
\end{columns}
\end{frame}
\include{modules_EOLE_envole/commun/00-intro}
\include{modules_EOLE_envole/commun/01-nouveaute23}
\include{modules_EOLE_envole/commun/01-nouveaute24}
\section{Panorama des modules}
\begin{frame}{Plan}
\begin{columns}[t]
\begin{column}{5cm}
\tableofcontents[sections={1-6},currentsection, hideothersubsections]
\end{column}
\begin{column}{5cm}
\tableofcontents[sections={7-12},currentsection,hideothersubsections]
\end{column}
\end{columns}
\end{frame}
\include{modules_EOLE_envole/amon/00-description}
\include{modules_EOLE_envole/sphynx/00-description}
\include{modules_EOLE_envole/scribe/00-description}
\include{modules_EOLE_envole/horus/00-description}
\include{modules_EOLE_envole/amonecole/00-description}
\include{modules_EOLE_envole/tronc-commun-1/00-panorama-module}
\section{Les quatre phases}
\begin{frame}{Plan}
\begin{columns}[t]
\begin{column}{5cm}
\tableofcontents[sections={1-6},currentsection, hideothersubsections]
\end{column}
\begin{column}{5cm}
\tableofcontents[sections={7-12},currentsection,hideothersubsections]
\end{column}
\end{columns}
\end{frame}
\include{modules_EOLE_envole/commun/02-quatre_phases}
\include{modules_EOLE_envole/scribe/00-virtualbox}
\include{modules_EOLE_envole/commun/02-quatre_phases-pratique}
\include{modules_EOLE_envole/tronc-commun-1/01-config-texte}
\section{Administration commune}
\begin{frame}{Plan}
\begin{columns}[t]
\begin{column}{5cm}
\tableofcontents[sections={1-6},currentsection, hideothersubsections]
\end{column}
\begin{column}{5cm}
\tableofcontents[sections={7-12},currentsection,hideothersubsections]
\end{column}
\end{columns}
\end{frame}
\include{modules_EOLE_envole/commun/02-instance-reconfigure}
\include{modules_EOLE_envole/commun/03-mise-a-jour}
\include{modules_EOLE_envole/commun/04-diagnose}
\include{modules_EOLE_envole/commun/04-diagnose-pratique}
\include{modules_EOLE_envole/tronc-commun-1/05-conteneurs}
%\include{modules_EOLE_envole/tronc-commun-1/05-conteneurs-pratique}
\include{modules_EOLE_envole/tronc-commun-1/06-firewall}
\include{modules_EOLE_envole/tronc-commun-1/06-schedule}
\include{modules_EOLE_envole/tronc-commun-1/06-zpratique}
%\include{modules_EOLE_envole/tronc-commun-1/07-onduleur}
%\include{modules_EOLE_envole/tronc-commun-1/07-onduleur-pratique}
\include{modules_EOLE_envole/tronc-commun-1/08-trouver}
\section{GNU/Linux}
\begin{frame}{Plan}
\begin{columns}[t]
\begin{column}{5cm}
\tableofcontents[sections={1-6},currentsection, hideothersubsections]
\end{column}
\begin{column}{5cm}
\tableofcontents[sections={7-12},currentsection,hideothersubsections]
\end{column}
\end{columns}
\end{frame}
\include{modules_EOLE_envole/tronc-commun-1/20-gnu_linux}
\include{modules_EOLE_envole/tronc-commun-1/20-tcpdump-tshark}
\include{modules_EOLE_envole/tronc-commun-1/20-ziptraf}
\include{modules_EOLE_envole/tronc-commun-1/21-lire-ecrire}
\include{modules_EOLE_envole/tronc-commun-1/22-commande-distance}
\section{Sauvegarde}
\begin{frame}{Plan}
\begin{columns}[t]
\begin{column}{5cm}
\tableofcontents[sections={1-6},currentsection, hideothersubsections]
\end{column}
\begin{column}{5cm}
\tableofcontents[sections={7-12},currentsection,hideothersubsections]
\end{column}
\end{columns}
\end{frame}
\include{modules_EOLE_envole/scribe/20-sauvegarde}
\section{Poste de travail}
\begin{frame}{Plan}
\begin{columns}[t]
\begin{column}{5cm}
\tableofcontents[sections={1-6},currentsection, hideothersubsections]
\end{column}
\begin{column}{5cm}
\tableofcontents[sections={7-12},currentsection,hideothersubsections]
\end{column}
\end{columns}
\end{frame}
\include{modules_EOLE_envole/scribe/10-windows-distance}
\include{modules_EOLE_envole/scribe/12-machine-diagnostic}
\include{modules_EOLE_envole/scribe/14-esu-diagnostic}
\subject{Talks}
\begin{frame}
\frametitle{Licence}
Cette œuvre est mise à disposition sous licence \href{http://creativecommons.org/licenses/by-nc-sa/2.0/fr/}{\textsc{cc-by-nc-sa-2.0}}
\begin{itemize}
\item Attribution
\item Pas dUtilisation Commerciale
\item Partage dans les Mêmes Conditions 2.0
\item France
\end{itemize}
Pour voir une copie de cette licence, visitez
\href{http://creativecommons.org/licenses/by-nc-sa/2.0/fr/}{http://creativecommons.org/licenses/by-nc-sa/2.0/fr/}
ou écrivez à Creative Commons, 444 Castro Street, Suite 900,
Mountain View, California, 94041, USA.
\end{frame}
\end{document}

View File

@ -0,0 +1,146 @@
\documentclass{article}
\usepackage{skb}
\skbconfig[
root = ../../,
rep = content,
pub = presentations,
fig = figures,
sli = slides,
acr = database/acr,
bib = database/bib
]{skblocal.tex}
\skbinput[from=rep]{style/preambule-article}
\newcommand{\departement}{Cadoles}
\newcommand{\numeroversion}{0.1}
\newcommand{\adresse}{29 bis, rue de lArquebuse}
\newcommand{\codepostal}{21000}
\newcommand{\ville}{Dijon}
\newcommand{\telephone}{03 73 27 02 86}
\begin{document}
\title{Guide dutilisation de la mallette pédagogique}
\author{Cadoles}
\date{{\small \today}}
\maketitle
\skbinput[from=rep]{style/title}
% Corps de la formation
%\skbinput[from=rep]{}
\newpage
\part{Description}
\section{Matériel}
\subsection{Aperçu}
Le projet de mallette pédagogique porté par la MJC de Chenôve consiste en un réseau local permettant le partage de données et la participation à des activités numériques communes. Neuf ordinateurs au total et un routeur réseau permettront de mettre en place des activités pour huit participants et un animateur.
Dans la première phase du projet, la mallette pédagogique est constitué de deux ordinateurs portables et dun routeur sans fil. Ces trois éléments suffisent à mettre en place linfrastructure type de la mallette pédagogique.
\skbfigure[center,width=\textwidth]{mallette_pedagogique/architecture.png}
\subsection{Le routeur sans fil}
Léquipement sélectionné permet de connecter des équipements récents en nombre suffisant. La plupart des fonctionnalités avancés du routeur ne sont pas utilisées dans le cadre de la mallette pédagogique.
\subsection{Les ordinateurs portables}
Les ordinateurs portables sélectionnés ont des caractéristiques techniques compatibles avec des usages très divers : le jeu, lédition vidéo et sonore, lédition graphique.
Deux profils dordinateurs ont été retenu : lordinateur de lanimateur est une version similaire aux ordinateurs des autres participants avec un ajout de mémoire vive et despace disque.
Chaque ordinateur dispose du système dexploitation Ubuntu dans la version LTS 20.04.
Ce système dexploitation propose, par défaut, lenvironnement graphique \emph{GNOME 3}.
Un compte dadministration local est créé sur chaque ordinateur : \emph{mjcadm}.
Le mot de passe à la livraison est \emph{mjc2020}.
\subsection{Récapitulatif}
\begin{itemize}
\item routeur NETGEAR XR700 ;
\item un ordinateur portable Terra mobile 1777 (Intel Core i5-8250U, 16 Go, NVIDIA Geforce MX250) ;
\item un ordinateur portable Terra mobile 1777 (Intel Core i5-8250U, 8 Go, NVIDIA Geforce MX250).
\end{itemize}
\newpage
\part{Séance de travail}
\section{Préparation dune séance de travail}
Une séance de travail met en œuvre des dossiers et de documents partagés selon les profils connectés. La préparation dune séance de travail consiste donc principalement à créer les ressources partagées, à les rendre accessibles aux participants, et à créer les profils des participants.
\subsection{Préparation des comptes}
La gestion de lidentité et des permissions de la mallette pédagogique est assurée par le composant \emph{freeipa} dont linterface dadministration est accessible à ladresse \url{https://freeipa.mjc.local}.
Lordinateur de lanimateur dispose également dune application simplifiant la création de groupes et dutilisateurs.
Lapplication doit être démarrée par un utilisateur disposant des droits suffisants, soit le compte administrateur local \emph{mjcadm}, soit un compte appartenant au groupe \emph{animateurs}.
\subsubsection{admino}
Lapplication \emph{admino} propose la création dutilisateurs et de groupes.
Laccès à ces actions se fait en cliquant sur litem correspondant dans le menu de gauche.
\skbfigure[center,width=\textwidth]{mallette_pedagogique/admino.png}
\subsubsection{Création de groupes}
Un clic sur lentrée \menu{DROITS \& ACCÈS>Groupes} affiche la liste des groupes dans la partie droite de lapplication.
\skbfigure[center,width=\textwidth]{mallette_pedagogique/admino_liste_groupes.png}
Le bouton \menu{Ajouter un Groupe} affiche le formulaire permettant de créer un groupe.
\skbfigure[center,width=\textwidth]{mallette_pedagogique/admino_création_groupes.png}
Pour chaque groupe créé, un sous répertoire du même nom est créé dans \directory{/var/data/groups}
\subsubsection{Création dutilisateurs}
Le concept dutilisateur permet, dans le cadre de la mallette pédagogique, de contrôler les accès aux ressources partagées.
Un utilisateur, pour avoir accès aux ressources, doit être associé aux bons groupes.
Un clic sur lentrée \menu{DROITS \& ACCÈS>Utilisateurs} affiche la liste des utilisateurs dans la partie droite de lapplication.
\skbfigure[center,width=\textwidth]{mallette_pedagogique/admino_liste_utilisateurs.png}
Le bouton \menu{Ajouter un Utilisateur} affiche le formulaire permettant de créer un utilisateur.
\skbfigure[center,width=\textwidth]{mallette_pedagogique/admino_création_utilisateurs.png}
Les utilisateurs sont créés avec des mots de passe temporaires qui doivent être modifiés à la première ouverture de session.
Les répertoires personnels des utilisateurs sont stockés localement sur lordinateur sur lequel la session est ouverte pour offrir de meilleurs performances pour les applications requérant des accès aux fichiers performants.
\subsection{Stratégie de création de compte}
La mallette pédagogique na pas vocation à conserver les données personnelles des utilisateurs dune séance à lautre mais uniquement les données partagées.
Chaque participant doit disposer dun compte qui lui est propre à léchelle de la séance de travail pour ouvrir une session sur un ordinateur.
Cependant, un compte peut être réutilisé par plusieurs personnes lors de session de travail différentes.
\subsubsection{Un compte par participant unique}
Lors de la préparation de chaque séance, lanimateur ou ladministrateur créé un compte pour chaque participant identifié.
Le compte est associé aux groupes adéquats pour laccès aux ressources nécessaires à la session de travail.
\subsubsection{Des comptes génériques}
Lors de la préparation de chaque séance, lanimateur ou ladministrateur modifie les groupes associés des comptes génériques.
La remise à zéro des mots de passe doit toutefois être effectuée via lapplication \emph{freeipa}.
\subsection{Préparation des ressources partagées}
\subsubsection{Répertoires partagés}
Lordinateur de lanimateur héberge des répertoires partagés qui sont mis à disposition des participants via le réseau.
Le répertoire racine sur lordinateur de lanimateur est \directory{/var/data/groups}. Les sous-dossiers sont créés lors de la création des groupes via lapplication \emph{admino}.
Sur les postes des participants, les répertoires partagés sont accessibles aux utilisateurs du groupe via lexplorateur de fichiers, lapplication \emph{nautilus}, grâce au raccourci \emph{groups} ajouté dans le volet gauche de lapplication.
\subsubsection{Les documents}
Lordinateur de lanimateur dispose des logiciels adéquats pour la création de divers supports danimation :
\begin{itemize}
\item diaporama : libreoffice Impress
\item documents divers : libreoffice Writer
\item infographie : libreoffice Draw, inkscape, gimp
\item publication avancée : scribus
\item ressources multimédia : éditeurs vidéo non linéaire, audacity
\end{itemize}
Les documents créés sont mis à disposition des participants en les copiant dans les répertoires des groupes.
\subsubsection{La base de connaissance}
Une base de connaissance est également disponible sous la forme dun wiki accessible à ladresse \url{https://master.mjc.local:8021/dokuwiki}.
Un accès simplifié est paramétré sur chaque ordinateur sous la forme dune icône.
Seuls les membres du groupe \emph{animateurs} ont les droits suffisants pour la création et lédition de page dans le wiki.
\newpage
\part{Entretien}
\section{Mise à jour régulière}
Les ordinateurs nécessitent une mise à jour régulière impliquant un accès aux dépôts de paquets, généralement sur internet.
La configuration du routeur réseau permet dactiver laccès à internet le reliant simplement à un équipement type routeur-modem via un cable ethernet branché sur la prise jaune identifiée par le nom \emph{internet}.
Tous les ordinateurs connectés au réseau sans fil diffusé par le routeur ont accès à internet dès lors que la connexion du routeur à internet est effective.
La mise à jour nest pas automatisée.
\section{Nettoyage des disques des ordinateurs}
Louverture de session sur les ordinateurs créé automatiquement des répertoires pour les utilisateurs.
Il nexiste pas de règles permettant dautomatiser la suppression des répertoires des utilisateurs.
Cette opération est donc manuelle.
\newpage
\skbinput[from=rep]{licences/license-cc-by-sa-2.0}
\end{document}

View File

@ -0,0 +1 @@
3 jours.

View File

@ -0,0 +1 @@
L'appropriation des connaissances est contrôlée par des travaux pratiques durant la formation.

View File

@ -0,0 +1,4 @@
\begin{itemize}
\item une salle de formation équipée d'ordinateurs avec infrasctructure de démonstration pour les travaux pratiques ;
\item un formateur avec l'expérience de l'installation et de la maintenance des solutions présentées.
\end{itemize}

View File

@ -0,0 +1 @@
Le participant à la formation est autonome pour l'administration des serveurs et la recherche d'informations en vue de résoudre les incidents.

View File

@ -0,0 +1 @@
Avoir suivi la formation tronc commun.

View File

@ -0,0 +1 @@
La formation vise toute personne ayant en charge des tâches d'administration sur des serveurs équipés des modules EOLE ScribeAD ou EOLE Horus.

View File

@ -0,0 +1,84 @@
\documentclass{beamer}
\usepackage{skb}
\skbconfig[
root = ../../,
rep = content,
pub = presentations,
fig = figures,
sli = slides,
acr = database/acr,
bib = database/bib
]{skblocal.tex}
\newcommand{\pdfauthor}{Cadoles}
\newcommand{\pdftitle}{Formation tronc commun niveau 1}
\newcommand{\pdfkeywords}{EOLE}
\skbinput[from=sli]{style/preambule}
\title[]{Formation tronc commun niveau 1}
\subtitle{XXX CLIENT XXX}
\author[Equipe Auteur]{Cadoles}
\institute[Cadoles]{\skbfigure[width=2cm]{cadoles/logo_01.png}}
\date{{\small \today}}
\subject{Talks}
%\skbinput[]{style/formation\_en}
\begin{document}
\skbinput[from=sli]{style/title}
% Corps de la formation
\section{Introduction}
\skbinput[from=sli]{modules_EOLE_envole/commun/intro}
\skbinput[from=sli]{modules_EOLE_envole/commun/nouveautes26}
\skbinput[from=sli]{modules_EOLE_envole/commun/nouveautes27}
\section{Panorama des modules}
\skbinput[from=sli]{modules_EOLE_envole/amon/description}
\skbinput[from=sli]{modules_EOLE_envole/sphynx/description}
\skbinput[from=sli]{modules_EOLE_envole/scribe/description}
\skbinput[from=sli]{modules_EOLE_envole/horus/description}
\skbinput[from=sli]{modules_EOLE_envole/amonecole/description}
\skbinput[from=sli]{modules_EOLE_envole/eclair/description}
\skbinput[from=sli]{modules_EOLE_envole/zephir/description}
\skbinput[from=sli]{modules_EOLE_envole/seshat/description}
\skbinput[from=sli]{modules_EOLE_envole/thot/description}
\skbinput[from=sli]{modules_EOLE_envole/hapy/description}
\section{Les quatre phases}
\skbinput[from=sli]{modules_EOLE_envole/commun/quatre_phases}
\skbinput[from=sli]{modules_EOLE_envole/scribe/virtualbox}
\skbinput[from=sli]{modules_EOLE_envole/commun/quatre_phases-pratique}
\section{Administration commune}
\skbinput[from=sli]{modules_EOLE_envole/commun/instance-reconfigure}
\skbinput[from=sli]{modules_EOLE_envole/commun/mise-a-jour}
\skbinput[from=sli]{modules_EOLE_envole/commun/diagnose}
\skbinput[from=sli]{modules_EOLE_envole/commun/diagnose-pratique}
%\skbinput[from=sli]{modules_EOLE_envole/commun/conteneurs}
\skbinput[from=sli]{modules_EOLE_envole/commun/firewall}
\skbinput[from=sli]{modules_EOLE_envole/commun/schedule}
\skbinput[from=sli]{modules_EOLE_envole/tronc-commun-1/zpratique}
\skbinput[from=sli]{modules_EOLE_envole/tronc-commun-1/onduleur}
\skbinput[from=sli]{modules_EOLE_envole/tronc-commun-1/onduleur-pratique}
\skbinput[from=sli]{modules_EOLE_envole/tronc-commun-1/trouver}
\section{Interfaces d'administration EOLE}
\skbinput[from=sli]{modules_EOLE_envole/tronc-commun-1/ead}
\skbinput[from=sli]{modules_EOLE_envole/tronc-commun-1/interface-semi-graphique}
\skbinput[from=sli]{modules_EOLE_envole/tronc-commun-1/application-zephir}
\section{GNU/Linux}
\skbinput[from=sli]{modules_EOLE_envole/tronc-commun-1/gnu_linux}
\skbinput[from=sli]{modules_EOLE_envole/tronc-commun-1/tcpdump-tshark}
\skbinput[from=sli]{modules_EOLE_envole/tronc-commun-1/commande-distance}
\section{Application Zéphir 2}
\skbinput[from=sli]{modules_EOLE_envole/tronc-commun-1/application-zephir2}
\section{Migration}
\skbinput[from=sli]{modules_EOLE_envole/tronc-commun-1/migration-zephir}
\skbinput[from=sli]{style/license-cc-by-sa-2.0}
\end{document}

View File

@ -0,0 +1,67 @@
\documentclass{beamer}
\usepackage{skb}
\skbconfig[
root = ../../,
rep = content,
pub = presentations,
fig = figures,
sli = slides,
acr = database/acr,
bib = database/bib
]{skblocal.tex}
\newcommand{\pdfauthor}{Cadoles}
\newcommand{\pdftitle}{Formation tronc commun niveau 1}
\newcommand{\pdfkeywords}{EOLE}
\skbinput[from=sli]{style/preambule}
\title[]{Formation tronc commun niveau 2}
\subtitle{XXX CLIENT XXX}
\author[Equipe Auteur]{Cadoles}
\institute[Cadoles]{\skbfigure[width=2cm]{cadoles/logo_01.png}}
\date{{\small \today}}
\subject{Talks}
\logo{
\hspace{120pt}
\skbfigure[width=2cm]{cadoles/logo_01.png}
\hspace{113pt}
\skbfigure[width=1cm]{en/logo.png}
}
\begin{document}
\skbinput[from=sli]{style/title}
% Corps de la formation
\skbinput[from=sli]{modules_EOLE_envole/tronc-commun-2/personnalisation-creole}
\skbinput[from=sli]{modules_EOLE_envole/tronc-commun-2/zephir}
\skbinput[from=sli]{modules_EOLE_envole/tronc-commun-2/zephir_script}
\skbinput[from=sli]{modules_EOLE_envole/tronc-commun-2/api}
\skbinput[from=sli]{modules_EOLE_envole/tronc-commun-2/api_bash}
\skbinput[from=sli]{modules_EOLE_envole/tronc-commun-2/diagnose}
\skbinput[from=sli]{modules_EOLE_envole/tronc-commun-2/script-instance-reconfigure}
\skbinput[from=sli]{modules_EOLE_envole/tronc-commun-2/script-instance-reconfigure-pratique}
\skbinput[from=sli]{modules_EOLE_envole/tronc-commun-2/montage-conteneur}
%\skbinput[from=sli]{modules_EOLE_envole/tronc-commun-2/eole-firewall}
\skbinput[from=sli]{modules_EOLE_envole/tronc-commun-2/schedule}
\skbinput[from=sli]{modules_EOLE_envole/tronc-commun-2/host}
\skbinput[from=sli]{modules_EOLE_envole/tronc-commun-2/mysql}
\skbinput[from=sli]{modules_EOLE_envole/tronc-commun-2/interface}
\skbinput[from=sli]{modules_EOLE_envole/tronc-commun-2/disknod}
\skbinput[from=sli]{modules_EOLE_envole/tronc-commun-2/sso}
\skbinput[from=sli]{modules_EOLE_envole/tronc-commun-2/script-ead}
\skbinput[from=sli]{modules_EOLE_envole/tronc-commun-2/sauvegarde}
\skbinput[from=sli]{modules_EOLE_envole/tronc-commun-2/conteneur_groupe_conteneur}
\skbinput[from=sli]{modules_EOLE_envole/tronc-commun-2/cert}
\skbinput[from=sli]{style/license-cc-by-sa-2.0}
\end{document}

View File

@ -0,0 +1,70 @@
\ProvidesPackage{pdfpcnotes}
% Handling of kv parameters.
% We have the following options, that all take time in the HH:MM format
\RequirePackage{kvoptions}
\SetupKeyvalOptions{
family=PDFPC,
prefix=PDFPC@
}
\DeclareStringOption{duration}
\DeclareStringOption{starttime}
\DeclareStringOption{endtime}
\DeclareStringOption{lastminutes}
\DeclareStringOption{fontsize}
\ProcessKeyvalOptions*
% Small macro to make inserting options easier.
\newcommand\PDFPC@option[2]{
\ifx#2\@empty\else
\immediate\write\pdfpcnotesfile{[#1]}%
\immediate\write\pdfpcnotesfile{#2}%
\fi
}
% create a new file handle
\newwrite\pdfpcnotesfile
% open file on \begin{document}
\AtBeginDocument{%
\immediate\openout\pdfpcnotesfile\jobname.pdfpc\relax
\PDFPC@option{duration}{\PDFPC@duration}
\PDFPC@option{start_time}{\PDFPC@starttime}
\PDFPC@option{end_time}{\PDFPC@endtime}
\PDFPC@option{last_minutes}{\PDFPC@lastminutes}
\PDFPC@option{font_size}{\PDFPC@fontsize}
\immediate\write\pdfpcnotesfile{[notes]}
}
% define a # http://tex.stackexchange.com/a/37757/10327
\begingroup
\catcode`\#=12
\gdef\hashchar{#}%
\endgroup
\def\lastframenumber{0}
% define command \pnote{} that works like note but
% additionally writes notes to file in pdfpc readable format
\newcommand{\pnote}[1]{%
% keep normal notes working
\note{#1}%
% if frame changed - write a new header
\ifdim\theframenumber pt>\lastframenumber pt
\let\lastframenumber\theframenumber
\begingroup
\let\#\hashchar
\immediate\write\pdfpcnotesfile{\#\#\# \theframenumber}%
\endgroup
\fi
% write note to file
\immediate\write\pdfpcnotesfile{\unexpanded{#1}}%
}
% close file on \end{document}
\AtEndDocument{%
\immediate\closeout\pdfpcnotesfile
}

View File

@ -0,0 +1,7 @@
[notes]
### 54
Se faciliter la vie en désactivant la validation des mots de passe et le timeout
### 123
copier la clef publique : scp root@<ip\_zephir>:/etc/ssl/certs/ca\_local.crt /usr/local/share/ca-certificates/ update-ca-certificates
### 294
test des notes standard

View File

@ -0,0 +1,249 @@
\documentclass{beamer}
\usepackage{skb}
\skbconfig[
root = ../../,
rep = content,
pub = presentations,
fig = figures,
sli = slides,
acr = database/acr,
bib = database/bib
]{skblocal.tex}
\skbinput[from=sli]{style/preambule}
\title[]{Formation tronc commun, Scribe et Horus}
\subtitle{Formation du PNF}
\author[Equipe Auteur]{Cadoles}
\institute[Cadoles]{\skbfigure[width=2cm]{cadoles/logo_01.png}}
\date{{\small 8-11 avril 2019}}
\subject{Talks}
\AtBeginSubsection[]
{
\begin{frame}<beamer>
\frametitle{}
% This Shade the other sections, show the current subsections and shade the other subsections
\tableofcontents[
sectionstyle=show/shaded,
subsectionstyle=show/shaded/hide,
]
\end{frame}
}
\begin{document}
\skbinput[from=sli]{style/title}
% Corps de la formation
%\skbinput[from=sli]{}
\section{Introduction}
\subsection{Présentations}
\skbinput[from=sli]{presentation/formateurs/bbohard}
\skbinput[from=sli]{presentation/stagiaires/etvous}
\begin{frame}
\frametitle{À propos de cette formation}
\framesubtitle{Contenu}
Cette formation est composée déléments des formations du PNF du ministère de lÉducation nationale :
\begin{itemize}
\item une version condensée de la formation tronc commun niveau 1 ;
\item la formation Scribe, Horus.
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{À propos de cette formation}
\framesubtitle{Objectifs}
Lobjectif de cette formation est de vous rendre à laise dans lutilisation des serveurs EOLE qui sont mis en place dans votre infrastructure.
\end{frame}
\begin{frame}
\frametitle{À propos de cette formation}
\framesubtitle{Objectifs}
Partagez-vous cet objectif ?
Quels objectifs personnels souhaiteriez-vous atteindre en plus ?
\end{frame}
%%sss
\subsection{EOLE}
\skbinput[from=sli]{modules_EOLE_envole/commun/00-intro}
\skbinput[from=sli]{modules_EOLE_envole/zephir/description}
\skbinput[from=sli]{modules_EOLE_envole/hapy/description}
\skbinput[from=sli]{modules_EOLE_envole/amon/description}
\skbinput[from=sli]{modules_EOLE_envole/sphynx/description}
\skbinput[from=sli]{modules_EOLE_envole/scribe/description}
\skbinput[from=sli]{modules_EOLE_envole/horus/description}
\skbinput[from=sli]{modules_EOLE_envole/seth/description}
\skbinput[from=sli]{modules_EOLE_envole/thot/description}
\skbinput[from=sli]{modules_EOLE_envole/amonecole/description}
\skbinput[from=sli]{modules_EOLE_envole/eclair/description}
\skbinput[from=sli]{modules_EOLE_envole/commun/01-nouveaute25}
\skbinput[from=sli]{modules_EOLE_envole/commun/01-nouveaute26}
\skbinput[from=sli]{modules_EOLE_envole/commun/01-nouveaute27}
\skbinput[from=sli]{modules_EOLE_envole/commun/ecosysteme}
\subsection{Infrastructure de formation}
{\setbeamercolor{background canvas}{bg=TravauxPratiques}
\begin{frame}
\frametitle{}
Logiciel de virtualisation utilisé : VirtualBox.
Liste des machines à copier :
\begin{itemize}
\item zephir-formation.ova ;
\item scribe-formation.ova ;
\item horus-formation.ova ;
\item pc1-formation.ova ;
\item RouteurEole.ova.
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{VirtualBox}
\framesubtitle{Réseau privé hôte}
Les VM utiliseront un réseau privé hôte avec les paramètres suivants :
\begin{itemize}
\item Adresse IPv4 : 192.168.253.1
\item Masque réseau IPv4 : 255.255.255.0
\item serveur DHCP désactivé
\end{itemize}
Pour assurer la connexion avec lextérieur, on utilisera la machine RouteurEole.ova
\end{frame}
}
\skbinput[from=sli]{modules_EOLE_envole/zephir/virtualbox}
\skbinput[from=sli]{modules_EOLE_envole/scribe/virtualbox}
\skbinput[from=sli]{modules_EOLE_envole/horus/virtualbox}
\skbinput[from=sli]{modules_EOLE_envole/client_windows/virtualbox}
\skbinput[from=sli]{pauses/simple}
\section{Tronc commun}
\subsection{Les quatre phases}
\skbinput[from=sli]{modules_EOLE_envole/commun/installation}
\skbinput[from=sli]{modules_EOLE_envole/commun/installation-pratique}
\skbinput[from=sli]{modules_EOLE_envole/commun/configuration}
\skbinput[from=sli]{modules_EOLE_envole/commun/02-gen_config}
\skbinput[from=sli]{modules_EOLE_envole/zephir/configuration-locale-pratique}
\skbinput[from=sli]{modules_EOLE_envole/commun/instance}
\skbinput[from=sli]{modules_EOLE_envole/zephir/instance-pratique}
\skbinput[from=sli]{modules_EOLE_envole/commun/administration}
\subsection{Administration commune}
\skbinput[from=sli]{modules_EOLE_envole/commun/02-instance-reconfigure}
\skbinput[from=sli]{modules_EOLE_envole/commun/03-mise-a-jour}
\skbinput[from=sli]{modules_EOLE_envole/commun/04-diagnose}
\skbinput[from=sli]{modules_EOLE_envole/zephir/diagnose-pratique}
\skbinput[from=sli]{modules_EOLE_envole/tronc-commun-1/06-firewall}
\skbinput[from=sli]{modules_EOLE_envole/tronc-commun-1/06-schedule}
\skbinput[from=sli]{modules_EOLE_envole/tronc-commun-1/06-zpratique}
%\skbinput[from=sli]{modules_EOLE_envole/tronc-commun-1/07-onduleur}
%\skbinput[from=sli]{modules_EOLE_envole/tronc-commun-1/07-onduleur-pratique}
\skbinput[from=sli]{modules_EOLE_envole/tronc-commun-1/08-trouver}
\skbinput[from=sli]{modules_EOLE_envole/zephir/genrpt-pratique}
\skbinput[from=sli]{pauses/simple}
\subsection{Interfaces d'administration EOLE}
\skbinput[from=sli]{modules_EOLE_envole/tronc-commun-1/30-ead}
\skbinput[from=sli]{modules_EOLE_envole/zephir/ead-pratique}
\skbinput[from=sli]{modules_EOLE_envole/tronc-commun-1/31-interface-semi-graphique}
\skbinput[from=sli]{modules_EOLE_envole/zephir/interface-semi-graphique-pratique}
\subsection{Application Zéphir 1}
\skbinput[from=sli]{modules_EOLE_envole/zephir/concepts}
\skbinput[from=sli]{modules_EOLE_envole/zephir/utilisateurs}
\skbinput[from=sli]{modules_EOLE_envole/zephir/interface}
\skbinput[from=sli]{modules_EOLE_envole/zephir/interface-parametre-utilisateur}
\skbinput[from=sli]{modules_EOLE_envole/zephir/interface-etablissement}
\skbinput[from=sli]{modules_EOLE_envole/zephir/utilisateurs-locaux-pratique}
\skbinput[from=sli]{pauses/simple}
\subsection{GNU/Linux}
\skbinput[from=sli]{modules_EOLE_envole/tronc-commun-1/20-gnu_linux}
\skbinput[from=sli]{modules_EOLE_envole/tronc-commun-1/20-tcpdump-tshark}
\skbinput[from=sli]{modules_EOLE_envole/tronc-commun-1/21-lire-ecrire}
\skbinput[from=sli]{modules_EOLE_envole/tronc-commun-1/22-commande-distance}
\skbinput[from=sli]{modules_EOLE_envole/horus/configuration-locale-pratique}
\skbinput[from=sli]{modules_EOLE_envole/horus/enregistrement-pratique}
\subsection{Application Zéphir 2}
\skbinput[from=sli]{modules_EOLE_envole/tronc-commun-1/11-application-zephir2}
\skbinput[from=sli]{modules_EOLE_envole/scribe/configuration-distante-pratique}
\skbinput[from=sli]{modules_EOLE_envole/scribe/enregistrement-pratique}
\skbinput[from=sli]{pauses/simple}
\section{Scribe}
\subsection{Utilisateurs}
\skbinput[from=sli]{modules_EOLE_envole/scribe/01-utilisateur}
\skbinput[from=sli]{modules_EOLE_envole/scribe/utilisateurs-pratique}
\skbinput[from=sli]{modules_EOLE_envole/scribe/31-scripts-user-scribe}
\subsection{Machines}
%\include{modules_EOLE_envole/scribe/10-machine_conf_reseau} %configuration selon le mode réseau choisi pour les VM
\skbinput[from=sli]{modules_EOLE_envole/scribe/integration-poste-client}
\skbinput[from=sli]{modules_EOLE_envole/scribe/integration-poste-client-pratique}
\skbinput[from=sli]{modules_EOLE_envole/scribe/12-machine-ead}
\skbinput[from=sli]{modules_EOLE_envole/scribe/machines-ead-pratique}
\skbinput[from=sli]{modules_EOLE_envole/scribe/12-machine-diagnostic}
\skbinput[from=sli]{modules_EOLE_envole/scribe/13-profil}
\skbinput[from=sli]{modules_EOLE_envole/scribe/profils-pratique}
\skbinput[from=sli]{modules_EOLE_envole/scribe/14-esu}
\skbinput[from=sli]{modules_EOLE_envole/scribe/esu-pratique}
\skbinput[from=sli]{modules_EOLE_envole/scribe/applications-icones}
\skbinput[from=sli]{modules_EOLE_envole/scribe/gestion-postes}
\skbinput[from=sli]{modules_EOLE_envole/scribe/gestion-postes-pratique}
%\skbinput[from=sli]{modules_EOLE_envole/scribe/devoirs}
\skbinput[from=sli]{modules_EOLE_envole/scribe/eop}
\skbinput[from=sli]{modules_EOLE_envole/scribe/eop-pratique}
\skbinput[from=sli]{modules_EOLE_envole/scribe/esu-diagnostic}
\skbinput[from=sli]{modules_EOLE_envole/scribe/esu-diagnostic-pratique}
\skbinput[from=sli]{modules_EOLE_envole/scribe/script-scribe}
\skbinput[from=sli]{modules_EOLE_envole/scribe/script-scribe-pratique}
\skbinput[from=sli]{modules_EOLE_envole/scribe/windows-distance}
\skbinput[from=sli]{modules_EOLE_envole/scribe/imprimante}
\skbinput[from=sli]{modules_EOLE_envole/scribe/corbeille}
\skbinput[from=sli]{modules_EOLE_envole/scribe/corbeille-pratique}
\skbinput[from=sli]{modules_EOLE_envole/scribe/virus}
\skbinput[from=sli]{modules_EOLE_envole/scribe/virus-pratique}
\skbinput[from=sli]{modules_EOLE_envole/scribe/ftp}
\skbinput[from=sli]{modules_EOLE_envole/scribe/ftp-pratique}
\subsection{Sauvegarde}
\skbinput[from=sli]{modules_EOLE_envole/scribe/sauvegarde}
\subsection{Communications}
\skbinput[from=sli]{modules_EOLE_envole/scribe/communication}
\skbinput[from=sli]{modules_EOLE_envole/scribe/communication-pratique}
\section{Horus}
\subsection{Configuration}
\skbinput[from=sli]{modules_EOLE_envole/horus/particularites-configuration}
\subsection{La logique métier}
\skbinput[from=sli]{modules_EOLE_envole/horus/utilisateurs}
\skbinput[from=sli]{modules_EOLE_envole/horus/utilisateurs-pratique}
\skbinput[from=sli]{modules_EOLE_envole/horus/administration}
\subsection{Machines}
%\include{modules_EOLE_envole/scribe/10-machine_conf_reseau} %configuration selon le mode réseau choisi pour les VM
\skbinput[from=sli]{modules_EOLE_envole/horus/integration-poste-client}
\skbinput[from=sli]{modules_EOLE_envole/horus/integration-poste-client-pratique}
\skbinput[from=sli]{modules_EOLE_envole/horus/02-machine-ead}
\skbinput[from=sli]{modules_EOLE_envole/horus/machines-ead-pratique}
\skbinput[from=sli]{modules_EOLE_envole/horus/esu}
\skbinput[from=sli]{modules_EOLE_envole/horus/script-horus}
\skbinput[from=sli]{modules_EOLE_envole/horus/script-horus-pratique}
\subsection{Les scripts administratifs}
\skbinput[from=sli]{modules_EOLE_envole/horus/scripts-administratifs}
\subsection{Les services web}
\skbinput[from=sli]{modules_EOLE_envole/tronc-commun-1/30-ead}
\skbinput[from=sli]{modules_EOLE_envole/envole/ajout-application}
\skbinput[from=sli]{modules_EOLE_envole/envole/ajout-application-pratique}
\skbinput[from=sli]{modules_EOLE_envole/envole/liste-applications}
\skbinput[from=sli]{modules_EOLE_envole/envole/posh}
\skbinput[from=sli]{licences/license-cc-by-sa-2.0}
\end{document}

View File

@ -0,0 +1,36 @@
\documentclass{article}
\usepackage{skb}
\skbconfig[
root = ../../,
rep = content,
pub = presentations,
fig = figures,
sli = slides,
acr = database/acr,
bib = database/bib
]{skblocal.tex}
\skbinput[from=rep]{style/preambule_report}
%\title[]{FIXME}
%\subtitle{FIXME}
%\author[Equipe Auteur]{Cadoles}
%
%\institute[Cadoles]{\skbfigure[width=2cm]{cadoles/logo_01.png}}
%
%
%\date{{\small \today}}
\begin{document}
\maketitle
\skbinput[from=rep]{style/title}
% Corps de la formation
%\skbinput[from=rep]{}
\skbinput[from=rep]{licences/license-cc-by-sa-2.0}
\end{document}

View File

@ -0,0 +1,45 @@
\documentclass{beamer}
\usepackage{skb}
\skbconfig[
root = ../../,
rep = content,
pub = presentations,
fig = figures,
sli = slides,
acr = database/acr,
bib = database/bib
]{skblocal.tex}
\skbinput[from=sli]{style/preambule}
\title[]{Journée thématique Envole}
\subtitle{FIXME}
\author[Equipe Auteur]{Cadoles}
\institute[Cadoles]{\skbfigure[width=2cm]{cadoles/logo_01.png}}
\date{{\small \today}}
\subject{Talks}
\AtBeginSubsection[]
{
\begin{frame}<beamer>
\frametitle{}
\tableofcontents[currentsection,currentsubsection]
\end{frame}
}
\begin{document}
\skbinput[from=sli]{style/title}
% Corps de la formation
%\skbinput[from=sli]{}
\skbinput[from=sli]{licences/license-cc-by-sa-2.0}
\end{document}

View File

@ -0,0 +1,45 @@
\documentclass{beamer}
\usepackage{skb}
\skbconfig[
root = ../../,
rep = content,
pub = presentations,
fig = figures,
sli = slides,
acr = database/acr,
bib = database/bib
]{skblocal.tex}
\skbinput[from=sli]{style/preambule}
\title[]{Journée thématique Scribe}
\subtitle{FIXME}
\author[Equipe Auteur]{Cadoles}
\institute[Cadoles]{\skbfigure[width=2cm]{cadoles/logo_01.png}}
\date{{\small \today}}
\subject{Talks}
\AtBeginSubsection[]
{
\begin{frame}<beamer>
\frametitle{}
\tableofcontents[currentsection,currentsubsection]
\end{frame}
}
\begin{document}
\skbinput[from=sli]{style/title}
% Corps de la formation
%\skbinput[from=sli]{}
\skbinput[from=sli]{licences/license-cc-by-sa-2.0}
\end{document}

View File

@ -0,0 +1,202 @@
\documentclass{beamer}
\usepackage{skb}
%\usertheme{Madrid}
\setbeamercovered{transparent}
\setcounter{tocdepth}{2}
\usepackage[french]{babel}
%\usepackage[utf8,utf8x]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{xunicode} %Unicode extras!
\usepackage{xltxtra} %Fixes
\setmainfont{CaviarDreams}
\usepackage{multicol}
%\usepackage{colortbtl}
\usepackage{graphicx}
\usepackage{verbatim} % Pour l'insertion de fichier en mode verbatim
\usepackage{ucs}
\usepackage{tabto}
\usepackage{xcolor}
\usepackage{hyperref}
\usepackage{hyperxmp}
\usepackage{minted}
\usepackage{tikz}
\usepackage{gitdags}
%\usepackage{pstricks}
%\usepackage{pst-3d,pst-coil,pst-eps,pst-fill,pst-grad,pst-node,pst-plot,pst-text,pst-tree}
\hypersetup{%
colorlinks=true,linkcolor=blue,urlcolor=blue,pdfpagemode=UseNone,
pdftitle={Formation Git},
pdfkeywords={SCM, Git},
pdfauthor={Benjamin Bohard},
pdflang={fr-FR},
pdfcopyright={Copyright © 2015 Cadoles}, % Nécessite XeTeX
pdflicenseurl={http://creativecommons.org/licenses/by-nc-sa/2.0/fr/},
}
%\usecolortheme{crane}
\definecolor{UniBlue}{RGB}{83,121,180}
\definecolor{CleanWhite}{RGB}{255,255,255}
\definecolor{DirtyWhite}{RGB}{235,235,255}
\setbeamercolor{title}{fg=UniBlue}
\setbeamercolor{frametitle}{fg=CleanWhite}
\setbeamercolor{structure}{fg=UniBlue}
\setbeamertemplate{items}[circle]
\setbeamertemplate{blocks}[rounded][shadow=true]
\setbeamercolor{block body example}{bg=DirtyWhite}
\skbconfig[
root = ../../../,
rep = content,
pub = presentations,
fig = figures,
sli = slides,
acr = database/acr,
bib = database/bib
]{skblocal.tex}
\setbeamertemplate{background}
{\skbinput[from=fig]{cadoles/gray_frame_background}}
\newcommand{\commande}[1]{\texttt{\scriptsize{#1}}}
\title[]{Formation Git}
\subtitle{Oberthur Cash Protection}
\author[Equipe Auteur]{Benjamin Bohard}
\institute[Cadoles]{\skbfigure[width=2cm]{cadoles/logo_01.png}}
\date{{\small \today}}
\subject{Talks}
\AtBeginSubsection[]
{
\begin{frame}
\frametitle{}
\tableofcontents[currentsection,currentsubsection]
\end{frame}
}
\AtBeginSection[]
{
\begin{frame}
\frametitle{}
\tableofcontents[currentsection]
\end{frame}
}
%\logo{
% \skbfigure[width=2cm]{cadoles/logo_01.png}
%}
\begin{document}
\skbinput[from=rep]{style/title}
\part{Fondamentaux}
\frame{\partpage}
\frame{\tableofcontents[part=1]}
\section{Qu'attendre d'un SCM ?}
\skbinput[from=rep]{outils/scm/definition}
\skbinput[from=rep]{outils/scm/fonctionnalites_attendues}
\section{Les caractéristiques de git}
\skbinput[from=rep]{outils/scm/git/presentation}
\skbinput[from=rep]{outils/scm/git/decentralise}
\skbinput[from=rep]{outils/scm/git/stockage}
\skbinput[from=rep]{outils/scm/git/etats_fichier}
\section{S'adapter au processus}
\skbinput[from=rep]{outils/scm/workflow/branching}
\skbinput[from=rep]{outils/scm/workflow/driessen}
\skbinput[from=rep]{outils/scm/workflow/driessen/schema}
\skbinput[from=rep]{commun/questions}
\part{Préparation}
\frame{\partpage}
\section{Installation}
\subsection{Côté \emph{client}}
\skbinput[from=rep]{outils/scm/git/installation/windows}
\skbinput[from=rep]{outils/scm/git/installation/macos}
\skbinput[from=rep]{outils/scm/git/installation/linux}
\subsection{Côté \emph{serveur}}
\skbinput[from=rep]{outils/scm/git/web/basicssh}
\skbinput[from=rep]{outils/scm/git/web/gitolite}
\skbinput[from=rep]{outils/scm/git/web/gitlab}
\skbinput[from=rep]{outils/scm/git/web/gogs}
\section{Configuration}
\subsection{Utilisateur}
\skbinput[from=rep]{outils/scm/git/configuration/presentation}
\skbinput[from=rep]{outils/scm/git/configuration/user}
\subsection{Ergonomie}
\skbinput[from=rep]{outils/scm/git/configuration/alias}
\skbinput[from=rep]{outils/scm/git/configuration/editeur}
\skbinput[from=rep]{outils/scm/git/configuration/shell}
\subsection{Hooks}
\skbinput[from=rep]{outils/scm/git/configuration/hooks}
\part{Récapitulatif des commandes}
\frame{\partpage}
\section{Pour démarrer un projet}
\skbinput[from=rep]{outils/scm/git/commandes/init}
\skbinput[from=rep]{outils/scm/git/commandes/clone}
\section{Pour faire le point}
\skbinput[from=rep]{outils/scm/git/commandes/status}
\skbinput[from=rep]{outils/scm/git/commandes/ls-files}
\skbinput[from=rep]{outils/scm/git/commandes/diff}
\skbinput[from=rep]{outils/scm/git/commandes/log}
\skbinput[from=rep]{outils/scm/git/commandes/grep}
\skbinput[from=rep]{outils/scm/git/commandes/cherry}
\skbinput[from=rep]{outils/scm/git/commandes/show}
\skbinput[from=rep]{outils/scm/git/commandes/bisect}
\skbinput[from=rep]{outils/scm/git/commandes/blame}
\section{Pour modifier le contenu du dépôt}
\skbinput[from=rep]{outils/scm/git/commandes/checkout}
\skbinput[from=rep]{outils/scm/git/commandes/fetch}
\skbinput[from=rep]{outils/scm/git/commandes/pull}
\skbinput[from=rep]{outils/scm/git/commandes/merge}
\skbinput[from=rep]{outils/scm/git/commandes/rebase}
\skbinput[from=rep]{outils/scm/git/commandes/add}
\skbinput[from=rep]{outils/scm/git/commandes/commit}
\skbinput[from=rep]{outils/scm/git/commandes/push}
\skbinput[from=rep]{outils/scm/git/commandes/cherry-pick}
\skbinput[from=rep]{outils/scm/git/commandes/reset}
\skbinput[from=rep]{outils/scm/git/commandes/clean}
\skbinput[from=rep]{outils/scm/git/commandes/revert}
\skbinput[from=rep]{outils/scm/git/commandes/filter-branch}
\section{Pour organiser son développement}
\skbinput[from=rep]{outils/scm/git/commandes/branch}
\skbinput[from=rep]{outils/scm/git/commandes/tag}
\section{Aide-mémoire}
\skbinput[from=rep]{outils/scm/git/commandes}
\part{Mise en pratique}
\frame{\partpage}
\section{Mise en place}
\skbinput[from=rep]{outils/scm/git/exercices/exercice_01}
\skbinput[from=rep]{outils/scm/git/exercices/exercice_01/steps}
\skbinput[from=rep]{outils/scm/git/exercices/exercice_02}
\skbinput[from=rep]{outils/scm/git/exercices/exercice_02/steps}
\skbinput[from=rep]{outils/scm/git/exercices/exercice_03}
\skbinput[from=rep]{outils/scm/git/exercices/exercice_03/steps}
\section{Dépôt individuel}
\skbinput[from=rep]{outils/scm/git/exercices/exercice_04}
\skbinput[from=rep]{outils/scm/git/exercices/exercice_04/steps}
\skbinput[from=rep]{outils/scm/git/exercices/exercice_05}
\skbinput[from=rep]{outils/scm/git/exercices/exercice_05/steps}
\skbinput[from=rep]{outils/scm/git/exercices/exercice_06}
\skbinput[from=rep]{outils/scm/git/exercices/exercice_06/steps}
\skbinput[from=rep]{outils/scm/git/exercices/exercice_07}
\skbinput[from=rep]{outils/scm/git/exercices/exercice_07/steps}
\section{Dépôt commun}
\skbinput[from=rep]{outils/scm/git/exercices/exercice_08}
\skbinput[from=rep]{outils/scm/git/exercices/exercice_08/steps}
\skbinput[from=rep]{outils/scm/git/exercices/exercice_09}
%\skbinput[from=rep]{outils/scm/git/exercices/exercice_09/steps}
\section{Paquet debian}
\skbinput[from=rep]{outils/scm/git/exercices/exercice_10}
\skbinput[from=rep]{outils/scm/git/exercices/exercice_10/steps}
\part{Pour aller plus loin}
\frame{\partpage}
\skbinput[from=rep]{outils/scm/git/references/references}
\part{licence}
\skbinput[from=rep]{licences/license-cc-by-sa-2.0}
\end{document}

View File

@ -0,0 +1,279 @@
%%
%% Copyright (C) 2014 by Julien Cretel <jubobs.tex at gmail.com>
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3
%% of this license or (at your option) any later version.
%% The latest version of this license is in
%%
%% http://www.latex-project.org/lppl.txt
%%
%% and version 1.3 or later is part of all distributions of LaTeX
%% version 2005/12/01 or later.
%%
%% This work has the LPPL maintenance status `maintained'.
%%
%% The Current Maintainer of this work is Julien Cretel.
%%
%% This work currently consists of the file gitdags.sty.
%%
\NeedsTeXFormat{LaTeX2e}[2011/06/27]
\ProvidesClass{gitdags}
[2014/08/28 v0.1 A package for drawing educational Git history graphs]
\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{tikz}}
\ProcessOptions\relax
\RequirePackage{xcolor-solarized}
\RequirePackage{tikz}
\usetikzlibrary{
arrows.meta,
graphs,
positioning,
shadows,
shapes,
}
% conflict color
\colorlet{conflictcolor}{red}
% custom shape, adapted from 102.5.3 in the TikZ 3.0 manual
\pgfdeclareshape{dogeared}{
\inheritsavedanchors[from=rectangle]
\inheritanchorborder[from=rectangle]
\inheritanchor[from=rectangle]{center}
\inheritanchor[from=rectangle]{north}
\inheritanchor[from=rectangle]{south}
\inheritanchor[from=rectangle]{west}
\inheritanchor[from=rectangle]{east}
\backgroundpath{%
\southwest \pgf@xa=\pgf@x \pgf@ya=\pgf@y
\northeast \pgf@xb=\pgf@x \pgf@yb=\pgf@y
\pgf@xc=\pgf@xb \advance\pgf@xc by-5pt
\pgf@yc=\pgf@yb \advance\pgf@yc by-5pt
\pgfpathmoveto{\pgfpoint{\pgf@xa}{\pgf@ya}}
\pgfpathlineto{\pgfpoint{\pgf@xa}{\pgf@yb}}
\pgfpathlineto{\pgfpoint{\pgf@xc}{\pgf@yb}}
\pgfpathlineto{\pgfpoint{\pgf@xb}{\pgf@yc}}
\pgfpathlineto{\pgfpoint{\pgf@xb}{\pgf@ya}}
\pgfpathclose
\pgfpathmoveto{\pgfpoint{\pgf@xc}{\pgf@yb}}
\pgfpathlineto{\pgfpoint{\pgf@xc}{\pgf@yc}}
\pgfpathlineto{\pgfpoint{\pgf@xb}{\pgf@yc}}
\pgfpathclose
}
}
% To cancel a shadow (see http://tex.stackexchange.com/a/198298/21891)
\tikzset{reset preaction/.code={\def\tikz@preactions{}}}
% --- repository history graphs ---
% style definitions
\tikzset{
gitdags node/.style={
draw,
node distance = 1.4em,
drop shadow = {opacity=0.15},
font = \fontfamily{lmtt}\selectfont\small,
},
DAGref/.style={
gitdags node,
shape = rectangle,
minimum height = 1.4em,
draw = solarized-base01,
thick,
font = \fontfamily{lmtt}\selectfont\scriptsize,
},
DAGedge/.style={
semithick,
Latex-,
draw = gray,
},
DAGrefedge/.style={
DAGedge,
thick,
densely dotted,
},
DAGcommit/.style={
gitdags node,
shape = rounded rectangle,
rounded rectangle arc length = 90,
minimum height = 1.6em,
minimum width = 2em,
draw = solarized-base01,
fill = solarized-green!20,
very thick,
},
graphs/DAG/.style={
nodes = DAGcommit,
edges = DAGedge,
branch down = 3em,
grow right sep = 1.5em,
},
gitareas/.style={
gitdags node,
shape = rectangle,
rounded corners = .5em,
minimum width = 7em,
minimum height = 3em,
text opacity = 0.75,
semithick,
},
gitSA/.style={
gitareas,
anchor = north west,
xshift = 1em,
yshift = -1em,
draw = solarized-orange,
fill = solarized-orange!5,
text = solarized-orange,
},
gitWT/.style={
gitareas,
node distance = .6em,
draw = solarized-violet,
fill = solarized-violet!5,
text = solarized-violet,
},
resetarrows/.style={
-Stealth,
dashed,
thick,
draw = solarized-base02,
draw opacity = .75,
},
highlighted commit/.style={
DAGcommit,
reset preaction,
fill opacity = 0,
draw = solarized-base02,
},
problematic commits/.style={
reset preaction,
draw opacity = .25,
fill opacity = .25,
},
graphs/unreachable/.style={
problematic commits,
target edge style = problematic commits,
},
graphs/conflict/.style={
empty nodes,
problematic commits,
target edge style = problematic commits,
draw = conflictcolor,
fill = conflictcolor!25,
},
placeholder commits/.style={
reset preaction,
draw opacity = 0,
fill opacity = 0,
},
graphs/placeholder/.style={
placeholder commits,
target edge style = placeholder commits,
},
blob/.style={
shape = dogeared,
minimum width = 2em,
minimum height = 2.82em,
node distance = .75em,
line join = bevel,
draw = black,
fill = white,
align = left,
font = \ttfamily\tiny,
},
}
% directed acyclic graph
\newcommand\gitDAG[1][]{\graph[DAG,#1]}
% helper macro (let's check the name's availability)
\newcommand\nodename@gitdags{}
% local-branch reference
\newcommand\gitbranch[4][]{%
\renewcommand\nodename@gitdags{#1}%
\if\relax\detokenize{#1}\relax% check for empty optional argument
\renewcommand\nodename@gitdags{#2}%
\fi
\node[
DAGref,
fill = yellow!30,
] (\nodename@gitdags) [#3] {#2};
\draw[DAGrefedge] (#4) -- (\nodename@gitdags);
}
% remote-branch reference
\newcommand\gitremotebranch[4][]{%
\renewcommand\nodename@gitdags{#1}%
\if\relax\detokenize{#1}\relax% check for empty optional argument
\renewcommand\nodename@gitdags{#2}%
\fi
\node[
DAGref,
fill = solarized-blue!20,
] (\nodename@gitdags) [#3] {#2};
\draw[DAGrefedge] (#4) -- (\nodename@gitdags);
}
% tag reference
\newcommand\gittag[4][]{%
\renewcommand\nodename@gitdags{#1}%
\if\relax\detokenize{#1}\relax% check for empty optional argument
\renewcommand\nodename@gitdags{#2}%
\fi
\node[
DAGref,
fill = solarized-magenta!20,
] (\nodename@gitdags) [#3] {#2};
\draw[DAGrefedge] (#4) -- (\nodename@gitdags);
}
% HEAD symbolic reference
\newcommand\gitHEAD[2]{%
\node[
DAGref,
fill = solarized-red!20,
node distance = 1em,
] (gitHEAD) [#1] {HEAD};
\draw[DAGrefedge] (#2) -- (gitHEAD);
}
% the following macro is useful for explaining how merge conflicts arise
\newcommand\gitblob[2][]
{\node[blob,#1] {#2};}
% to highlight a merge conflict arising in a given file
\newcommand\gitblobmc[1]{%
\node[
blob,
draw = conflictcolor,
text = conflictcolor,
font = \scriptsize,
#1] {???};
}
% staging area and worktree
\newcommand\SAandWT{%
\node[
gitSA,
] (stagingarea) at (current bounding box.south east) {staging area};
\node[
gitWT,
below=of stagingarea,
] (workingtree) {working tree};
}
% arrows pointing from a commit to the staging area or working tree
\newcommand\toSAorWT[2]{%
\node[highlighted commit] at (#1) {\phantom{#1}};
\draw[resetarrows] (#1.south) to[out=290, in=170]
([xshift=1em,yshift=-1em]#2.north west);
}
\newcommand\toSAfrom[1]{\toSAorWT{#1}{stagingarea}}
\newcommand\toWTfrom[1]{\toSAorWT{#1}{workingtree}}
\endinput

View File

@ -0,0 +1,1221 @@
%%
%% This is file `minted.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% minted.dtx (with options: `package')
%% Copyright 2013--2015 Geoffrey M. Poore
%% Copyright 2010--2011 Konrad Rudolph
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3
%% of this license or (at your option) any later version.
%% The latest version of this license is in
%% http://www.latex-project.org/lppl.txt
%% and version 1.3 or later is part of all distributions of LaTeX
%% version 2005/12/01 or later.
%%
%% Additionally, the project may be distributed under the terms of the new BSD
%% license.
%%
%% This work has the LPPL maintenance status `maintained'.
%%
%% The Current Maintainer of this work is Geoffrey Poore.
%%
%% This work consists of the files minted.dtx and minted.ins
%% and the derived file minted.sty.
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{minted}
[2015/01/31 v2.0 Yet another Pygments shim for LaTeX]
\RequirePackage{keyval}
\RequirePackage{kvoptions}
\RequirePackage{fancyvrb}
\RequirePackage{float}
\RequirePackage{ifthen}
\RequirePackage{calc}
\RequirePackage{ifplatform}
\RequirePackage{pdftexcmds}
\RequirePackage{etoolbox}
\RequirePackage{xstring}
\RequirePackage{lineno}
\AtBeginDocument{%
\@ifpackageloaded{color}{}{%
\@ifpackageloaded{xcolor}{}{\RequirePackage{xcolor}}}%
}
\DeclareVoidOption{chapter}{\def\minted@float@within{chapter}}
\DeclareVoidOption{section}{\def\minted@float@within{section}}
\DeclareBoolOption{newfloat}
\DeclareBoolOption[true]{cache}
\StrSubstitute{\jobname}{ }{_}[\minted@jobname]
\StrSubstitute{\minted@jobname}{"}{}[\minted@jobname]
\StrSubstitute{\minted@jobname}{*}{-}[\minted@jobname]
\newcommand{\minted@cachedir}{\detokenize{_}minted-\minted@jobname}
\let\minted@cachedir@windows\minted@cachedir
\define@key{minted}{cachedir}{%
\@namedef{minted@cachedir}{#1}%
\StrSubstitute{\minted@cachedir}{/}{\@backslashchar}[\minted@cachedir@windows]}
\let\minted@outputdir\@empty
\let\minted@outputdir@windows\@empty
\define@key{minted}{outputdir}{%
\@namedef{minted@outputdir}{#1/}%
\StrSubstitute{\minted@outputdir}{/}%
{\@backslashchar}[\minted@outputdir@windows]}
\DeclareBoolOption{kpsewhich}
\DeclareBoolOption{langlinenos}
\DeclareBoolOption{draft}
\DeclareComplementaryOption{final}{draft}
\ProcessKeyvalOptions*
\ifthenelse{\boolean{minted@newfloat}}{\RequirePackage{newfloat}}{}
\ifthenelse{\boolean{minted@cache}}{%
\AtEndOfPackage{\ProvideDirectory{\minted@outputdir\minted@cachedir}}}{}
\newcommand{\minted@input}[1]{%
\IfFileExists{#1}%
{\input{#1}}%
{\PackageError{minted}{Missing Pygments output; \string\inputminted\space
was^^Jprobably given a file that does not exist--otherwise, you may need
^^Jthe outputdir package option, or may be using an incompatible build
tool\ifwindows,^^Jor may be using the kpsewhich option without having
PowerShell installed\fi}%
{This could be caused by using -output-directory or -aux-directory
^^Jwithout setting minted's outputdir, or by using a build tool that
^^Jchanges paths in ways minted cannot detect\ifwindows, or by using the
^^Jkpsewhich option without PowerShell\fi.}}%
}
\newcommand{\minted@infile}{\jobname.out.pyg}
\newcommand{\minted@cachelist}{}
\newcommand{\minted@addcachefile}[1]{%
\expandafter\long\expandafter\gdef\expandafter\minted@cachelist\expandafter{%
\minted@cachelist,^^J%
\space\space#1}%
\expandafter\gdef\csname minted@cached@#1\endcsname{}%
}
\newcommand{\minted@savecachelist}{%
\ifdefempty{\minted@cachelist}{}{%
\immediate\write\@mainaux{%
\string\gdef\string\minted@oldcachelist\string{%
\minted@cachelist\string}}%
}%
}
\newcommand{\minted@cleancache}{%
\ifcsname minted@oldcachelist\endcsname
\def\do##1{%
\ifthenelse{\equal{##1}{}}{}{%
\ifcsname minted@cached@##1\endcsname\else
\DeleteFile[\minted@outputdir\minted@cachedir]{##1}%
\fi
}%
}%
\expandafter\docsvlist\expandafter{\minted@oldcachelist}%
\else
\fi
}
\ifthenelse{\boolean{minted@draft}}%
{\AtEndDocument{%
\ifcsname minted@oldcachelist\endcsname
\let\minted@cachelist\minted@oldcachelist
\minted@savecachelist
\fi}}%
{\AtEndDocument{%
\minted@savecachelist
\minted@cleancache}}%
\ifwindows
\providecommand{\DeleteFile}[2][]{%
\ifthenelse{\equal{#1}{}}%
{\IfFileExists{#2}{\immediate\write18{del "#2"}}{}}%
{\IfFileExists{#1/#2}{%
\StrSubstitute{#1}{/}{\@backslashchar}[\minted@windir]
\immediate\write18{del "\minted@windir\@backslashchar #2"}}{}}}
\else
\providecommand{\DeleteFile}[2][]{%
\ifthenelse{\equal{#1}{}}%
{\IfFileExists{#2}{\immediate\write18{rm "#2"}}{}}%
{\IfFileExists{#1/#2}{\immediate\write18{rm "#1/#2"}}{}}}
\fi
\ifwindows
\newcommand{\ProvideDirectory}[1]{%
\StrSubstitute{#1}{/}{\@backslashchar}[\minted@windir]
\immediate\write18{if not exist "\minted@windir" mkdir "\minted@windir"}}
\else
\newcommand{\ProvideDirectory}[1]{%
\immediate\write18{mkdir -p "#1"}}
\fi
\newboolean{AppExists}
\newread\minted@appexistsfile
\newcommand{\TestAppExists}[1]{
\ifwindows
\DeleteFile{\jobname.aex}
\immediate\write18{for \string^\@percentchar i in (#1.exe #1.bat #1.cmd)
do set >"\jobname.aex" <nul: /p
x=\string^\@percentchar \string~$PATH:i>>"\jobname.aex"}
%$ <- balance syntax highlighting
\immediate\openin\minted@appexistsfile\jobname.aex
\expandafter\def\expandafter\@tmp@cr\expandafter{\the\endlinechar}
\endlinechar=-1\relax
\readline\minted@appexistsfile to \minted@apppathifexists
\endlinechar=\@tmp@cr
\ifthenelse{\equal{\minted@apppathifexists}{}}
{\AppExistsfalse}
{\AppExiststrue}
\immediate\closein\minted@appexistsfile
\DeleteFile{\jobname.aex}
\else
\immediate\write18{which "#1" && touch "\jobname.aex"}
\IfFileExists{\jobname.aex}
{\AppExiststrue
\DeleteFile{\jobname.aex}}
{\AppExistsfalse}
\fi
}
\newcommand{\minted@optlistcl@g}{}
\newcommand{\minted@optlistcl@g@i}{}
\let\minted@lang\@empty
\newcommand{\minted@optlistcl@lang}{}
\newcommand{\minted@optlistcl@lang@i}{}
\newcommand{\minted@optlistcl@cmd}{}
\newcommand{\minted@optlistfv@g}{}
\newcommand{\minted@optlistfv@g@i}{}
\newcommand{\minted@optlistfv@lang}{}
\newcommand{\minted@optlistfv@lang@i}{}
\newcommand{\minted@optlistfv@cmd}{}
\newcommand{\minted@configlang}[1]{%
\def\minted@lang{#1}%
\ifcsname minted@optlistcl@lang\minted@lang\endcsname\else
\expandafter\gdef\csname minted@optlistcl@lang\minted@lang\endcsname{}%
\fi
\ifcsname minted@optlistcl@lang\minted@lang @i\endcsname\else
\expandafter\gdef\csname minted@optlistcl@lang\minted@lang @i\endcsname{}%
\fi
\ifcsname minted@optlistfv@lang\minted@lang\endcsname\else
\expandafter\gdef\csname minted@optlistfv@lang\minted@lang\endcsname{}%
\fi
\ifcsname minted@optlistfv@lang\minted@lang @i\endcsname\else
\expandafter\gdef\csname minted@optlistfv@lang\minted@lang @i\endcsname{}%
\fi
}
\newcommand{\minted@addto@optlistcl}[2]{%
\expandafter\def\expandafter#1\expandafter{#1%
\detokenize{#2}\space}}
\newcommand{\minted@addto@optlistcl@lang}[2]{%
\expandafter\let\expandafter\minted@tmp\csname #1\endcsname
\expandafter\def\expandafter\minted@tmp\expandafter{\minted@tmp%
\detokenize{#2}\space}%
\expandafter\let\csname #1\endcsname\minted@tmp}
\newcommand{\minted@def@optcl}[4][]{%
\ifthenelse{\equal{#1}{}}%
{\define@key{minted@opt@g}{#2}{%
\minted@addto@optlistcl{\minted@optlistcl@g}{#3=#4}%
\@namedef{minted@opt@g:#2}{#4}}%
\define@key{minted@opt@g@i}{#2}{%
\minted@addto@optlistcl{\minted@optlistcl@g@i}{#3=#4}%
\@namedef{minted@opt@g@i:#2}{#4}}%
\define@key{minted@opt@lang}{#2}{%
\minted@addto@optlistcl@lang{minted@optlistcl@lang\minted@lang}{#3=#4}%
\@namedef{minted@opt@lang\minted@lang:#2}{#4}}%
\define@key{minted@opt@lang@i}{#2}{%
\minted@addto@optlistcl@lang{%
minted@optlistcl@lang\minted@lang @i}{#3=#4}%
\@namedef{minted@opt@lang\minted@lang @i:#2}{#4}}%
\define@key{minted@opt@cmd}{#2}{%
\minted@addto@optlistcl{\minted@optlistcl@cmd}{#3=#4}%
\@namedef{minted@opt@cmd:#2}{#4}}}%
{\define@key{minted@opt@g}{#2}[#1]{%
\minted@addto@optlistcl{\minted@optlistcl@g}{#3=#4}%
\@namedef{minted@opt@g:#2}{#4}}%
\define@key{minted@opt@g@i}{#2}[#1]{%
\minted@addto@optlistcl{\minted@optlistcl@g@i}{#3=#4}%
\@namedef{minted@opt@g@i:#2}{#4}}%
\define@key{minted@opt@lang}{#2}[#1]{%
\minted@addto@optlistcl@lang{minted@optlistcl@lang\minted@lang}{#3=#4}%
\@namedef{minted@opt@lang\minted@lang:#2}{#4}}%
\define@key{minted@opt@lang@i}{#2}[#1]{%
\minted@addto@optlistcl@lang{%
minted@optlistcl@lang\minted@lang @i}{#3=#4}%
\@namedef{minted@opt@lang\minted@lang @i:#2}{#4}}%
\define@key{minted@opt@cmd}{#2}[#1]{%
\minted@addto@optlistcl{\minted@optlistcl@cmd}{#3=#4}%
\@namedef{minted@opt@cmd:#2}{#4}}}%
}
\edef\minted@hashchar{\string#}
\edef\minted@dollarchar{\string$}
\edef\minted@ampchar{\string&}
\edef\minted@underscorechar{\string_}
\edef\minted@tildechar{\string~}
\newcommand{\minted@escchars}{%
\let\#\minted@hashchar
\let\%\@percentchar
\let\{\@charlb
\let\}\@charrb
\let\$\minted@dollarchar
\let\&\minted@ampchar
\let\_\minted@underscorechar
\let\\\@backslashchar
\let~\minted@tildechar
\let\~\minted@tildechar
} %$ <- highlighting
\newcommand{\minted@addto@optlistcl@e}[2]{%
\begingroup
\minted@escchars
\xdef\minted@xtmp{#2}%
\endgroup
\expandafter\minted@addto@optlistcl@e@i\expandafter{\minted@xtmp}{#1}}
\def\minted@addto@optlistcl@e@i#1#2{%
\expandafter\def\expandafter#2\expandafter{#2#1\space}}
\newcommand{\minted@addto@optlistcl@lang@e}[2]{%
\begingroup
\minted@escchars
\xdef\minted@xtmp{#2}%
\endgroup
\expandafter\minted@addto@optlistcl@lang@e@i\expandafter{\minted@xtmp}{#1}}
\def\minted@addto@optlistcl@lang@e@i#1#2{%
\expandafter\let\expandafter\minted@tmp\csname #2\endcsname
\expandafter\def\expandafter\minted@tmp\expandafter{\minted@tmp#1\space}%
\expandafter\let\csname #2\endcsname\minted@tmp}
\newcommand{\minted@def@optcl@e}[4][]{%
\ifthenelse{\equal{#1}{}}%
{\define@key{minted@opt@g}{#2}{%
\minted@addto@optlistcl@e{\minted@optlistcl@g}{#3=#4}%
\@namedef{minted@opt@g:#2}{#4}}%
\define@key{minted@opt@g@i}{#2}{%
\minted@addto@optlistcl@e{\minted@optlistcl@g@i}{#3=#4}%
\@namedef{minted@opt@g@i:#2}{#4}}%
\define@key{minted@opt@lang}{#2}{%
\minted@addto@optlistcl@lang@e{minted@optlistcl@lang\minted@lang}{#3=#4}%
\@namedef{minted@opt@lang\minted@lang:#2}{#4}}%
\define@key{minted@opt@lang@i}{#2}{%
\minted@addto@optlistcl@lang@e{%
minted@optlistcl@lang\minted@lang @i}{#3=#4}%
\@namedef{minted@opt@lang\minted@lang @i:#2}{#4}}%
\define@key{minted@opt@cmd}{#2}{%
\minted@addto@optlistcl@e{\minted@optlistcl@cmd}{#3=#4}%
\@namedef{minted@opt@cmd:#2}{#4}}}%
{\define@key{minted@opt@g}{#2}[#1]{%
\minted@addto@optlistcl@e{\minted@optlistcl@g}{#3=#4}%
\@namedef{minted@opt@g:#2}{#4}}%
\define@key{minted@opt@g@i}{#2}[#1]{%
\minted@addto@optlistcl@e{\minted@optlistcl@g@i}{#3=#4}%
\@namedef{minted@opt@g@i:#2}{#4}}%
\define@key{minted@opt@lang}{#2}[#1]{%
\minted@addto@optlistcl@lang@e{minted@optlistcl@lang\minted@lang}{#3=#4}%
\@namedef{minted@opt@lang\minted@lang:#2}{#4}}%
\define@key{minted@opt@lang@i}{#2}[#1]{%
\minted@addto@optlistcl@lang@e{%
minted@optlistcl@lang\minted@lang @i}{#3=#4}%
\@namedef{minted@opt@lang\minted@lang @i:#2}{#4}}%
\define@key{minted@opt@cmd}{#2}[#1]{%
\minted@addto@optlistcl@e{\minted@optlistcl@cmd}{#3=#4}%
\@namedef{minted@opt@cmd:#2}{#4}}}%
}
\newcommand{\minted@def@optcl@style}{%
\define@key{minted@opt@g}{style}{%
\minted@addto@optlistcl{\minted@optlistcl@g}%
{-P style=##1 -P commandprefix=PYG##1}%
\minted@checkstyle{##1}%
\@namedef{minted@opt@g:style}{##1}}%
\define@key{minted@opt@g@i}{style}{%
\minted@addto@optlistcl{\minted@optlistcl@g@i}%
{-P style=##1 -P commandprefix=PYG##1}%
\minted@checkstyle{##1}%
\@namedef{minted@opt@g@i:style}{##1}}%
\define@key{minted@opt@lang}{style}{%
\minted@addto@optlistcl@lang{minted@optlistcl@lang\minted@lang}%
{-P style=##1 -P commandprefix=PYG##1}%
\minted@checkstyle{##1}%
\@namedef{minted@opt@lang\minted@lang:style}{##1}}%
\define@key{minted@opt@lang@i}{style}{%
\minted@addto@optlistcl@lang{minted@optlistcl@lang\minted@lang @i}%
{-P style=##1 -P commandprefix=PYG##1}%
\minted@checkstyle{##1}%
\@namedef{minted@opt@lang\minted@lang @i:style}{##1}}%
\define@key{minted@opt@cmd}{style}{%
\minted@addto@optlistcl{\minted@optlistcl@cmd}%
{-P style=##1 -P commandprefix=PYG##1}%
\minted@checkstyle{##1}%
\@namedef{minted@opt@cmd:style}{##1}}%
}
\newcommand{\minted@patch@Zsq}[1]{%
\ifx\upquote@cmtt\minted@undefined\else
\ifx\encodingdefault\upquote@OTone
\ifx\ttdefault\upquote@cmtt
\expandafter\ifdefstring\expandafter{\csname PYG#1Zsq\endcsname}{\char`\'}%
{\expandafter\gdef\csname PYG#1Zsq\endcsname{\char13 }}{}%
\else
\expandafter\ifdefstring\expandafter{\csname PYG#1Zsq\endcsname}{\char`\'}%
{\expandafter\gdef\csname PYG#1Zsq\endcsname{\textquotesingle}}{}%
\fi
\else
\expandafter\ifdefstring\expandafter{\csname PYG#1Zsq\endcsname}{\char`\'}%
{\expandafter\gdef\csname PYG#1Zsq\endcsname{\textquotesingle}}{}%
\fi
\fi
}
\newcommand{\minted@checkstyle}[1]{%
\ifcsname minted@styleloaded@#1\endcsname\else
\expandafter\gdef\csname minted@styleloaded@#1\endcsname{}%
\ifthenelse{\boolean{minted@cache}}%
{\IfFileExists{\minted@outputdir\minted@cachedir/#1.pygstyle}{}{%
\ifwindows
\immediate\write18{\MintedPygmentize\space -S #1 -f latex
-P commandprefix=PYG#1
> "\minted@outputdir@windows\minted@cachedir@windows\@backslashchar#1.pygstyle"}%
\else
\immediate\write18{\MintedPygmentize\space -S #1 -f latex
-P commandprefix=PYG#1
> "\minted@outputdir\minted@cachedir/#1.pygstyle"}%
\fi
}%
\begingroup
\let\def\gdef
\endlinechar=-1\relax
\minted@input{\minted@outputdir\minted@cachedir/#1.pygstyle}%
\endgroup
\minted@addcachefile{#1.pygstyle}}%
{\ifwindows
\immediate\write18{\MintedPygmentize\space -S #1 -f latex
-P commandprefix=PYG#1 > "\minted@outputdir@windows\jobname.out.pyg"}%
\else
\immediate\write18{\MintedPygmentize\space -S #1 -f latex
-P commandprefix=PYG#1 > "\minted@outputdir\jobname.out.pyg"}%
\fi
\begingroup
\let\def\gdef
\endlinechar=-1\relax
\minted@input{\minted@outputdir\jobname.out.pyg}%
\endgroup}%
\ifx\@onlypreamble\@notprerr
\minted@patch@Zsq{#1}%
\else
\minted@patch@Zsq{#1}%
\AtBeginDocument{\minted@patch@Zsq{#1}}%
\fi
\fi
}
\ifthenelse{\boolean{minted@draft}}{\renewcommand{\minted@checkstyle}[1]{}}{}
\newcommand{\minted@def@optcl@switch}[2]{%
\define@booleankey{minted@opt@g}{#1}%
{\minted@addto@optlistcl{\minted@optlistcl@g}{#2=True}%
\@namedef{minted@opt@g:#1}{true}}
{\minted@addto@optlistcl{\minted@optlistcl@g}{#2=False}%
\@namedef{minted@opt@g:#1}{false}}
\define@booleankey{minted@opt@g@i}{#1}%
{\minted@addto@optlistcl{\minted@optlistcl@g@i}{#2=True}%
\@namedef{minted@opt@g@i:#1}{true}}
{\minted@addto@optlistcl{\minted@optlistcl@g@i}{#2=False}%
\@namedef{minted@opt@g@i:#1}{false}}
\define@booleankey{minted@opt@lang}{#1}%
{\minted@addto@optlistcl@lang{minted@optlistcl@lang\minted@lang}{#2=True}%
\@namedef{minted@opt@lang\minted@lang:#1}{true}}
{\minted@addto@optlistcl@lang{minted@optlistcl@lang\minted@lang}{#2=False}%
\@namedef{minted@opt@lang\minted@lang:#1}{false}}
\define@booleankey{minted@opt@lang@i}{#1}%
{\minted@addto@optlistcl@lang{minted@optlistcl@lang\minted@lang @i}{#2=True}%
\@namedef{minted@opt@lang\minted@lang @i:#1}{true}}
{\minted@addto@optlistcl@lang{minted@optlistcl@lang\minted@lang @i}{#2=False}%
\@namedef{minted@opt@lang\minted@lang @i:#1}{false}}
\define@booleankey{minted@opt@cmd}{#1}%
{\minted@addto@optlistcl{\minted@optlistcl@cmd}{#2=True}%
\@namedef{minted@opt@cmd:#1}{true}}
{\minted@addto@optlistcl{\minted@optlistcl@cmd}{#2=False}%
\@namedef{minted@opt@cmd:#1}{false}}
}
\newcommand{\minted@def@optfv}[1]{%
\define@key{minted@opt@g}{#1}{%
\expandafter\def\expandafter\minted@optlistfv@g\expandafter{%
\minted@optlistfv@g#1=##1,}%
\@namedef{minted@opt@g:#1}{##1}}
\define@key{minted@opt@g@i}{#1}{%
\expandafter\def\expandafter\minted@optlistfv@g@i\expandafter{%
\minted@optlistfv@g@i#1=##1,}%
\@namedef{minted@opt@g@i:#1}{##1}}
\define@key{minted@opt@lang}{#1}{%
\expandafter\let\expandafter\minted@tmp%
\csname minted@optlistfv@lang\minted@lang\endcsname
\expandafter\def\expandafter\minted@tmp\expandafter{%
\minted@tmp#1=##1,}%
\expandafter\let\csname minted@optlistfv@lang\minted@lang\endcsname%
\minted@tmp
\@namedef{minted@opt@lang\minted@lang:#1}{##1}}
\define@key{minted@opt@lang@i}{#1}{%
\expandafter\let\expandafter\minted@tmp%
\csname minted@optlistfv@lang\minted@lang @i\endcsname
\expandafter\def\expandafter\minted@tmp\expandafter{%
\minted@tmp#1=##1,}%
\expandafter\let\csname minted@optlistfv@lang\minted@lang @i\endcsname%
\minted@tmp
\@namedef{minted@opt@lang\minted@lang @i:#1}{##1}}
\define@key{minted@opt@cmd}{#1}{%
\expandafter\def\expandafter\minted@optlistfv@cmd\expandafter{%
\minted@optlistfv@cmd#1=##1,}%
\@namedef{minted@opt@cmd:#1}{##1}}
}
\newcommand{\minted@def@optfv@switch}[1]{%
\define@booleankey{minted@opt@g}{#1}%
{\expandafter\def\expandafter\minted@optlistfv@g\expandafter{%
\minted@optlistfv@g#1=true,}%
\@namedef{minted@opt@g:#1}{true}}%
{\expandafter\def\expandafter\minted@optlistfv@g\expandafter{%
\minted@optlistfv@g#1=false,}%
\@namedef{minted@opt@g:#1}{false}}%
\define@booleankey{minted@opt@g@i}{#1}%
{\expandafter\def\expandafter\minted@optlistfv@g@i\expandafter{%
\minted@optlistfv@g@i#1=true,}%
\@namedef{minted@opt@g@i:#1}{true}}%
{\expandafter\def\expandafter\minted@optlistfv@g@i\expandafter{%
\minted@optlistfv@g@i#1=false,}%
\@namedef{minted@opt@g@i:#1}{false}}%
\define@booleankey{minted@opt@lang}{#1}%
{\expandafter\let\expandafter\minted@tmp%
\csname minted@optlistfv@lang\minted@lang\endcsname
\expandafter\def\expandafter\minted@tmp\expandafter{%
\minted@tmp#1=true,}%
\expandafter\let\csname minted@optlistfv@lang\minted@lang\endcsname%
\minted@tmp
\@namedef{minted@opt@lang\minted@lang:#1}{true}}%
{\expandafter\let\expandafter\minted@tmp%
\csname minted@optlistfv@lang\minted@lang\endcsname
\expandafter\def\expandafter\minted@tmp\expandafter{%
\minted@tmp#1=false,}%
\expandafter\let\csname minted@optlistfv@lang\minted@lang\endcsname%
\minted@tmp
\@namedef{minted@opt@lang\minted@lang:#1}{false}}%
\define@booleankey{minted@opt@lang@i}{#1}%
{\expandafter\let\expandafter\minted@tmp%
\csname minted@optlistfv@lang\minted@lang @i\endcsname
\expandafter\def\expandafter\minted@tmp\expandafter{%
\minted@tmp#1=true,}%
\expandafter\let\csname minted@optlistfv@lang\minted@lang @i\endcsname%
\minted@tmp
\@namedef{minted@opt@lang\minted@lang @i:#1}{true}}%
{\expandafter\let\expandafter\minted@tmp%
\csname minted@optlistfv@lang\minted@lang @i\endcsname
\expandafter\def\expandafter\minted@tmp\expandafter{%
\minted@tmp#1=false,}%
\expandafter\let\csname minted@optlistfv@lang\minted@lang @i\endcsname%
\minted@tmp
\@namedef{minted@opt@lang\minted@lang @i:#1}{false}}%
\define@booleankey{minted@opt@cmd}{#1}%
{\expandafter\def\expandafter\minted@optlistfv@cmd\expandafter{%
\minted@optlistfv@cmd#1=true,}%
\@namedef{minted@opt@cmd:#1}{true}}%
{\expandafter\def\expandafter\minted@optlistfv@cmd\expandafter{%
\minted@optlistfv@cmd#1=false,}%
\@namedef{minted@opt@cmd:#1}{false}}%
}
\newboolean{minted@isinline}
\newcommand{\minted@fvset}{%
\expandafter\fvset\expandafter{\minted@optlistfv@g}%
\expandafter\let\expandafter\minted@tmp%
\csname minted@optlistfv@lang\minted@lang\endcsname
\expandafter\fvset\expandafter{\minted@tmp}%
\ifthenelse{\boolean{minted@isinline}}%
{\expandafter\fvset\expandafter{\minted@optlistfv@g@i}%
\expandafter\let\expandafter\minted@tmp%
\csname minted@optlistfv@lang\minted@lang @i\endcsname
\expandafter\fvset\expandafter{\minted@tmp}}%
{}%
\expandafter\fvset\expandafter{\minted@optlistfv@cmd}%
}
\def\minted@get@opt#1#2{%
\ifcsname minted@opt@cmd:#1\endcsname
\csname minted@opt@cmd:#1\endcsname
\else
\ifminted@isinline
\ifcsname minted@opt@lang\minted@lang @i:#1\endcsname
\csname minted@opt@lang\minted@lang @i:#1\endcsname
\else
\ifcsname minted@opt@g@i:#1\endcsname
\csname minted@opt@g@i:#1\endcsname
\else
\ifcsname minted@opt@lang\minted@lang:#1\endcsname
\csname minted@opt@lang\minted@lang:#1\endcsname
\else
\ifcsname minted@opt@g:#1\endcsname
\csname minted@opt@g:#1\endcsname
\else
#2%
\fi
\fi
\fi
\fi
\else
\ifcsname minted@opt@lang\minted@lang:#1\endcsname
\csname minted@opt@lang\minted@lang:#1\endcsname
\else
\ifcsname minted@opt@g:#1\endcsname
\csname minted@opt@g:#1\endcsname
\else
#2%
\fi
\fi
\fi
\fi
}%
\newcommand{\minted@def@opt}[2][]{%
\define@key{minted@opt@g}{#2}{%
\@namedef{minted@opt@g:#2}{##1}}
\define@key{minted@opt@g@i}{#2}{%
\@namedef{minted@opt@g@i:#2}{##1}}
\define@key{minted@opt@lang}{#2}{%
\@namedef{minted@opt@lang\minted@lang:#2}{##1}}
\define@key{minted@opt@lang@i}{#2}{%
\@namedef{minted@opt@lang\minted@lang @i:#2}{##1}}
\define@key{minted@opt@cmd}{#2}{%
\@namedef{minted@opt@cmd:#2}{##1}}
}
\newcommand{\minted@def@opt@switch}[2][false]{%
\define@booleankey{minted@opt@g}{#2}%
{\@namedef{minted@opt@g:#2}{true}}%
{\@namedef{minted@opt@g:#2}{false}}
\define@booleankey{minted@opt@g@i}{#2}%
{\@namedef{minted@opt@g@i:#2}{true}}%
{\@namedef{minted@opt@g@i:#2}{false}}
\define@booleankey{minted@opt@lang}{#2}%
{\@namedef{minted@opt@lang\minted@lang:#2}{true}}%
{\@namedef{minted@opt@lang\minted@lang:#2}{false}}
\define@booleankey{minted@opt@lang@i}{#2}%
{\@namedef{minted@opt@lang\minted@lang @i:#2}{true}}%
{\@namedef{minted@opt@lang\minted@lang @i:#2}{false}}
\define@booleankey{minted@opt@cmd}{#2}%
{\@namedef{minted@opt@cmd:#2}{true}}%
{\@namedef{minted@opt@cmd:#2}{false}}%
\@namedef{minted@opt@g:#2}{#1}%
}
\minted@def@optcl{encoding}{-P encoding}{#1}
\minted@def@optcl{outencoding}{-P outencoding}{#1}
\minted@def@optcl@e{escapeinside}{-P "escapeinside}{#1"}
\minted@def@optcl@switch{stripnl}{-P stripnl}
\minted@def@optcl@switch{stripall}{-P stripall}
\minted@def@optcl@switch{python3}{-P python3}
\minted@def@optcl@switch{funcnamehighlighting}{-P funcnamehighlighting}
\minted@def@optcl@switch{startinline}{-P startinline}
\ifthenelse{\boolean{minted@draft}}%
{\minted@def@optfv{gobble}}%
{\minted@def@optcl{gobble}{-F gobble:n}{#1}}
\minted@def@optcl{codetagify}{-F codetagify:codetags}{#1}
\minted@def@optcl{keywordcase}{-F keywordcase:case}{#1}
\minted@def@optcl@switch{texcl}{-P texcomments}
\minted@def@optcl@switch{texcomments}{-P texcomments}
\minted@def@optcl@switch{mathescape}{-P mathescape}
\ifcsname KV@FV@linenos\endcsname\else
\define@booleankey{FV}{linenos}%
{\@nameuse{FV@Numbers@left}}{\@nameuse{FV@Numbers@none}}
\fi
\minted@def@optfv@switch{linenos}
\minted@def@optcl@style
\minted@def@optfv{frame}
\minted@def@optfv{framesep}
\minted@def@optfv{framerule}
\minted@def@optfv{rulecolor}
\minted@def@optfv{numbersep}
\minted@def@optfv{numbers}
\minted@def@optfv{firstnumber}
\minted@def@optfv{stepnumber}
\minted@def@optfv{firstline}
\minted@def@optfv{lastline}
\minted@def@optfv{baselinestretch}
\minted@def@optfv{xleftmargin}
\minted@def@optfv{xrightmargin}
\minted@def@optfv{fillcolor}
\minted@def@optfv{tabsize}
\minted@def@optfv{fontfamily}
\minted@def@optfv{fontsize}
\minted@def@optfv{fontshape}
\minted@def@optfv{fontseries}
\minted@def@optfv{formatcom}
\minted@def@optfv{label}
\minted@def@optfv@switch{numberblanklines}
\minted@def@optfv@switch{showspaces}
\minted@def@optfv@switch{resetmargins}
\minted@def@optfv@switch{samepage}
\minted@def@optfv@switch{showtabs}
\minted@def@optfv@switch{obeytabs}
\minted@def@optfv@switch{breaklines}
\minted@def@optfv{breakindent}
\minted@def@optfv@switch{breakautoindent}
\minted@def@optfv{breaksymbol}
\minted@def@optfv{breaksymbolsep}
\minted@def@optfv{breaksymbolindent}
\minted@def@optfv{breaksymbolleft}
\minted@def@optfv{breaksymbolsepleft}
\minted@def@optfv{breaksymbolindentleft}
\minted@def@optfv{breaksymbolright}
\minted@def@optfv{breaksymbolsepright}
\minted@def@optfv{breaksymbolindentright}
\minted@def@opt@switch{breakbytoken}
\minted@def@opt{bgcolor}
\minted@def@opt@switch{autogobble}
\newcommand{\minted@encoding}{\minted@get@opt{encoding}{UTF8}}
\ifcsname KV@FV@breaklines\endcsname\else
\newboolean{FV@BreakLines}
\let\FV@ListProcessLine@Orig\FV@ListProcessLine
\define@booleankey{FV}{breaklines}%
{\FV@BreakLinestrue
\let\FV@ListProcessLine\FV@ListProcessLine@Break}%
{\FV@BreakLinesfalse
\let\FV@ListProcessLine\FV@ListProcessLine@Orig}
\newdimen\FV@BreakIndent
\define@key{FV}{breakindent}{\FV@BreakIndent=#1}
\fvset{breakindent=0pt}
\newboolean{FV@BreakAutoIndent}
\define@booleankey{FV}{breakautoindent}%
{\FV@BreakAutoIndenttrue}{\FV@BreakAutoIndentfalse}
\fvset{breakautoindent=true}
\define@key{FV}{breaksymbolleft}{\def\FancyVerbBreakSymbolLeft{#1}}
\define@key{FV}{breaksymbol}{\fvset{breaksymbolleft=#1}}
\fvset{breaksymbolleft=\tiny\ensuremath{\hookrightarrow}}
\define@key{FV}{breaksymbolright}{\def\FancyVerbBreakSymbolRight{#1}}
\fvset{breaksymbolright={}}
\newdimen\FV@BreakSymbolSepLeft
\define@key{FV}{breaksymbolsepleft}{\FV@BreakSymbolSepLeft=#1}
\define@key{FV}{breaksymbolsep}{\fvset{breaksymbolsepleft=#1}}
\fvset{breaksymbolsepleft=1em}
\newdimen\FV@BreakSymbolSepRight
\define@key{FV}{breaksymbolsepright}{\FV@BreakSymbolSepRight=#1}
\fvset{breaksymbolsepright=1em}
\newdimen\FV@BreakSymbolIndentLeft
\settowidth{\FV@BreakSymbolIndentLeft}{\ttfamily xxxx}
\define@key{FV}{breaksymbolindentleft}{\FV@BreakSymbolIndentLeft=#1}
\define@key{FV}{breaksymbolindent}{\fvset{breaksymbolindentleft=#1}}
\newdimen\FV@BreakSymbolIndentRight
\settowidth{\FV@BreakSymbolIndentRight}{\ttfamily xxxx}
\define@key{FV}{breaksymbolindentright}{\FV@BreakSymbolIndentRight=#1}
\newcommand{\FancyVerbFormatBreakSymbolLeft}[1]{%
\ifnum\value{linenumber}=1\relax\else{#1}\fi}
\newcounter{FancyVerbLineBreakLast}
\newcommand{\FV@SetLineBreakLast}{%
\setcounter{FancyVerbLineBreakLast}{\value{linenumber}}}
\newcommand{\FancyVerbFormatBreakSymbolRight}[1]{%
\ifnum\value{linenumber}=\value{FancyVerbLineBreakLast}\relax\else{#1}\fi}
\newsavebox{\FV@LineBox}
\newsavebox{\FV@LineIndentBox}
\let\FV@LineIndentChars\@empty
\def\FV@GetNextChar{\let\FV@NextChar=}
\def\FV@CleanRemainingChars#1\FV@Undefined{}
\def\FV@GetLineIndent{\afterassignment\FV@CheckIndentChar\FV@GetNextChar}
\def\FV@CheckIndentChar{%
\ifx\FV@NextChar\FV@Undefined
\let\FV@Next=\relax
\else
\expandafter\ifx\FV@NextChar\FV@Space
\g@addto@macro{\FV@LineIndentChars}{\FV@Space}%
\let\FV@Next=\FV@GetLineIndent
\else
\expandafter\ifx\FV@NextChar\FV@Tab
\g@addto@macro{\FV@LineIndentChars}{\FV@Tab}%
\let\FV@Next=\FV@GetLineIndent
\else
\let\FV@Next=\FV@CleanRemainingChars
\fi
\fi
\fi
\FV@Next
}
\def\FV@makeLineNumber{%
\hss
\FancyVerbFormatBreakSymbolLeft{\FancyVerbBreakSymbolLeft}%
\hbox to \FV@BreakSymbolSepLeft{\hfill}%
\rlap{\hskip\linewidth
\hbox to \FV@BreakSymbolSepRight{\hfill}%
\FancyVerbFormatBreakSymbolRight{\FancyVerbBreakSymbolRight}%
\FV@SetLineBreakLast
}%
}
\def\FV@SaveLineBox#1{%
\savebox{\FV@LineBox}{%
\advance\linewidth by -\FV@BreakIndent
\hbox to \FV@BreakIndent{\hfill}%
\ifthenelse{\boolean{FV@BreakAutoIndent}}%
{\let\FV@LineIndentChars\@empty
\FV@GetLineIndent#1\FV@Undefined
\savebox{\FV@LineIndentBox}{\FV@LineIndentChars}%
\hbox to \wd\FV@LineIndentBox{\hfill}%
\advance\linewidth by -\wd\FV@LineIndentBox}%
{}%
\ifdefempty{\FancyVerbBreakSymbolLeft}{}%
{\hbox to \FV@BreakSymbolIndentLeft{\hfill}%
\advance\linewidth by -\FV@BreakSymbolIndentLeft}%
\ifdefempty{\FancyVerbBreakSymbolRight}{}%
{\advance\linewidth by -\FV@BreakSymbolIndentRight}%
\parbox[t]{\linewidth}{%
\raggedright
\leftlinenumbers*
\begin{internallinenumbers*}%
\let\makeLineNumber\FV@makeLineNumber
\noindent\hspace*{-\FV@BreakIndent}%
\ifdefempty{\FancyVerbBreakSymbolLeft}{}{%
\hspace*{-\FV@BreakSymbolIndentLeft}}%
\ifthenelse{\boolean{FV@BreakAutoIndent}}%
{\hspace*{-\wd\FV@LineIndentBox}}%
{}%
\strut#1\strut
\end{internallinenumbers*}
}%
\ifdefempty{\FancyVerbBreakSymbolRight}{}%
{\hbox to \FV@BreakSymbolIndentRight{\hfill}}%
}%
}
\def\FV@ListProcessLine@Break#1{%
\hbox to \hsize{%
\kern\leftmargin
\hbox to \linewidth{%
\ifx\FV@RightListFrame\relax\else
\advance\linewidth by -\FV@FrameSep
\advance\linewidth by -\FV@FrameRule
\fi
\ifx\FV@LeftListFrame\relax\else
\advance\linewidth by -\FV@FrameSep
\advance\linewidth by -\FV@FrameRule
\fi
\sbox{\FV@LineBox}{\FancyVerbFormatLine{#1}}%
\ifdim\wd\FV@LineBox>\linewidth
\setcounter{FancyVerbLineBreakLast}{0}%
\FV@SaveLineBox{#1}%
\ifdefempty{\FancyVerbBreakSymbolRight}{}{%
\let\FV@SetLineBreakLast\relax
\FV@SaveLineBox{#1}}%
\FV@LeftListNumber
\FV@LeftListFrame
\FancyVerbFormatLine{\usebox{\FV@LineBox}}%
\FV@RightListFrame
\FV@RightListNumber
\else
\FV@LeftListNumber
\FV@LeftListFrame
\FancyVerbFormatLine{%
\parbox[t]{\linewidth}{\noindent\strut#1\strut}}%
\FV@RightListFrame
\FV@RightListNumber
\fi}%
\hss}\baselineskip\z@\lineskip\z@}
\fi
\newsavebox{\minted@bgbox}
\newenvironment{minted@colorbg}[1]{
%\setlength{\fboxsep}{-\fboxrule}
\def\minted@bgcol{#1}
\noindent
\begin{lrbox}{\minted@bgbox}
\begin{minipage}{\linewidth-2\fboxsep}}
{\end{minipage}
\end{lrbox}%
\colorbox{\minted@bgcol}{\usebox{\minted@bgbox}}}
\newwrite\minted@code
\newcommand{\minted@savecode}[1]{
\immediate\openout\minted@code\jobname.pyg\relax
\immediate\write\minted@code{\expandafter\detokenize\expandafter{#1}}%
\immediate\closeout\minted@code}
\newcounter{minted@FancyVerbLineTemp}
\newcommand{\minted@write@detok}[1]{%
\immediate\write\FV@OutFile{\detokenize{#1}}}
\newcommand{\minted@FVB@VerbatimOut}[1]{%
\setcounter{minted@FancyVerbLineTemp}{\value{FancyVerbLine}}%
\@bsphack
\begingroup
\FV@UseKeyValues
\FV@DefineWhiteSpace
\def\FV@Space{\space}%
\FV@DefineTabOut
\let\FV@ProcessLine\minted@write@detok
\immediate\openout\FV@OutFile #1\relax
\let\FV@FontScanPrep\relax
\let\@noligs\relax
\FV@Scan}
\newcommand{\minted@FVE@VerbatimOut}{%
\immediate\closeout\FV@OutFile\endgroup\@esphack
\setcounter{FancyVerbLine}{\value{minted@FancyVerbLineTemp}}}%
\newcommand{\MintedPygmentize}{pygmentize}
\newcommand{\minted@pygmentize}[2][\minted@outputdir\jobname.pyg]{%
\ifthenelse{\equal{\minted@get@opt{autogobble}{false}}{true}}%
{\def\minted@codefile{\minted@outputdir\jobname.pyg}}%
{\def\minted@codefile{#1}}%
\ifthenelse{\boolean{minted@isinline}}%
{\def\minted@optlistcl@inlines{%
\minted@optlistcl@g@i
\csname minted@optlistcl@lang\minted@lang @i\endcsname}}%
{\let\minted@optlistcl@inlines\@empty}%
\def\minted@cmd{%
\ifminted@kpsewhich\ifwindows powershell\space\fi\fi
\MintedPygmentize\space -l #2
-f latex -F tokenmerge
\minted@optlistcl@g \csname minted@optlistcl@lang\minted@lang\endcsname
\minted@optlistcl@inlines
\minted@optlistcl@cmd -o "\minted@outputdir\minted@infile"
\ifminted@kpsewhich
\ifwindows
\detokenize{$}(kpsewhich "\minted@codefile")%
\else
\detokenize{`}kpsewhich "\minted@codefile"
\detokenize{||} "\minted@codefile"\detokenize{`}%
\fi
\else
"\minted@codefile"
\fi}%
% For debugging, uncomment: %%%%
% \immediate\typeout{\minted@cmd}%
% %%%%
\ifthenelse{\boolean{minted@cache}}%
{%
\ifx\XeTeXinterchartoks\minted@undefined
\ifthenelse{\equal{\minted@get@opt{autogobble}{false}}{true}}%
{\edef\minted@hash{\pdf@filemdfivesum{#1}%
\pdf@mdfivesum{\minted@cmd autogobble}}}%
{\edef\minted@hash{\pdf@filemdfivesum{#1}%
\pdf@mdfivesum{\minted@cmd}}}%
\else
\immediate\openout\minted@code\jobname.mintedcmd\relax
\immediate\write\minted@code{\minted@cmd}%
\ifthenelse{\equal{\minted@get@opt{autogobble}{false}}{true}}%
{\immediate\write\minted@code{autogobble}}{}%
\immediate\closeout\minted@code
%Cheating a little here by using ASCII codes to write `{` and `}`
%in the Python code
\def\minted@hashcmd{%
\detokenize{python -c "import hashlib;
hasher = hashlib.sha1();
f = open(\"}\minted@outputdir\jobname.mintedcmd\detokenize{\", \"rb\");
hasher.update(f.read());
f.close();
f = open(\"}#1\detokenize{\", \"rb\");
hasher.update(f.read());
f.close();
f = open(\"}\minted@outputdir\jobname.mintedmd5\detokenize{\", \"w\");
macro = \"\\edef\\minted@hash\" + chr(123) + hasher.hexdigest() + chr(125) + \"\";
f.write(\"\\makeatletter\" + macro + \"\\makeatother\\endinput\n\");
f.close();"}}%
\immediate\write18{\minted@hashcmd}%
\minted@input{\minted@outputdir\jobname.mintedmd5}%
\fi
\edef\minted@infile{\minted@cachedir/\minted@hash.pygtex}%
\IfFileExists{\minted@infile}{}{%
\ifthenelse{\equal{\minted@get@opt{autogobble}{false}}{true}}{%
%Need a version of open() that supports encoding under Python 2
\edef\minted@autogobblecmd{%
\detokenize{python -c "import sys;
import textwrap;
from io import open;
f = open(\"}#1\detokenize{\", \"r\", encoding=\"}\minted@encoding\detokenize{\");
t = f.read();
f.close();
f = open(\"}\minted@outputdir\jobname.pyg\detokenize{\", \"w\", encoding=\"}\minted@encoding\detokenize{\");
f.write(textwrap.dedent(t));
f.close();"}%
}%
\immediate\write18{\minted@autogobblecmd}}{}%
\immediate\write18{\minted@cmd}}%
\expandafter\minted@addcachefile\expandafter{\minted@hash.pygtex}%
\minted@inputpyg}%
{%
\ifthenelse{\equal{\minted@get@opt{autogobble}{false}}{true}}{%
%Need a version of open() that supports encoding under Python 2
\edef\minted@autogobblecmd{%
\detokenize{python -c "import sys;
import textwrap;
from io import open;
f = open(\"}#1\detokenize{\", \"r\", encoding=\"}\minted@encoding\detokenize{\");
t = f.read();
f.close();
f = open(\"}\minted@outputdir\jobname.pyg\detokenize{\", \"w\", encoding=\"}\minted@encoding\detokenize{\");
f.write(textwrap.dedent(t));
f.close();"}%
}%
\immediate\write18{\minted@autogobblecmd}}{}%
\immediate\write18{\minted@cmd}%
\minted@inputpyg}%
}
\def\FV@SpaceMMode{ }
\newcommand{\minted@inputpyg}{%
\everymath\expandafter{\the\everymath\let\FV@Space\FV@SpaceMMode}%
\ifthenelse{\boolean{minted@isinline}}%
{\ifthenelse{\equal{\minted@get@opt{breaklines}{false}}{true}}%
{\let\FV@BeginVBox\relax
\let\FV@EndVBox\relax
\def\FV@BProcessLine##1{\FancyVerbFormatLine{##1}}%
\ifthenelse{\equal{\minted@get@opt{breakbytoken}{false}}{true}}%
{\expandafter\let\expandafter\minted@orig@PYG%
\csname PYG\minted@get@opt{style}{default}\endcsname
\expandafter\def\csname PYG\minted@get@opt{style}{default}\endcsname##1##2{%
\allowbreak{}\hbox{\minted@orig@PYG{##1}{##2}}}%
\minted@inputpyg@inline}%
{\minted@inputpyg@inline}}%
{\minted@inputpyg@inline}}%
{\ifthenelse{\equal{\minted@get@opt{breaklines}{false}}{true}}%
{\ifthenelse{\equal{\minted@get@opt{breakbytoken}{false}}{true}}%
{\expandafter\let\expandafter\minted@orig@PYG%
\csname PYG\minted@get@opt{style}{default}\endcsname
\expandafter\def\csname PYG\minted@get@opt{style}{default}\endcsname##1##2{%
\allowbreak{}\hbox{\minted@orig@PYG{##1}{##2}}}%
\minted@inputpyg@block}%
{\minted@inputpyg@block}}%
{\minted@inputpyg@block}}%
}
\def\minted@inputpyg@inline{%
\ifthenelse{\equal{\minted@get@opt{bgcolor}{}}{}}%
{\minted@input{\minted@outputdir\minted@infile}}%
{\colorbox{\minted@get@opt{bgcolor}{}}{\minted@input{\minted@outputdir\minted@infile}}}%
}
\def\minted@inputpyg@block{%
\ifthenelse{\equal{\minted@get@opt{bgcolor}{}}{}}%
{\minted@input{\minted@outputdir\minted@infile}}%
{\begin{minted@colorbg}{\minted@get@opt{bgcolor}{}}%
\minted@input{\minted@outputdir\minted@infile}%
\end{minted@colorbg}}}
\newcommand{\minted@langlinenoson}{%
\ifcsname c@minted@lang\minted@lang\endcsname\else
\newcounter{minted@lang\minted@lang}%
\fi
\setcounter{minted@FancyVerbLineTemp}{\value{FancyVerbLine}}%
\setcounter{FancyVerbLine}{\value{minted@lang\minted@lang}}%
}
\newcommand{\minted@langlinenosoff}{%
\setcounter{minted@lang\minted@lang}{\value{FancyVerbLine}}%
\setcounter{FancyVerbLine}{\value{minted@FancyVerbLineTemp}}%
}
\ifthenelse{\boolean{minted@langlinenos}}{}{%
\let\minted@langlinenoson\relax
\let\minted@langlinenosoff\relax
}
\newcommand{\setminted}[2][]{%
\ifthenelse{\equal{#1}{}}%
{\setkeys{minted@opt@g}{#2}}%
{\minted@configlang{#1}%
\setkeys{minted@opt@lang}{#2}}}
\newcommand{\setmintedinline}[2][]{%
\ifthenelse{\equal{#1}{}}%
{\setkeys{minted@opt@g@i}{#2}}%
{\minted@configlang{#1}%
\setkeys{minted@opt@lang@i}{#2}}}
\setmintedinline[php]{startinline=true}
\newcommand{\usemintedstyle}[2][]{\setminted[#1]{style=#2}}
\begingroup
\catcode`\ =\active
\catcode`\^^I=\active
\gdef\minted@defwhitespace@retok{\def {\noexpand\FV@Space}\def^^I{\noexpand\FV@Tab}}%
\endgroup
\newcommand{\minted@writecmdcode}[1]{%
\immediate\openout\minted@code\jobname.pyg\relax
\immediate\write\minted@code{\detokenize{#1}}%
\immediate\closeout\minted@code}
\newrobustcmd{\mintinline}[2][]{%
\begingroup
\setboolean{minted@isinline}{true}%
\minted@configlang{#2}%
\setkeys{minted@opt@cmd}{#1}%
\minted@fvset
\begingroup
\let\do\@makeother\dospecials
\catcode`\{=1
\catcode`\}=2
\catcode`\^^I=\active
\@ifnextchar\bgroup
{\minted@inline@iii}%
{\catcode`\{=12\catcode`\}=12
\minted@inline@i}}
\def\minted@inline@i#1{%
\endgroup
\def\minted@inline@ii##1#1{%
\minted@inline@iii{##1}}%
\begingroup
\let\do\@makeother\dospecials
\catcode`\^^I=\active
\minted@inline@ii}
\ifthenelse{\boolean{minted@draft}}%
{\newcommand{\minted@inline@iii}[1]{%
\endgroup
\begingroup
\minted@defwhitespace@retok
\everyeof{\noexpand}%
\endlinechar-1\relax
\let\do\@makeother\dospecials
\catcode`\ =\active
\catcode`\^^I=\active
\xdef\minted@tmp{\scantokens{#1}}%
\endgroup
\let\FV@Line\minted@tmp
\def\FV@SV@minted@tmp{%
\FV@Gobble
\expandafter\FV@ProcessLine\expandafter{\FV@Line}}%
\ifthenelse{\equal{\minted@get@opt{breaklines}{false}}{true}}%
{\let\FV@BeginVBox\relax
\let\FV@EndVBox\relax
\def\FV@BProcessLine##1{\FancyVerbFormatLine{##1}}%
\BUseVerbatim{minted@tmp}}%
{\BUseVerbatim{minted@tmp}}%
\endgroup}}%
{\newcommand{\minted@inline@iii}[1]{%
\endgroup
\minted@writecmdcode{#1}%
\RecustomVerbatimEnvironment{Verbatim}{BVerbatim}{}%
\setcounter{minted@FancyVerbLineTemp}{\value{FancyVerbLine}}%
\minted@pygmentize{\minted@lang}%
\setcounter{FancyVerbLine}{\value{minted@FancyVerbLineTemp}}%
\endgroup}}
\newrobustcmd{\mint}[2][]{%
\begingroup
\minted@configlang{#2}%
\setkeys{minted@opt@cmd}{#1}%
\minted@fvset
\begingroup
\let\do\@makeother\dospecials
\catcode`\{=1
\catcode`\}=2
\catcode`\^^I=\active
\@ifnextchar\bgroup
{\mint@iii}%
{\catcode`\{=12\catcode`\}=12
\mint@i}}
\def\mint@i#1{%
\endgroup
\def\mint@ii##1#1{%
\mint@iii{##1}}%
\begingroup
\let\do\@makeother\dospecials
\catcode`\^^I=\active
\mint@ii}
\ifthenelse{\boolean{minted@draft}}%
{\newcommand{\mint@iii}[1]{%
\endgroup
\begingroup
\minted@defwhitespace@retok
\everyeof{\noexpand}%
\endlinechar-1\relax
\let\do\@makeother\dospecials
\catcode`\ =\active
\catcode`\^^I=\active
\xdef\minted@tmp{\scantokens{#1}}%
\endgroup
\let\FV@Line\minted@tmp
\def\FV@SV@minted@tmp{%
\FV@CodeLineNo=1\FV@StepLineNo
\FV@Gobble
\expandafter\FV@ProcessLine\expandafter{\FV@Line}}%
\minted@langlinenoson
\UseVerbatim{minted@tmp}%
\minted@langlinenosoff
\endgroup}}%
{\newcommand{\mint@iii}[1]{%
\endgroup
\minted@writecmdcode{#1}%
\minted@langlinenoson
\minted@pygmentize{\minted@lang}%
\minted@langlinenosoff
\endgroup}}
\ifthenelse{\boolean{minted@draft}}%
{\newenvironment{minted}[2][]
{\VerbatimEnvironment
\minted@configlang{#2}%
\setkeys{minted@opt@cmd}{#1}%
\minted@fvset
\minted@langlinenoson
\begin{Verbatim}}%
{\end{Verbatim}%
\minted@langlinenosoff}}%
{\newenvironment{minted}[2][]
{\VerbatimEnvironment
\let\FVB@VerbatimOut\minted@FVB@VerbatimOut
\let\FVE@VerbatimOut\minted@FVE@VerbatimOut
\minted@configlang{#2}%
\setkeys{minted@opt@cmd}{#1}%
\minted@fvset
\begin{VerbatimOut}[codes={\catcode`\^^I=12}]{\jobname.pyg}}%
{\end{VerbatimOut}%
\minted@langlinenoson
\minted@pygmentize{\minted@lang}%
\minted@langlinenosoff}}
\ifthenelse{\boolean{minted@draft}}%
{\newcommand{\inputminted}[3][]{%
\begingroup
\minted@configlang{#2}%
\setkeys{minted@optcmd}{#1}%
\minted@fvset
\VerbatimInput{#3}%
\endgroup}}%
{\newcommand{\inputminted}[3][]{%
\begingroup
\minted@configlang{#2}%
\setkeys{minted@opt@cmd}{#1}%
\minted@fvset
\minted@pygmentize[#3]{#2}%
\endgroup}}
\newcommand{\newminted}[3][]{
\ifthenelse{\equal{#1}{}}
{\def\minted@envname{#2code}}
{\def\minted@envname{#1}}
\newenvironment{\minted@envname}
{\VerbatimEnvironment
\begin{minted}[#3]{#2}}
{\end{minted}}
\newenvironment{\minted@envname *}[1]
{\VerbatimEnvironment\begin{minted}[#3,##1]{#2}}
{\end{minted}}}
\newcommand{\newmint}[3][]{
\ifthenelse{\equal{#1}{}}
{\def\minted@shortname{#2}}
{\def\minted@shortname{#1}}
\expandafter\newcommand\csname\minted@shortname\endcsname[2][]{
\mint[#3,##1]{#2}##2}}
\newcommand{\newmintedfile}[3][]{
\ifthenelse{\equal{#1}{}}
{\def\minted@shortname{#2file}}
{\def\minted@shortname{#1}}
\expandafter\newcommand\csname\minted@shortname\endcsname[2][]{
\inputminted[#3,##1]{#2}{##2}}}
\newcommand{\newmintinline}[3][]{%
\ifthenelse{\equal{#1}{}}%
{\def\minted@shortname{#2inline}}%
{\def\minted@shortname{#1}}%
\expandafter\newrobustcmd\csname\minted@shortname\endcsname{%
\begingroup
\let\do\@makeother\dospecials
\catcode`\{=1
\catcode`\}=2
\@ifnextchar[{\endgroup\minted@inliner[#3][#2]}%
{\endgroup\minted@inliner[#3][#2][]}}%
\def\minted@inliner[##1][##2][##3]{\mintinline[##1,##3]{##2}}%
}
\ifthenelse{\boolean{minted@newfloat}}%
{\@ifundefined{minted@float@within}%
{\DeclareFloatingEnvironment[fileext=lol,placement=h]{listing}}%
{\def\minted@tmp#1{%
\DeclareFloatingEnvironment[fileext=lol,placement=h, within=#1]{listing}}%
\expandafter\minted@tmp\expandafter{\minted@float@within}}}%
{\@ifundefined{minted@float@within}%
{\newfloat{listing}{h}{lol}}%
{\newfloat{listing}{h}{lol}[\minted@float@within]}}
\ifminted@newfloat\else
\newcommand{\listingscaption}{Listing}
\floatname{listing}{\listingscaption}
\newcommand{\listoflistingscaption}{List of Listings}
\providecommand{\listoflistings}{\listof{listing}{\listoflistingscaption}}
\fi
\AtEndOfPackage{%
\ifthenelse{\boolean{minted@draft}}{}{%
\ifnum\pdf@shellescape=1\relax\else
\PackageError{minted}%
{You must invoke LaTeX with the
-shell-escape flag}%
{Pass the -shell-escape flag to LaTeX. Refer to the minted.sty
documentation for more information.}%
\fi
\TestAppExists{pygmentize}
\ifAppExists\else
\PackageError{minted}%
{You must have `pygmentize' installed
to use this package}%
{Refer to the installation instructions in the minted
documentation for more information.}%
\fi
\setminted{style=default}%
}%
}
\AtEndDocument{
\ifx\XeTeXinterchartoks\minted@undefined
\else
\DeleteFile[\minted@outputdir]{\jobname.mintedcmd}%
\DeleteFile[\minted@outputdir]{\jobname.mintedmd5}%
\fi
\DeleteFile[\minted@outputdir]{\jobname.pyg}%
\DeleteFile[\minted@outputdir]{\jobname.out.pyg}%
}
\endinput
%%
%% End of file `minted.sty'.

View File

@ -0,0 +1,39 @@
\begin{itemize}
\item{Fondamentaux}
\begin{itemize}
\item{Qu'attendre d'un SCM ?}
\item{Les atouts de git}
\item{S'adapter au processus}
\end{itemize}
\item{Préparation}
\begin{itemize}
\item{Installation}
\begin{itemize}
\item{Côté \emph{client}}
\item{Côté \emph{serveur}}
\end{itemize}
\item{Configuration}
\begin{itemize}
\item{Utilisateur}
\item{Dépôts}
\end{itemize}
\item{Ergonomie}
\item{Hooks}
\end{itemize}
\item{Récapitulatif des commandes}
\begin{itemize}
\item{Pour démarrer un projet}
\item{Pour faire le point}
\item{Pour modifier le contenu du dépôt}
\item{Pour organiser son développement}
\item{Aide-mémoire}
\end{itemize}
\item{Mise en pratique}
\begin{itemize}
\item{Mise en place}
\item{Dépôt individuel}
\item{Dépôt commun}
\item{Paquet debian}
\end{itemize}
\item{Pour aller plus loin}
\end{itemize}

View File

@ -0,0 +1 @@
1 jour

View File

@ -0,0 +1 @@
L'évaluation de l'acquisition des connaissances se fait à partir d'une série d'exercices exécutés dans le courant de la session de formation.

View File

@ -0,0 +1 @@
La formation s'appuie sur l'utilisation de dispositif courant de projection pour la partie magistrale et sur la mise en réseau des ordinateurs des participants pour la partie pratique. L'accès à l'Internet n'est pas indispensable.

View File

@ -0,0 +1,5 @@
L'objectif de cette formation est de présenter le fonctionnement du logiciel git et d'en donner des clés d'utilisation et des repères, aussi bien à travers la pratique des commandes basiques qu'à travers une discussion sur le processus de développement.
L'accent est mis sur les situations problématiques qui peuvent être rencontrées pour développer de bons réflexes et éviter tout blocage.
Au terme de cette formation, les participants devront être capables de démarrer un projet git, de tirer profit des fonctionnalités de git pour mettre en place leur processus de développement. Ils seront également à même de mettre en place un serveur référent.

View File

@ -0,0 +1 @@
La formation nécessite de ne pas être rebuté par la ligne de commande.

View File

@ -0,0 +1 @@
Cette formation s'adresse tout particulièrement aux débutants. Elle présente uniquement les éléments fondamentaux du fonctionnement de git et les situations les plus embarrassantes pour les novices.

View File

@ -0,0 +1,92 @@
%%
%% This is file `xcolor-solarized.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% xcolor-solarized.dtx (with options: `package')
%%
%% This is a generated file.
%%
%% Copyright (C) 2014 by Julien Cretel <jubobs.tex at gmail.com>
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3
%% of this license or (at your option) any later version.
%% The latest version of this license is in
%%
%% http://www.latex-project.org/lppl.txt
%%
%% and version 1.3 or later is part of all distributions of LaTeX
%% version 2005/12/01 or later.
%%
%% This work has the LPPL maintenance status `maintained'.
%%
%% The Current Maintainer of this work is Julien Cretel.
%%
%% This work currently consists of the files xcolor-solarized.dtx,
%% xcolor-solarized.ins, and the derived file xcolor-solarized.sty.
%%
\NeedsTeXFormat{LaTeX2e}[2011/06/27]
\ProvidesPackage{xcolor-solarized}
[2015/02/17 v0.3 xcolor definitions for Ethan Schoonover's
Solarized theme]
\RequirePackage{xcolor}[2007/01/21]
\RequirePackage{kvoptions}[2011/06/30]
\SetupKeyvalOptions{
family=solarized,
prefix=solarized@
}
\DeclareStringOption[solarized-]{prefix}
\DeclareDefaultOption{%
\OptionNotUsed
\PackageError{xcolor-solarized}{Unknown `\CurrentOption' option}
}
\ProcessKeyvalOptions*
\newcommand\solarized@definecolor{\expandafter\definecolor\expandafter}
\solarized@definecolor{\solarized@prefix base03} {RGB}{000, 043, 054}
\solarized@definecolor{\solarized@prefix base02} {RGB}{007, 054, 066}
\solarized@definecolor{\solarized@prefix base01} {RGB}{088, 110, 117}
\solarized@definecolor{\solarized@prefix base00} {RGB}{101, 123, 131}
\solarized@definecolor{\solarized@prefix base0} {RGB}{131, 148, 150}
\solarized@definecolor{\solarized@prefix base1} {RGB}{147, 161, 161}
\solarized@definecolor{\solarized@prefix base2} {RGB}{238, 232, 213}
\solarized@definecolor{\solarized@prefix base3} {RGB}{253, 246, 227}
\solarized@definecolor{\solarized@prefix yellow} {RGB}{181, 137, 000}
\solarized@definecolor{\solarized@prefix orange} {RGB}{203, 075, 022}
\solarized@definecolor{\solarized@prefix red} {RGB}{220, 050, 047}
\solarized@definecolor{\solarized@prefix magenta}{RGB}{211, 054, 130}
\solarized@definecolor{\solarized@prefix violet} {RGB}{108, 113, 196}
\solarized@definecolor{\solarized@prefix blue} {RGB}{038, 139, 210}
\solarized@definecolor{\solarized@prefix cyan} {RGB}{042, 161, 152}
\solarized@definecolor{\solarized@prefix green} {RGB}{133, 153, 000}
\newcommand\solarizedPalette[1][3em]{%
\newcommand\solarized@square{\rule{#1}{#1}}
\noindent
\begin{tabular}{cccc cccc}
\textcolor{solarized-base03} \solarized@square &
\textcolor{solarized-base02} \solarized@square &
\textcolor{solarized-base01} \solarized@square &
\textcolor{solarized-base00} \solarized@square &
\textcolor{solarized-base0} \solarized@square &
\textcolor{solarized-base1} \solarized@square &
\textcolor{solarized-base2} \solarized@square &
\textcolor{solarized-base3} \solarized@square \\
base03 & base02 & base01 & base00 &
base0 & base1 & base2 & base3 \\[#1]
\textcolor{solarized-yellow} \solarized@square &
\textcolor{solarized-orange} \solarized@square &
\textcolor{solarized-red} \solarized@square &
\textcolor{solarized-magenta}\solarized@square &
\textcolor{solarized-violet} \solarized@square &
\textcolor{solarized-blue} \solarized@square &
\textcolor{solarized-cyan} \solarized@square &
\textcolor{solarized-green} \solarized@square \\
yellow & orange & red & magenta &
violet & blue & cyan & green
\end{tabular}
}
\endinput
%%
%% End of file `xcolor-solarized.sty'.