/usr/share/pyshared/scolasync/scolasync.py is in scolasync 2.3-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 | #!/usr/bin/python
# -*- coding: utf-8 -*-
# $Id: scolasync.py 47 2011-06-13 10:20:14Z georgesk $
"""@package scolasync
Scolasync est un programme pour gérer des transferts de fichiers entre un
ordinateur et une collection de clés USB.
"""
## \mainpage ScolaSync
#
# \section but But de l'application
#
# Scolasync est un programme pour gérer des transferts de fichiers
# entre un ordinateur et une collection de clés USB.
#
# \section CahierDeCharges CAHIER DE CHARGES DE SCOLASYNC
#
# -# l'application doit pouvoir être utilisable par n'importe quel
# enseignant, par exemple un prof de langues quelques minutes après la
# prise en main.
# -# une personne-essource, ou le prof lui-même, doit pouvoir très
# simplement créer une association permanente entre les identifiants des
# clés USB et les noms d'élèves. Cette association doit pouvoir évoluer
# en fonction des classes à la demande de l'enseignant, d'une année sur
# l'autre, ou d'un cycle de travail à un autre.
# -# un prof doit pouvoir envoyer un ensemble de fichiers vers les clés
# USB de ses élèves identiquement pour tous. L'individualisation peut se
# faire en branchant/débranchant les clés. Le prof doit avoir la
# possibilité de choisir, voire de créer le dossier de réception.
# -# chaque élève doit pouvoir retrouver facilement ces fichiers et
# surtout la consigne expliquant ce qu'il doit faire, et comment il sera
# noté. Comme les lecteurs mp3 stockent souvent des fichiers dans des
# répertoires de noms variés, il faut pouvoir gérer ça.
# -# le prof doit pouvoir récolter les clés USB des élèves et récupérer
# leur travail en quelques minutes seulement, par exemple en
# sélectionnant le dossier dans lequel se trouve le fichier à récupérer.
# -# l'application doit renommer les fichiers en tenant compte du nom du
# baladeur, donc du nom de l'élève.
# -# il faut pouvoir effacer des fichiers sur les clés, voire les
# remettre à zéro.
#
# \section licence Licence
#
# <b>ScolaSync version 1.0 :</b>
#
# un programme pour gérer des transferts de fichiers entre un
# ordinateur et une collection de clés USB.
#
# <b>Copyright © 2010 Georges Khaznadar <georgesk@ofset.org></b>
#
# Ce projet est un logiciel libre : vous pouvez le redistribuer, le
# modifier selon les terme de la GPL (GNU Public License) dans les
# termes de la Free Software Foundation concernant la version 3 ou
# plus de la dite licence.
#
# Ce programme est fait avec l'espoir qu'il sera utile mais <b>SANS
# AUCUNE GARANTIE</b>. Lisez la <a href="http://www.gnu.org/licenses/"
# target="license">licence</a> pour plus de détails.
#
# \section support Support
#
# Si vous avez besoin d'un support pour ce programme, tel que :
# <b>garantie contractuelle</b>, <b>formation</b>, <b>adaptation plus
# précise</b> aux besoins de votre entreprise, etc. contactez
# l'association <a href="http://www.ofset.org"
# target="ofset">OFSET</a> et/ou <a
# href="mailto:georgesk@ofset.org">l'auteur</a> du logiciel.
#
# \section architecture Architecture de ScolaSync
#
# Scolasync est bâti sur des composants logiciels libres, les plus
# notables sont les suivants :
#
# - la bibliothèque Qt4 pour l'interface graphique
# - la bibliothèque python-dbus pour l'interaction avec le noyau Linux 2.6
# - la bibliothèque udisks pour interroger facilement le noyau sur le
# statut des disques, et pour réaliser certaines actions sur les
# disques et clés USB
# - l'utilisation de threads pour mener en parallèle les actions qui
# concernent simultanément plusieurs clés USB
licence={}
licenceEn="""
scolasync version %s:
a program to manage file transfers between a computer and a collection
of USB sticks.
Copyright (C) 2010 Georges Khaznadar <georgesk@ofset.org>
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 3 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, see <http://www.gnu.org/licenses/>.
"""
licence['en']=licenceEn
licenceFr="""
scolasync version %s :
un programme pour gérer des transferts de fichiers entre un
ordinateur et une collection de clés USB.
Copyright (C) 2010 Georges Khaznadar <georgesk@ofset.org>
Ce projet est un logiciel libre : vous pouvez le redistribuer, le
modifier selon les terme de la GPL (GNU Public License) dans les
termes de la Free Software Foundation concernant la version 3 ou
plus de la dite licence.
Ce programme est fait avec l'espoir qu'il sera utile mais SANS
AUCUNE GARANTIE. Lisez la licence pour plus de détails.
<http://www.gnu.org/licenses/>.
"""
licence['fr']=licenceFr
import mainWindow
from PyQt4.QtCore import *
from PyQt4.QtGui import *
import sys, os, os.path, getopt, subprocess
from globaldef import logFileName
def usage():
"""
affiche le mode d'emploi à la console
"""
print """\
"%s" : une option n'est pas reconnue
Options :
-c ou --check : pour que la première colonne du tableau comporte
des cases à cocher.""" %(" ".join(sys.argv))
return
def run():
"""
C'est la fonction principale.
Elle crée un fichier de journalisation vide, puis lance
l'application interactive elle-même. Le fichier de journalisation
est ${HOME}/.scolasync/scolasync.log sous Linux
"""
subprocess.call(": > " + logFileName ,shell=True)
app = QApplication(sys.argv)
args=sys.argv[1:]
try:
#opts,args= ["check"], sys.argv
opts, args = getopt.getopt(args, "c", ["check"] )
except getopt.GetoptError:
usage()
sys.exit(2)
locale = "%s" %QLocale.system().name()
## qtTranslator = QTranslator()
## if qtTranslator.load("qt_" + locale):
## print "OK for qttranslator"
## app.installTranslator(qtTranslator)
appTranslator = QTranslator()
langdir=os.path.join(mainWindow._dir("lang"),locale+".qm")
b= appTranslator.load(langdir)
if b:
# print "installation du fichier de traduction", langdir
app.installTranslator(appTranslator)
windows = mainWindow.mainWindow(None,opts,locale)
windows.show()
sys.exit(app.exec_())
if __name__ == "__main__":
run()
|