Parce que «Ça peut toujours servir»™ et que de toutes façons il y en a déjà des bouts qui sont dans le dépôt et que c'est chiant de git add -f.
Et puis bon, ça fait que 3Mo
This commit is contained in:
parent
29f50c2ed9
commit
3bde363deb
299 changed files with 17466 additions and 0 deletions
79
archive/python-lib/lock.py
Normal file
79
archive/python-lib/lock.py
Normal file
|
@ -0,0 +1,79 @@
|
|||
#!/usr/bin/env python
|
||||
# -*- coding: iso-8859-15 -*-
|
||||
|
||||
""" Gestion de lock
|
||||
|
||||
Copyright (C) Frédéric Pauget
|
||||
Licence : GPLv2
|
||||
"""
|
||||
|
||||
import os,string,time,sys, affich_tools
|
||||
from commands import getoutput
|
||||
from user_tests import getuser
|
||||
|
||||
def make_lock(lock_file, lock_comment='',nowait=1) :
|
||||
""" Création d'un lock
|
||||
si nowait=0 fait un sys.exit(254) quand un ancien lock actif est rencontré
|
||||
"""
|
||||
if os.path.isfile(lock_file) :
|
||||
### Lock existant
|
||||
|
||||
# Lecture du lock
|
||||
fd = open(lock_file, "r")
|
||||
pid= fd.readline().strip()
|
||||
user = fd.readline().strip()
|
||||
fd.close()
|
||||
|
||||
# Informations sur le processus lockant
|
||||
if os.system( "ps %s > /dev/null 2>&1" % pid ) :
|
||||
# Le script lockant ne tourne plus
|
||||
os.remove(lock_file)
|
||||
elif nowait :
|
||||
sys.stderr.write('Lock : %s\n' % lock_file)
|
||||
l=getoutput('ps -o etime --no-headers %s' % pid)
|
||||
data = [ user , pid , l.strip() ]
|
||||
|
||||
# Formatate de etime
|
||||
s = data[-1].split('-')
|
||||
if len(s)==2 :
|
||||
txt = '%s jour(s) ' % s[0]
|
||||
s=s[1]
|
||||
else :
|
||||
txt = ''
|
||||
s=s[0]
|
||||
|
||||
s = s.split(':')
|
||||
if len(s) == 3 :
|
||||
txt = '%sh%smin%ss' % tuple(s)
|
||||
elif len(s) == 2 :
|
||||
txt = '%smin%ss' % tuple(s)
|
||||
else :
|
||||
txt = '???'
|
||||
|
||||
data[-1]=txt
|
||||
|
||||
sys.stderr.write('\tpropriétaire : %s\n\tpid : %s\n\tdémarré depuis %s\n' % tuple(data) )
|
||||
sys.exit(254)
|
||||
else :
|
||||
# Il faut attendre
|
||||
a = affich_tools.anim('\tattente du lock')
|
||||
for i in range(8) :
|
||||
time.sleep(1)
|
||||
a.cycle()
|
||||
sys.stdout.write('\r')
|
||||
return make_lock(lock_name, lock_comment)
|
||||
|
||||
### Prise du lock
|
||||
lock_fd=open(lock_file, "w")
|
||||
lock_fd.write("%s\n%s\n%s" % (os.getpid(), getuser(), lock_comment) )
|
||||
lock_fd.close()
|
||||
|
||||
def remove_lock( lock_file ) :
|
||||
""" Destruction du lock """
|
||||
try :
|
||||
fd = open(lock_file, "r")
|
||||
if fd.readline().strip()=="%s" % os.getpid():
|
||||
os.remove(lock_file)
|
||||
fd.close()
|
||||
except :
|
||||
None
|
Loading…
Add table
Add a link
Reference in a new issue