Compare commits
No commits in common. "2d620e845dc4ff5b37d72946bd0293a892a172c5" and "eb6ee9c94778ce1800a109c783cb8bdfc75e7cf0" have entirely different histories.
2d620e845d
...
eb6ee9c947
@ -1,7 +0,0 @@
|
||||
\skbheading{Explorer la structure d’un dictionnaire Creole}
|
||||
|
||||
Un dictionnaire Creole est une description de la configuration à l’aide du format de fichier \emph{xml}.
|
||||
|
||||
fichier content/modules\_EOLE\_envole/exercices/creole-dictionnaire-structure.tex à éditer
|
||||
|
||||
\inputminted[]{xml}{./content/modules_EOLE_envole/exercices/creole.dtd}
|
@ -1,237 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
|
||||
<!-- ===================================================================== -->
|
||||
|
||||
<!-- Definition de la DTD du fichier creole -->
|
||||
|
||||
<!-- ===================================================================== -->
|
||||
|
||||
<!--
|
||||
# Conception :
|
||||
# Eole (http://eole.orion.education.fr)
|
||||
|
||||
# Copyright (C) 2005-2018
|
||||
|
||||
# distribue sous la licence GPL-2
|
||||
|
||||
# En attendant une traduction officielle de la GPL, la notice de
|
||||
# copyright demeure en anglais.
|
||||
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
# Se reporter a la documentation envoyee avec le programme pour la notice.
|
||||
|
||||
-->
|
||||
<!--================ -->
|
||||
<!-- root element -->
|
||||
<!-- =============== -->
|
||||
|
||||
<!ELEMENT creole (containers | files | family_action | variables | constraints | help)*>
|
||||
|
||||
<!-- ============== -->
|
||||
<!-- files element -->
|
||||
<!-- ============== -->
|
||||
|
||||
<!ELEMENT family_action (action)>
|
||||
<!ATTLIST family_action name CDATA #REQUIRED>
|
||||
<!ATTLIST family_action description CDATA #IMPLIED>
|
||||
<!ATTLIST family_action color CDATA #IMPLIED>
|
||||
<!ATTLIST family_action image CDATA #IMPLIED>
|
||||
<!ELEMENT action ((input* | profile* | ewtapp* | tag* | saltaction*)*)>
|
||||
<!ATTLIST action type (form|custom|external|reader|apache) "custom">
|
||||
<!ATTLIST action title CDATA #REQUIRED>
|
||||
<!ATTLIST action description CDATA #REQUIRED>
|
||||
<!ATTLIST action rewrite CDATA #IMPLIED>
|
||||
<!ATTLIST action image CDATA #IMPLIED>
|
||||
<!ATTLIST action actionlist CDATA #IMPLIED>
|
||||
<!-- for apache action -->
|
||||
<!ATTLIST action apache_path CDATA #IMPLIED>
|
||||
<!ATTLIST action apache_path_type (FilenameOption|SymLinkOption) "FilenameOption">
|
||||
<!-- for external action -->
|
||||
<!ATTLIST action url CDATA #IMPLIED>
|
||||
<!ATTLIST action url_type (URLOption|SymLinkOption) "URLOption">
|
||||
<!-- for form action -->
|
||||
<!ATTLIST action save (True|False) "False">
|
||||
<!ELEMENT files ((service* | service_access* | service_restriction* | package* | file*)*)>
|
||||
|
||||
<!ELEMENT containers ((container* | all*)*)>
|
||||
|
||||
<!ELEMENT container ((service* | service_access* | service_restriction* | interface* | package* | file* | disknod* | host* | fstab*)*) >
|
||||
<!ATTLIST container name CDATA #REQUIRED >
|
||||
<!ATTLIST container id CDATA #IMPLIED >
|
||||
<!ATTLIST container group CDATA #IMPLIED >
|
||||
|
||||
<!ELEMENT all ((service* | interface* | package* | file* | disknod* | host* | fstab*)*) >
|
||||
|
||||
<!ELEMENT service (#PCDATA)>
|
||||
<!ATTLIST service servicelist CDATA #IMPLIED >
|
||||
<!ATTLIST service instance_mode (when_container|when_no_container|always) "always">
|
||||
<!ATTLIST service method (systemd|upstart|apache|network|restartonly) "systemd">
|
||||
<!ATTLIST service redefine (True|False) "False">
|
||||
|
||||
<!ELEMENT input (#PCDATA)>
|
||||
<!ELEMENT profile (#PCDATA)>
|
||||
<!ELEMENT ewtapp (#PCDATA)>
|
||||
<!ELEMENT tag (#PCDATA)>
|
||||
<!ELEMENT saltaction (#PCDATA)>
|
||||
|
||||
<!ELEMENT service_access ((port | tcpwrapper)*)>
|
||||
<!ATTLIST service_access service CDATA #REQUIRED >
|
||||
|
||||
<!ELEMENT port (#PCDATA)> <!--port_type-->
|
||||
<!ATTLIST port port_type (PortOption|SymLinkOption) "PortOption">
|
||||
<!ATTLIST port service_accesslist CDATA #IMPLIED >
|
||||
<!ATTLIST port protocol (tcp|udp) "tcp">
|
||||
|
||||
<!ELEMENT tcpwrapper (#PCDATA)> <!--tcpwrapper_type-->
|
||||
<!ATTLIST tcpwrapper tcpwrapper_type (UnicodeOption|SymLinkOption) "UnicodeOption">
|
||||
<!ATTLIST tcpwrapper service_accesslist CDATA #IMPLIED >
|
||||
|
||||
<!ELEMENT service_restriction (ip*)>
|
||||
<!ATTLIST service_restriction service CDATA #REQUIRED >
|
||||
|
||||
<!ELEMENT ip (#PCDATA)> <!--ip_type-->
|
||||
<!ATTLIST ip service_restrictionlist CDATA #IMPLIED >
|
||||
<!ATTLIST ip ip_type (NetworkOption|SymLinkOption) "NetworkOption">
|
||||
<!ATTLIST ip interface_type (UnicodeOption|SymLinkOption) "UnicodeOption">
|
||||
<!ATTLIST ip interface CDATA #REQUIRED> <!--interface_type-->
|
||||
<!ATTLIST ip netmask_type (NetmaskOption|SymLinkOption) "NetmaskOption">
|
||||
<!ATTLIST ip netmask CDATA "255.255.255.255"> <!--netmask_type-->
|
||||
|
||||
<!ELEMENT interface (#PCDATA)>
|
||||
<!ATTLIST interface interfacelist CDATA #IMPLIED >
|
||||
<!ATTLIST interface linkto CDATA #REQUIRED >
|
||||
<!ATTLIST interface ip CDATA #REQUIRED> <!--SymLinkOption-->
|
||||
<!ATTLIST interface ip_type (SymLinkOption) "SymLinkOption">
|
||||
<!ATTLIST interface mask CDATA #REQUIRED> <!--SymLinkOption-->
|
||||
<!ATTLIST interface mask_type (SymLinkOption) "SymLinkOption">
|
||||
<!ATTLIST interface bcast CDATA #IMPLIED> <!--SymLinkOption-->
|
||||
<!ATTLIST interface bcast_type (SymLinkOption) "SymLinkOption">
|
||||
<!ATTLIST interface gateway CDATA #IMPLIED> <!--SymLinkOption-->
|
||||
<!ATTLIST interface gateway_type (SymLinkOption) "SymLinkOption">
|
||||
<!ATTLIST interface method (bridge|macvlan) "macvlan" >
|
||||
<!ATTLIST interface redefine (True|False) "False">
|
||||
|
||||
<!ELEMENT host EMPTY >
|
||||
<!ATTLIST host hostlist CDATA #IMPLIED >
|
||||
<!ATTLIST host name CDATA #REQUIRED > <!--SymLinkOption-->
|
||||
<!ATTLIST host name_type (SymLinkOption) "SymLinkOption">
|
||||
<!ATTLIST host ip CDATA #REQUIRED > <!--SymLinkOption-->
|
||||
<!ATTLIST host ip_type (SymLinkOption) "SymLinkOption">
|
||||
<!ATTLIST host crossed (True|False) "True" >
|
||||
<!ATTLIST host instance_mode (when_container|when_no_container|always) "always">
|
||||
<!ATTLIST host comment CDATA #IMPLIED >
|
||||
|
||||
<!ELEMENT fstab EMPTY >
|
||||
<!ATTLIST fstab name CDATA #REQUIRED> <!--name_type-->
|
||||
<!ATTLIST fstab name_type (FilenameOption|SymLinkOption) "FilenameOption">
|
||||
<!ATTLIST fstab type (bind|normal) "bind">
|
||||
<!ATTLIST fstab fstype (auto|ext3|ext4|nfs|smb) "auto">
|
||||
<!ATTLIST fstab mount_point CDATA #IMPLIED> <!--mount_point_type-->
|
||||
<!ATTLIST fstab mount_point_type (FilenameOption|SymLinkOption) "FilenameOption">
|
||||
<!ATTLIST fstab options CDATA #IMPLIED>
|
||||
<!ATTLIST fstab checks CDATA #IMPLIED>
|
||||
<!ATTLIST fstab fstablist CDATA #IMPLIED>
|
||||
<!ATTLIST fstab instance_mode (when_container|when_no_container|always) "when_container">
|
||||
|
||||
<!ELEMENT package (#PCDATA)>
|
||||
<!ATTLIST package instance_mode (when_container|when_no_container|always) "always">
|
||||
|
||||
<!ELEMENT disknod (#PCDATA)>
|
||||
|
||||
<!ELEMENT file EMPTY>
|
||||
<!ATTLIST file name CDATA #REQUIRED >
|
||||
<!ATTLIST file name_type (UnicodeOption|SymLinkOption) "UnicodeOption">
|
||||
<!ATTLIST file source CDATA #IMPLIED>
|
||||
<!ATTLIST file mode CDATA #IMPLIED >
|
||||
<!ATTLIST file owner CDATA #IMPLIED >
|
||||
<!ATTLIST file group CDATA #IMPLIED >
|
||||
<!ATTLIST file filelist CDATA #IMPLIED >
|
||||
<!ATTLIST file mkdir (True|False) "False">
|
||||
<!ATTLIST file instance_mode (when_container|when_no_container|always) "always">
|
||||
<!ATTLIST file rm (True|False) "False">
|
||||
<!ATTLIST file del_comment CDATA #IMPLIED >
|
||||
<!ATTLIST file redefine (True|False) "False">
|
||||
|
||||
<!ELEMENT variables (family*, separators*)>
|
||||
<!ELEMENT family (#PCDATA | variable)*>
|
||||
<!ATTLIST family name CDATA #REQUIRED>
|
||||
<!ATTLIST family description CDATA #IMPLIED>
|
||||
<!ATTLIST family mode (basic|normal|expert) "basic">
|
||||
<!ATTLIST family icon CDATA #IMPLIED>
|
||||
<!ATTLIST family hidden (True|False) "False">
|
||||
<!ATTLIST family dynamic CDATA #IMPLIED>
|
||||
|
||||
<!ELEMENT variable (#PCDATA | value)*>
|
||||
<!ATTLIST variable name CDATA #REQUIRED>
|
||||
<!ATTLIST variable type CDATA #IMPLIED>
|
||||
<!ATTLIST variable description CDATA #IMPLIED>
|
||||
<!ATTLIST variable hidden (True|False) "False">
|
||||
<!ATTLIST variable disabled (True|False) "False">
|
||||
<!ATTLIST variable multi (True|False) "False">
|
||||
<!ATTLIST variable redefine (True|False) "False">
|
||||
<!ATTLIST variable exists (True|False) "True">
|
||||
<!ATTLIST variable mandatory (True|False) "False">
|
||||
<!ATTLIST variable auto_freeze (True|False) "False">
|
||||
<!ATTLIST variable auto_save (True|False) "False">
|
||||
<!ATTLIST variable mode (basic|normal|expert) "normal">
|
||||
<!ATTLIST variable remove_check (True|False) "False">
|
||||
<!ATTLIST variable remove_condition (True|False) "False">
|
||||
|
||||
<!ELEMENT separators (separator*)>
|
||||
|
||||
<!ELEMENT separator (#PCDATA)>
|
||||
<!ATTLIST separator name CDATA #REQUIRED>
|
||||
<!ATTLIST separator never_hidden CDATA #IMPLIED>
|
||||
|
||||
<!ELEMENT value (#PCDATA)>
|
||||
|
||||
<!ELEMENT constraints ((fill* | check* | condition* | auto* | group*)*)>
|
||||
<!ELEMENT fill (param*)>
|
||||
<!ATTLIST fill name CDATA #REQUIRED>
|
||||
<!ATTLIST fill target CDATA #REQUIRED>
|
||||
|
||||
<!ELEMENT check (param*)>
|
||||
<!ATTLIST check name CDATA #REQUIRED>
|
||||
<!ATTLIST check target CDATA #REQUIRED>
|
||||
<!ATTLIST check level (error|warning) "error">
|
||||
|
||||
<!ELEMENT auto ((param)*)>
|
||||
<!ATTLIST auto name CDATA #REQUIRED>
|
||||
<!ATTLIST auto target CDATA #REQUIRED>
|
||||
|
||||
<!ELEMENT condition ((target | param)+ )>
|
||||
<!ATTLIST condition name CDATA #REQUIRED>
|
||||
<!ATTLIST condition source CDATA #REQUIRED>
|
||||
<!ATTLIST condition fallback (True|False) "False">
|
||||
|
||||
<!ELEMENT group (slave+)>
|
||||
<!ATTLIST group master CDATA #REQUIRED>
|
||||
<!ATTLIST group description CDATA #IMPLIED>
|
||||
|
||||
<!ELEMENT param (#PCDATA)>
|
||||
<!ATTLIST param type (string|eole|number|container|context|python) "string">
|
||||
<!ATTLIST param name CDATA #IMPLIED>
|
||||
<!ATTLIST param hidden (True|False) "True">
|
||||
<!ATTLIST param optional (True|False) "False">
|
||||
|
||||
<!ELEMENT target (#PCDATA)>
|
||||
<!ATTLIST target type (family|filelist|servicelist|interfacelist|variable|service_accesslist|service_restrictionlist|hostlist|fstablist|actionlist) "variable">
|
||||
<!ATTLIST target optional (True|False) "False">
|
||||
|
||||
<!ELEMENT slave (#PCDATA)>
|
||||
|
||||
<!ELEMENT help ((variable* | family*)*)>
|
||||
|
@ -1,2 +0,0 @@
|
||||
\skbheading{vnstat-activation.tex}
|
||||
fichier content/modules\_EOLE\_envole/exercices/vnstat-activation.tex à éditer
|
@ -1,2 +0,0 @@
|
||||
\skbheading{vnstat-contrainte.tex}
|
||||
fichier content/modules\_EOLE\_envole/exercices/vnstat-contrainte.tex à éditer
|
@ -1,2 +0,0 @@
|
||||
\skbheading{vnstat-documentation.tex}
|
||||
fichier content/modules\_EOLE\_envole/exercices/vnstat-documentation.tex à éditer
|
@ -1,2 +0,0 @@
|
||||
\skbheading{vnstat-gestion-reseau.tex}
|
||||
fichier content/modules\_EOLE\_envole/exercices/vnstat-gestion-reseau.tex à éditer
|
@ -1,2 +0,0 @@
|
||||
\skbheading{vnstat-gestion-service.tex}
|
||||
fichier content/modules\_EOLE\_envole/exercices/vnstat-gestion-service.tex à éditer
|
@ -1,2 +0,0 @@
|
||||
\skbheading{vnstat-template.tex}
|
||||
fichier content/modules\_EOLE\_envole/exercices/vnstat-template.tex à éditer
|
@ -1,16 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
#set -e
|
||||
. /usr/lib/eole/diagnose.sh
|
||||
EchoGras "*** Service de statistique réseau"
|
||||
|
||||
if [ "$(CreoleGet activer_vnstat)" = "oui" ]; then
|
||||
TestPid vnStat vnstatd
|
||||
echo
|
||||
vnstat
|
||||
else
|
||||
Inactif vnStat
|
||||
fi
|
||||
|
||||
echo
|
||||
exit 0
|
@ -1,170 +0,0 @@
|
||||
# vnStat 1.18 config file
|
||||
##
|
||||
|
||||
# default interface
|
||||
%set %%interfaces = []
|
||||
%for interface in %%vnstat_interface
|
||||
%set %%zone = 'nom_zone_eth' + interface
|
||||
%silent %%interfaces.append(%%getVar(%%zone))
|
||||
%end for
|
||||
Interface "%%custom_join(%%interfaces,'+']"
|
||||
|
||||
# location of the database directory
|
||||
DatabaseDir "/var/lib/vnstat"
|
||||
|
||||
# locale (LC_ALL) ("-" = use system locale)
|
||||
Locale "-"
|
||||
|
||||
# on which day should months change
|
||||
MonthRotate 1
|
||||
|
||||
# date output formats for -d, -m, -t and -w
|
||||
# see 'man date' for control codes
|
||||
DayFormat "%x"
|
||||
MonthFormat "%b '%y"
|
||||
TopFormat "%x"
|
||||
|
||||
# characters used for visuals
|
||||
RXCharacter "%"
|
||||
TXCharacter ":"
|
||||
RXHourCharacter "r"
|
||||
TXHourCharacter "t"
|
||||
|
||||
# how units are prefixed when traffic is shown
|
||||
# 0 = IEC standard prefixes (KiB/MiB/GiB/TiB)
|
||||
# 1 = old style binary prefixes (KB/MB/GB/TB)
|
||||
UnitMode 0
|
||||
|
||||
# how units are prefixed when traffic rate is shown
|
||||
# 0 = IEC binary prefixes (Kibit/s...)
|
||||
# 1 = SI decimal prefixes (kbit/s...)
|
||||
RateUnitMode 1
|
||||
|
||||
# output style
|
||||
# 0 = minimal & narrow, 1 = bar column visible
|
||||
# 2 = same as 1 except rate in summary and weekly
|
||||
# 3 = rate column visible
|
||||
OutputStyle 3
|
||||
|
||||
# used rate unit (0 = bytes, 1 = bits)
|
||||
RateUnit 1
|
||||
|
||||
# number of decimals to use in outputs
|
||||
DefaultDecimals 2
|
||||
HourlyDecimals 1
|
||||
|
||||
# spacer for separating hourly sections (0 = none, 1 = '|', 2 = '][', 3 = '[ ]')
|
||||
HourlySectionStyle 2
|
||||
|
||||
# try to detect interface maximum bandwidth, 0 = disable feature
|
||||
# MaxBandwidth will be used as fallback value when enabled
|
||||
BandwidthDetection 1
|
||||
|
||||
# maximum bandwidth (Mbit) for all interfaces, 0 = disable feature
|
||||
# (unless interface specific limit is given)
|
||||
MaxBandwidth 1000
|
||||
|
||||
# interface specific limits
|
||||
# example 8Mbit limit for eth0 (remove # to activate):
|
||||
#MaxBWeth0 8
|
||||
|
||||
# how many seconds should sampling for -tr take by default
|
||||
Sampletime 5
|
||||
|
||||
# default query mode
|
||||
# 0 = normal, 1 = days, 2 = months, 3 = top10
|
||||
# 4 = exportdb, 5 = short, 6 = weeks, 7 = hours
|
||||
QueryMode 0
|
||||
|
||||
# filesystem disk space check (1 = enabled, 0 = disabled)
|
||||
CheckDiskSpace 1
|
||||
|
||||
# database file locking (1 = enabled, 0 = disabled)
|
||||
UseFileLocking 1
|
||||
|
||||
# how much the boot time can variate between updates (seconds)
|
||||
BootVariation 15
|
||||
|
||||
# log days without traffic to daily list (1 = enabled, 0 = disabled)
|
||||
TrafficlessDays 1
|
||||
|
||||
|
||||
# vnstatd
|
||||
##
|
||||
|
||||
# switch to given user when started as root (leave empty to disable)
|
||||
DaemonUser "%%vnstat_user"
|
||||
|
||||
# switch to given user when started as root (leave empty to disable)
|
||||
DaemonGroup "%%vnstat_group"
|
||||
|
||||
# how many minutes to wait during daemon startup for system clock to
|
||||
# sync time if most recent database update appears to be in the future
|
||||
TimeSyncWait 5
|
||||
|
||||
# how often (in seconds) interface data is updated
|
||||
UpdateInterval 30
|
||||
|
||||
# how often (in seconds) interface status changes are checked
|
||||
PollInterval 5
|
||||
|
||||
# how often (in minutes) data is saved to file
|
||||
SaveInterval 5
|
||||
|
||||
# how often (in minutes) data is saved when all interface are offline
|
||||
OfflineSaveInterval 30
|
||||
|
||||
# how often (in minutes) bandwidth detection is redone when
|
||||
# BandwidthDetection is enabled (0 = disabled)
|
||||
BandwidthDetectionInterval 5
|
||||
|
||||
# force data save when interface status changes (1 = enabled, 0 = disabled)
|
||||
SaveOnStatusChange 1
|
||||
|
||||
# enable / disable logging (0 = disabled, 1 = logfile, 2 = syslog)
|
||||
UseLogging 2
|
||||
|
||||
# create dirs if needed (1 = enabled, 0 = disabled)
|
||||
CreateDirs 1
|
||||
|
||||
# update ownership of files if needed (1 = enabled, 0 = disabled)
|
||||
UpdateFileOwner 1
|
||||
|
||||
# file used for logging if UseLogging is set to 1
|
||||
LogFile "/var/log/vnstat/vnstat.log"
|
||||
|
||||
# file used as daemon pid / lock file
|
||||
PidFile "/var/run/vnstat/vnstat.pid"
|
||||
|
||||
|
||||
# vnstati
|
||||
##
|
||||
|
||||
# title timestamp format
|
||||
HeaderFormat "%x %H:%M"
|
||||
|
||||
# show hours with rate (1 = enabled, 0 = disabled)
|
||||
HourlyRate 1
|
||||
|
||||
# show rate in summary (1 = enabled, 0 = disabled)
|
||||
SummaryRate 1
|
||||
|
||||
# layout of summary (1 = with monthly, 0 = without monthly)
|
||||
SummaryLayout 1
|
||||
|
||||
# transparent background (1 = enabled, 0 = disabled)
|
||||
TransparentBg 0
|
||||
|
||||
# image colors
|
||||
CBackground "FFFFFF"
|
||||
CEdge "AEAEAE"
|
||||
CHeader "606060"
|
||||
CHeaderTitle "FFFFFF"
|
||||
CHeaderDate "FFFFFF"
|
||||
CText "000000"
|
||||
CLine "B0B0B0"
|
||||
CLineL "-"
|
||||
CRx "92CF00"
|
||||
CTx "606060"
|
||||
CRxD "-"
|
||||
CTxD "-"
|
@ -46,7 +46,6 @@
|
||||
\usepackage{graphicx}
|
||||
\usepackage{pdfpages}
|
||||
\usepackage{menukeys}
|
||||
\usepackage{minted}
|
||||
\makeindex
|
||||
|
||||
%
|
||||
|
@ -1,203 +0,0 @@
|
||||
\usepackage{ifxetex}
|
||||
\ifxetex
|
||||
\usepackage{fontspec}
|
||||
%\usepackage{microtype}
|
||||
%\usepackage{xunicode}
|
||||
\usepackage{polyglossia}
|
||||
\usepackage{xltxtra}
|
||||
\setdefaultlanguage{french}
|
||||
\setotherlanguage{english}
|
||||
\defaultfontfeatures{Mapping=tex-text} % To support LaTeX quoting style
|
||||
%\setmainfont{Caviar Dreams}
|
||||
\newfontfamily\headingfont[]{Caviar Dreams}
|
||||
\usepackage{titlesec}
|
||||
\defaultfontfeatures{Ligatures=TeX}
|
||||
% Set sans serif font to Calibri
|
||||
\setsansfont{LiberationSans}
|
||||
% Set serifed font to Cambria
|
||||
\setmainfont{LiberationSans}
|
||||
\else
|
||||
\usepackage[utf8]{inputenc}
|
||||
\usepackage[T1]{fontenc}
|
||||
\usepackage{amsfonts}
|
||||
\usepackage[english, francais]{babel}
|
||||
\fi
|
||||
\usepackage{pifont}
|
||||
\usepackage{geometry}
|
||||
\usepackage{fancybox}
|
||||
\usepackage{verbatim}
|
||||
\usepackage{eurosym}
|
||||
%\usepackage{color}
|
||||
\usepackage[svgnames,table]{xcolor}
|
||||
\usepackage{listings}
|
||||
\usepackage{graphicx}
|
||||
\usepackage{hyperref}
|
||||
\usepackage{titlesec}
|
||||
\usepackage{fancyhdr}
|
||||
\usepackage{lastpage}
|
||||
%\usepackage{enumitem}
|
||||
\usepackage{makeidx}
|
||||
\usepackage{tocbibind}
|
||||
\usepackage[backend=biber,hyperref=true,backref=true]{biblatex}
|
||||
\addbibresource{biblio.bib}
|
||||
\usepackage{url}
|
||||
\renewcommand{\baselinestretch}{1.3}
|
||||
\addto\captionsfrench{\renewcommand{\contentsname}{Sommaire}}
|
||||
\usepackage{graphicx}
|
||||
\usepackage{pdfpages}
|
||||
\makeindex
|
||||
|
||||
%
|
||||
% Tableaux
|
||||
%
|
||||
\usepackage{array}
|
||||
\usepackage{booktabs}
|
||||
\usepackage{colortbl}
|
||||
|
||||
% Default
|
||||
\newcolumntype{1}{l}
|
||||
\newcolumntype{2}{l}
|
||||
\newcolumntype{3}{l}
|
||||
\newcolumntype{4}{l}
|
||||
\newcolumntype{5}{l}
|
||||
\newcolumntype{6}{l}
|
||||
\newcolumntype{7}{l}
|
||||
\newcolumntype{8}{l}
|
||||
\newcommand*\heading{}
|
||||
\newcommand*\beforeheading{}
|
||||
\newcommand*\afterheading{}
|
||||
\newcommand*\normalline{}
|
||||
\newcommand*\lastline{}
|
||||
|
||||
%\renewcommand*\toprule{\arrayrulecolor{red}{\hline}}
|
||||
|
||||
% Nice looking rules, centered cells
|
||||
\newcolumntype{1}{c}
|
||||
\newcolumntype{2}{c}
|
||||
\newcolumntype{3}{c}
|
||||
\newcolumntype{4}{c}
|
||||
\newcolumntype{5}{c}
|
||||
\newcolumntype{6}{c}
|
||||
\newcolumntype{7}{c}
|
||||
\newcolumntype{8}{c}
|
||||
\renewcommand*\heading[1]{\chapterfont\MakeUppercase{#1}}
|
||||
\renewcommand*\beforeheading{\arrayrulecolor{CadolesBlue}\toprule}
|
||||
\renewcommand*\afterheading{\midrule}
|
||||
\renewcommand*\normalline{}
|
||||
\renewcommand*\lastline{\bottomrule}
|
||||
|
||||
\definecolor{CadolesBlue}{rgb}{.16,.50,.69}
|
||||
\definecolor{CadolesLightBlue}{rgb}{.31,.506,.741}
|
||||
\newfontfamily\cadolesfont{Caviar Dreams}
|
||||
\newfontfamily\chapterfont[Color=CadolesBlue]{Caviar Dreams}
|
||||
\newfontfamily\sectionfont[Color=CadolesBlue]{Caviar Dreams}
|
||||
\newfontfamily\subsectionfont[Color=CadolesLightBlue]{Caviar Dreams}
|
||||
\newfontfamily\subsubsectionfont[Color=CadolesLightBlue]{Caviar Dreams}
|
||||
|
||||
\newcommand{\tickYes}{\color{Green}\checkmark}
|
||||
\newcommand{\tickNo}{\color{red}{\hspace{1pt}\ding{55}}}
|
||||
\newcommand{\wlink}[1]{\textcolor{CadolesBlue}{\underline{#1}}}
|
||||
\newcommand{\classname}[1]{\texttt{\textbf{#1}}}
|
||||
%\newcommand{\cadoles}{\chapterfont{Cadoles}}
|
||||
\newcommand{\cadoles}{\cadolesfont\textcolor{black}{Cad}\textcolor{CadolesBlue}{ole}\textcolor{black}{s}}
|
||||
\newcommand{\TitleRule}{\rule[0.5ex]{12cm}{0.5mm}}
|
||||
\newcommand\espace{\vrule height 20pt width 0pt}
|
||||
\newcommand{\titre}[1]{{\color{DarkBlue}\normalfont\LARGE\bfseries #1\smallskip\hrule height 1pt}\bigskip}
|
||||
\renewcommand*\abstractname{Summary}
|
||||
%\renewcommand{\FrenchLabelItem}{\color{DarkBlue}{\ding{68}}}
|
||||
\let\oldfootnoterule\footnoterule
|
||||
\renewcommand\footnoterule{\vspace*{-3pt}%
|
||||
\noindent\rule{3in}{0.4pt}\vspace*{2.6pt}}% -3 + 0.4 + 2.6 = 0
|
||||
|
||||
%\pagestyle{headings}
|
||||
\makeatletter
|
||||
\renewcommand{\thesection}{}
|
||||
\titleformat{\chapter}{\LARGE\chapterfont}{\thesection}{0ex}{}[\color{CadolesBlue}\hrule height 1pt]
|
||||
\titleformat{\section}{\Large\sectionfont}{\thesection}{0ex}{}[\color{CadolesBlue}\hrule height 1pt]
|
||||
\titleformat{\subsection}{\large\subsectionfont}{\thesection}{0ex}{}
|
||||
\titleformat{\subsubsection}{\itshape\subsubsectionfont}{\thesection}{0ex}{}
|
||||
|
||||
\skbinput[from=rep]{style/00-entete-pied-de-page}
|
||||
|
||||
\def\maketitle{
|
||||
\skbfigure[center]{logos/Cadoles}
|
||||
\vspace{4.5cm}
|
||||
|
||||
\begin{flushleft}
|
||||
\textbf{\Huge \cadolesfont\textcolor{CadolesBlue}{\@title}}
|
||||
\end{flushleft}
|
||||
\begin{center}
|
||||
\color{CadolesBlue}\TitleRule
|
||||
\end{center}
|
||||
\begin{flushright}
|
||||
\vspace{-1.5ex}
|
||||
\textbf{\huge \cadolesfont\textcolor{DarkGrey}{\departement}}
|
||||
\end{flushright}
|
||||
\vspace{2.5cm}
|
||||
\pagebreak
|
||||
}
|
||||
|
||||
|
||||
\def\origine{
|
||||
\vspace{1.5cm}
|
||||
\begin{flushleft}
|
||||
\begin{minipage}[l]{8cm}
|
||||
\skbinput[from=rep]{style/00-Coordonnees}
|
||||
\end{minipage}
|
||||
\end{flushleft}
|
||||
}
|
||||
|
||||
%
|
||||
% Itemize avec la petite cadoles
|
||||
%
|
||||
%\newenvironment{citemize}{\renewcommand{\labelitemi{$\odot$}}}
|
||||
%\newenvironment{citemize}{\renewcommand{\labelitemi{\includegraphics[height=1.6ex]{inc/cadole.png}}}}
|
||||
\newenvironment{citemize}{\renewcommand
|
||||
\labelitemi{\includegraphics[height=1ex]{inc/cadole.png}}\begin{itemize}}{\end{itemize}}
|
||||
|
||||
|
||||
%
|
||||
% Box pour citations
|
||||
%
|
||||
\newsavebox{\fmbox}
|
||||
\newenvironment{fmpage}[1]
|
||||
{\begin{lrbox}{\fmbox}\begin{minipage}{#1}}
|
||||
{\end{minipage}\end{lrbox}\fbox{\usebox{\fmbox}}}
|
||||
|
||||
\hypersetup{
|
||||
backref=true, % Permet d'ajouter des liens dans
|
||||
pagebackref=true, % les bibliographies
|
||||
hyperindex=true, % Ajoute des liens dans les index.
|
||||
colorlinks=true, % Colorise les liens.
|
||||
breaklinks=true, % Permet le retour à la ligne dans les liens trop longs.
|
||||
urlcolor= CadolesBlue, % Couleur des hyperliens.
|
||||
linkcolor= CadolesBlue, % Couleur des liens internes.
|
||||
bookmarks=true, % Créé des signets pour Acrobat.
|
||||
bookmarksopen=true, % Si les signets Acrobat sont créés,
|
||||
% les afficher complètement.
|
||||
pdftitle={\@title}, % Titre du document.
|
||||
% Informations apparaissant dans
|
||||
pdfauthor={Cadoles}, % dans les informations du document
|
||||
pdfsubject={Proposition Commerciale} % sous Acrobat.
|
||||
}
|
||||
|
||||
|
||||
|
||||
%\topmargin 0in
|
||||
%\leftmargin 2.5cm
|
||||
%\rightmargin 2.5cm
|
||||
|
||||
\setlength{\hoffset}{-18pt}
|
||||
\setlength{\oddsidemargin}{0pt} % Marge gauche sur pages impaires
|
||||
\setlength{\evensidemargin}{9pt} % Marge gauche sur pages paires
|
||||
\setlength{\marginparwidth}{54pt} % Largeur de note dans la marge
|
||||
%\setlength{\textwidth}{481pt} % Largeur de la zone de texte (17cm)
|
||||
\setlength{\voffset}{-18pt} % Bon pour DOS
|
||||
\setlength{\marginparsep}{7pt} % Séparation de la marge
|
||||
\setlength{\topmargin}{0pt} % Pas de marge en haut
|
||||
\setlength{\headheight}{13pt} % Haut de page
|
||||
\setlength{\headsep}{10pt} % Entre le haut de page et le texte
|
||||
\setlength{\footskip}{27pt} % Bas de page + séparation
|
||||
\setlength{\textheight}{708pt} % Hauteur de la zone de texte (25cm)
|
||||
|
||||
|
@ -5,10 +5,8 @@ import argparse
|
||||
import re
|
||||
import random
|
||||
import time
|
||||
import subprocess
|
||||
from os import path, makedirs, listdir
|
||||
from jinja2 import Environment, FileSystemLoader
|
||||
import pygit2
|
||||
|
||||
LICENSES = {'CC-by-sa-2.0': 'license-cc-by-sa-2.0',
|
||||
}
|
||||
@ -48,120 +46,8 @@ def escape_tex(value):
|
||||
return newval
|
||||
|
||||
|
||||
def normalize_branch(args):
|
||||
if 'master' in args:
|
||||
return path.join('xelatex', path.dirname(args.master))
|
||||
elif 'directory' in args:
|
||||
return path.join('xelatex', args.directory)
|
||||
else:
|
||||
raise Exception('No sufficient information to create branch')
|
||||
|
||||
|
||||
def git_integration(func):
|
||||
|
||||
def commit_into_master(paths, repo, comment):
|
||||
author = repo.default_signature
|
||||
committer = author
|
||||
repo.checkout('refs/heads/master')
|
||||
index = repo.index
|
||||
for fp in paths:
|
||||
index.add(fp)
|
||||
index.write()
|
||||
tree = index.write_tree()
|
||||
master_ref = repo.references['refs/heads/master']
|
||||
parents = [master_ref.peel().hex]
|
||||
master_head = repo.create_commit('refs/heads/master',
|
||||
author,
|
||||
committer,
|
||||
comment,
|
||||
tree,
|
||||
parents)
|
||||
return master_head
|
||||
|
||||
def commit_into_branch(paths, branch, repo, comment):
|
||||
author = repo.default_signature
|
||||
committer = author
|
||||
repo.checkout(f'refs/heads/{branch}')
|
||||
index = repo.index
|
||||
for fp in paths:
|
||||
index.add(fp)
|
||||
index.write()
|
||||
tree = index.write_tree()
|
||||
branch_ref = repo.references[f'refs/heads/{branch}']
|
||||
parents = [branch_ref.peel().hex]
|
||||
branch_commit = repo.create_commit(f'refs/heads/{branch}',
|
||||
author,
|
||||
committer,
|
||||
comment,
|
||||
tree,
|
||||
parents)
|
||||
return branch_commit
|
||||
|
||||
def merge_master_into_branch(master_commit, branch, repo):
|
||||
author = repo.default_signature
|
||||
committer = author
|
||||
repo.checkout(f'refs/heads/{branch}')
|
||||
repo.merge(master_commit)
|
||||
tree = repo.index.write_tree()
|
||||
merge_commit = repo.create_commit('HEAD', author, committer, 'Merge master into xelatex/*', tree, [repo.head.target, master_commit])
|
||||
|
||||
def inner(args):
|
||||
try:
|
||||
repo = pygit2.Repository('./')
|
||||
except:
|
||||
repo = None
|
||||
if repo:
|
||||
branch_name = normalize_branch(args)
|
||||
if not branch_name in repo.branches.local:
|
||||
master_ref = repo.references['refs/heads/master']
|
||||
commit = master_ref.peel()
|
||||
repo.branches.local.create(branch_name, commit)
|
||||
func(args)
|
||||
if repo:
|
||||
repo_status = repo.status()
|
||||
to_add_status = [pygit2.GIT_STATUS_WT_NEW,
|
||||
pygit2.GIT_STATUS_WT_MODIFIED]
|
||||
branch_add_paths = [fp for fp in repo_status
|
||||
if fp.startswith(f'presentations/') and repo_status[fp] in to_add_status]
|
||||
master_add_paths = [fp for fp in repo_status
|
||||
if (fp.startswith('content/') or fp.startswith('slides/')) and repo_status[fp] in to_add_status]
|
||||
|
||||
|
||||
if func.__name__ == 'init':
|
||||
comment = 'Initialisation de la formation'
|
||||
elif func.__name__ == 'update':
|
||||
comment = 'Construction de la formation'
|
||||
elif func.__name__ == 'outline':
|
||||
comment = 'Mise à jour du programme'
|
||||
else:
|
||||
comment = 'Travail sur la formation'
|
||||
|
||||
if repo.branches['master'].is_checked_out():
|
||||
if master_add_paths:
|
||||
master_head = commit_into_master(master_add_paths, repo, comment)
|
||||
else:
|
||||
master_head = repo.revparse_single('refs/heads/master')
|
||||
if branch_add_paths:
|
||||
commit_into_branch(branch_add_paths, branch_name, repo, comment)
|
||||
elif repo.branches[branch_name].is_checked_out():
|
||||
if branch_add_paths:
|
||||
commit_into_branch(branch_add_paths, branch_name, repo, comment)
|
||||
if master_add_paths:
|
||||
master_head = commit_into_master(master_add_paths, repo, comment)
|
||||
else:
|
||||
master_head = repo.revparse_single('refs/heads/master')
|
||||
branch_ref = repo.references[f'refs/heads/{branch_name}']
|
||||
if master_head not in repo.walk(branch_ref.target):
|
||||
merge_master_into_branch(master_head, branch_name, repo)
|
||||
|
||||
|
||||
|
||||
|
||||
return inner
|
||||
|
||||
def main():
|
||||
|
||||
@git_integration
|
||||
def init(args):
|
||||
"""
|
||||
init function
|
||||
@ -183,20 +69,33 @@ def main():
|
||||
root = '../'
|
||||
if args.directory:
|
||||
root = root + re.sub(r'[\w-]+/?', '../', args.directory)
|
||||
else:
|
||||
root = '../'
|
||||
|
||||
name = 'diaporama.tex'
|
||||
name = args.name
|
||||
if name:
|
||||
if path.splitext(name)[1] == '':
|
||||
name = name + '.tex'
|
||||
else:
|
||||
name = get_unique_name('formation')
|
||||
|
||||
title = args.title
|
||||
if not title:
|
||||
title = 'FIXME'
|
||||
else:
|
||||
title = title
|
||||
|
||||
author = args.author
|
||||
if not author:
|
||||
author = 'Cadoles'
|
||||
else:
|
||||
author = author
|
||||
|
||||
client = args.client
|
||||
if not client:
|
||||
client = 'FIXME'
|
||||
else:
|
||||
client = client
|
||||
|
||||
institutes = get_institutes_logos(args.institutes)
|
||||
logos_count = len(institutes) + 1
|
||||
@ -211,20 +110,18 @@ def main():
|
||||
content = 'sli' if document_class == 'beamer' else 'rep'
|
||||
|
||||
env = {'root': root,
|
||||
'class': document_class,
|
||||
'content': content,
|
||||
'title': title,
|
||||
'author': author,
|
||||
'client': client,
|
||||
'license': license,
|
||||
'institutes': institutes,
|
||||
'logos_count': logos_count}
|
||||
'class': document_class,
|
||||
'content': content,
|
||||
'title': title,
|
||||
'author': author,
|
||||
'client': client,
|
||||
'license': license,
|
||||
'institutes': institutes,
|
||||
'logos_count': logos_count}
|
||||
master = TEMPLATES[document_class]['master']
|
||||
master_dir = path.join('presentations', directory)
|
||||
programme_dir = path.join(master_dir, 'programme')
|
||||
resources = [(master_dir, master),
|
||||
(master_dir, 'programme.tex'),
|
||||
(master_dir, 'support.tex'),
|
||||
resources = [(path.join('presentations', directory), master),
|
||||
(programme_dir, 'contenu.tex'),
|
||||
(programme_dir, 'duree.tex'),
|
||||
(programme_dir, 'evaluation.tex'),
|
||||
@ -233,6 +130,9 @@ def main():
|
||||
(programme_dir, 'prerequis.tex'),
|
||||
(programme_dir, 'public.tex'),
|
||||
]
|
||||
#('slides', 'license-cc-by-sa-2.0.tex'),
|
||||
#('slides', 'preambule.tex'),
|
||||
#('slides', 'title.tex')]
|
||||
for directory, template_file in resources:
|
||||
template = jinja_env.get_template(template_file)
|
||||
rendered_template = template.render(**env)
|
||||
@ -242,14 +142,11 @@ def main():
|
||||
with open(path.join(directory, template_dest_name), 'w') as rendered_file:
|
||||
rendered_file.write(rendered_template)
|
||||
|
||||
@git_integration
|
||||
def update(args):
|
||||
"""
|
||||
update function
|
||||
"""
|
||||
master_file = path.join('presentations', args.directory, 'diaporama.tex')
|
||||
|
||||
with open(master_file, 'r') as master:
|
||||
with open(args.master, 'r') as master:
|
||||
tex_master = master.read()
|
||||
tex_class = DOCUMENTCLASS_RE.search(tex_master)
|
||||
tex_skbconfig = SKBCONFIG_RE.search(tex_master)
|
||||
@ -274,14 +171,7 @@ def main():
|
||||
with open(dest, 'w') as rendered_file:
|
||||
rendered_file.write(rendered_template)
|
||||
|
||||
def tex_compile(args):
|
||||
master_files = [path.join('presentations', args.directory, tex_file)
|
||||
for tex_file in ['diaporama.tex', 'programme.tex', 'support.tex']]
|
||||
|
||||
for master_file in master_files:
|
||||
subprocess.call(['rubber', '--inplace', '-c shell_escape', '--unsafe', '--module=xelatex', master_file])
|
||||
|
||||
@git_integration
|
||||
def outline(args):
|
||||
"""
|
||||
outline creation
|
||||
@ -378,8 +268,7 @@ def main():
|
||||
section_re = re.compile(r'\\section\{(?P<name>.*?)\}')
|
||||
part_re = re.compile(r'\\part\{(?P<name>.*?)}')
|
||||
subsection_re = re.compile(r'\\subsection\{(?P<name>.*?)\}')
|
||||
master_file = path.join('presentations', args.directory, 'diaporama.tex')
|
||||
with open(master_file, 'r') as master_tex:
|
||||
with open(args.master, 'r') as master_tex:
|
||||
master = master_tex.read()
|
||||
skbconfig = SKBCONFIG_RE.search(master)
|
||||
|
||||
@ -390,10 +279,10 @@ def main():
|
||||
includes = SKBINPUT_RE.finditer(master)
|
||||
parts_list = [(part.start(), part_level, part.group('name')) for part in parts]
|
||||
sections_list = [(section.start(), section_level, section.group('name')) for section in sections]
|
||||
includes_list = [element for skbinput in includes for element in outline_from_include(file_path_from_skbinput(skbinput, master_file, skbconfig), skbinput.start(), document_class)]
|
||||
includes_list = [element for skbinput in includes for element in outline_from_include(file_path_from_skbinput(skbinput, args.master, skbconfig), skbinput.start(), document_class)]
|
||||
subsections_list = [(subsection.start(), subsection_level, subsection.group('name')) for subsection in subsections]
|
||||
structured_outline = structure_outline(filter_outlines(reorder_lists(parts_list, sections_list, includes_list, subsections_list)))
|
||||
content_file = path.join(path.dirname(path.abspath(master_file)), 'programme', 'contenu.tex')
|
||||
content_file = path.join(path.dirname(path.abspath(args.master)), 'programme', 'contenu.tex')
|
||||
with open(content_file, 'w') as content_fh:
|
||||
content_fh.write(structured_outline.render())
|
||||
|
||||
@ -413,6 +302,7 @@ def main():
|
||||
subparsers = parser.add_subparsers(help='Aide des sous-commandes')
|
||||
parser_init = subparsers.add_parser('init', help='Initialisation du fichier maître')
|
||||
parser_init.add_argument('-f', '--format', help="Format du document", required=True)
|
||||
parser_init.add_argument('-n', '--name', help="Nom du fichier à créer", required=True)
|
||||
parser_init.add_argument('-a', '--author', help="Auteur de la formation")
|
||||
parser_init.add_argument('-c', '--client', help="Client")
|
||||
parser_init.add_argument('-t', '--title', help="Titre de la formation")
|
||||
@ -420,20 +310,12 @@ def main():
|
||||
parser_init.add_argument('-d', '--directory', help="Sous-répertoires où créer le fichier", required=True)
|
||||
parser_init.add_argument('-i', '--institutes', nargs='*', help="Instituts dont les logos sont requis")
|
||||
parser_init.set_defaults(func=init)
|
||||
|
||||
parser_update = subparsers.add_parser('update', help='Mise à jour des fichiers inclus')
|
||||
parser_update.add_argument('-d', '--directory', help="Sous-répertoires contenant le diaporama", required=True)
|
||||
parser_update.add_argument('-m', '--master', help="Emplacement du fichier maître", required=True)
|
||||
parser_update.set_defaults(func=update)
|
||||
|
||||
parser_outline = subparsers.add_parser('outline', help="Création du programme à partir du fichier maître")
|
||||
parser_outline.add_argument('-d', '--directory', help="Sous-répertoires contenant le diaporama", required=True)
|
||||
parser_outline.add_argument('-m', '--master', help="Emplacement du fichier maître", required=True)
|
||||
parser_outline.set_defaults(func=outline)
|
||||
|
||||
if subprocess.check_output(['rubber', '--version']):
|
||||
parser_compile = subparsers.add_parser('compile', help='Compiler les différents documents en faisant appel à rubber')
|
||||
parser_compile.add_argument('-d', '--directory', help="Sous-répertoires contenant les documents", required=True)
|
||||
parser_compile.set_defaults(func=tex_compile)
|
||||
|
||||
args = parser.parse_args()
|
||||
args.func(args)
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
\begin{frame}
|
||||
\frametitle{Amon}
|
||||
\frametitle {Amon}
|
||||
\begin{itemize}
|
||||
\item Amon, la passerelle pare-feu :
|
||||
\begin{itemize}
|
||||
|
@ -24,6 +24,7 @@
|
||||
\begin{frame}
|
||||
\frametitle{Pratique}
|
||||
\begin{itemize}
|
||||
\item Faire un schedule qui extrait les données de vnStat en vue de leur sauvegarde,
|
||||
\item Faire un Schedule qui stop IRCD avant la sauvegarde ;
|
||||
\item faire un script qui démarre IRCD après la sauvegarde.
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
@ -15,7 +15,7 @@
|
||||
\skbinput[from=(((content)))]{style/preambule-(((class)))}
|
||||
\newcommand{\departement}{Cadoles Formations}
|
||||
\newcommand{\numeroversion}{0.1}
|
||||
\newcommand{\adresse}{170, avenue Jean Jaurès}
|
||||
\newcommand{\adresse}{29 bis, rue de l’Arquebuse}
|
||||
\newcommand{\codepostal}{21000}
|
||||
\newcommand{\ville}{Dijon}
|
||||
\newcommand{\telephone}{03 73 27 02 86}
|
||||
|
@ -15,7 +15,7 @@
|
||||
\skbinput[from=(((content)))]{style/preambule-(((class)))}
|
||||
\newcommand{\departement}{Cadoles}
|
||||
\newcommand{\numeroversion}{0.1}
|
||||
\newcommand{\adresse}{170, avenue Jean Jaurès}
|
||||
\newcommand{\adresse}{29 bis, rue de l’Arquebuse}
|
||||
\newcommand{\codepostal}{21000}
|
||||
\newcommand{\ville}{Dijon}
|
||||
\newcommand{\telephone}{03 73 27 02 86}
|
||||
|
@ -1,56 +0,0 @@
|
||||
\documentclass[a4paper,11pt]{report}
|
||||
|
||||
\usepackage{skb}
|
||||
|
||||
\skbconfig[
|
||||
root = (((root))),
|
||||
rep = content,
|
||||
pub = presentations,
|
||||
fig = figures,
|
||||
sli = slides,
|
||||
acr = database/acr,
|
||||
bib = database/bib
|
||||
]{skblocal.tex}
|
||||
|
||||
\newcommand{\departement}{Cadoles Formations}
|
||||
\newcommand{\numeroversion}{1.0}
|
||||
\newcommand{\adresse}{170, avenue Jean Jaurès}
|
||||
\newcommand{\codepostal}{21000}
|
||||
\newcommand{\ville}{Dijon}
|
||||
\newcommand{\telephone}{Tél : 03 73 27 02 86}
|
||||
\newcommand{\fax}{Fax : 09 72 29 61 11}
|
||||
\newcommand{\siteweb}{Site : http://www.cadoles.com/}
|
||||
\newcommand{\formateur}{Emmanuel Garette}
|
||||
|
||||
\skbinput[from=rep]{style/preambule-programme}
|
||||
|
||||
% TITRE DU DOCUMENT !
|
||||
\title{Programme de Formation}
|
||||
|
||||
\author{Emmanuel Garette}
|
||||
|
||||
%\date{}
|
||||
|
||||
\begin{document}
|
||||
\maketitle
|
||||
\newpage
|
||||
\section{Public visé}
|
||||
\input{./programme/public.tex}
|
||||
\section{Conditions préalables}
|
||||
\input{./programme/prerequis.tex}
|
||||
\section{Objectifs de la formation}
|
||||
\input{./programme/objectifs.tex}
|
||||
\section{Durée de la formation}
|
||||
\input{./programme/duree.tex}
|
||||
\section{Évaluation des acquis}
|
||||
\input{./programme/evaluation.tex}
|
||||
\newpage
|
||||
\section{Contenu de la formation}
|
||||
\input{./programme/contenu.tex}
|
||||
\IfFileExists{./programme/moyens.tex}{%
|
||||
\section{Moyens pédagogiques, techniques et d'encadrement}
|
||||
\input{./programme/moyens.tex}
|
||||
\section{Évaluation des acquis}
|
||||
}{}
|
||||
\end{document}
|
||||
|
@ -1,42 +0,0 @@
|
||||
\documentclass{article}
|
||||
|
||||
\usepackage{skb}
|
||||
|
||||
\skbconfig[
|
||||
root = (((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}{170, avenue Jean Jaurès}
|
||||
\newcommand{\codepostal}{21000}
|
||||
\newcommand{\ville}{Dijon}
|
||||
\newcommand{\telephone}{03 73 27 02 86}
|
||||
|
||||
|
||||
\begin{document}
|
||||
\title{(((title)))}
|
||||
|
||||
\author{(((author)))}
|
||||
|
||||
|
||||
|
||||
\date{{\small \today}}
|
||||
\maketitle
|
||||
|
||||
\skbinput[from=rep]{style/title}
|
||||
|
||||
% Corps de la formation
|
||||
%\skbinput[from=rep]{}
|
||||
|
||||
\skbinput[from=rep]{licences/(((license)))}
|
||||
|
||||
\end{document}
|
||||
|
@ -1,31 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
checkout_branch="$(git branch --show-current)"
|
||||
presentations_indexed_files="$(git diff --cached --name-only -- presentations/ | wc -l)"
|
||||
indexed_files="$(git diff --cached --name-only | wc -l)"
|
||||
|
||||
case "$checkout_branch" in
|
||||
master)
|
||||
if [ "${presentations_indexed_files}" -gt 0 ]
|
||||
then
|
||||
cat <<\EOF
|
||||
Error: Attempt to add files in presentations folder in master branch.
|
||||
Files in presentations folder are to be added in special branches xelatex/*.
|
||||
EOF
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
xelatex/*)
|
||||
if [ $presentations_indexed_files -ne $indexed_files ]
|
||||
then
|
||||
cat <<\EOF
|
||||
Error: Attempt to add files outside presentations folder in special branch xelatex/*.
|
||||
This branch follows only files in presentations folder.
|
||||
EOF
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
*) exit 0;;
|
||||
esac
|
||||
|
||||
exit 0
|
Loading…
x
Reference in New Issue
Block a user