dev/files/settings_south_syncdb.py
author Nicolas DURAND <nicolas.durand@iri.centrepompidou.fr>
Fri, 12 Sep 2014 15:28:17 +0200
changeset 136 66972b143124
permissions -rw-r--r--
Fixes to puppet provisioning, Puppet_Readme.md added, custom.yaml removed from tracking (error)
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
136
66972b143124 Fixes to puppet provisioning, Puppet_Readme.md added, custom.yaml removed from tracking (error)
Nicolas DURAND <nicolas.durand@iri.centrepompidou.fr>
parents:
diff changeset
     1
#!/usr/bin/python
66972b143124 Fixes to puppet provisioning, Puppet_Readme.md added, custom.yaml removed from tracking (error)
Nicolas DURAND <nicolas.durand@iri.centrepompidou.fr>
parents:
diff changeset
     2
66972b143124 Fixes to puppet provisioning, Puppet_Readme.md added, custom.yaml removed from tracking (error)
Nicolas DURAND <nicolas.durand@iri.centrepompidou.fr>
parents:
diff changeset
     3
import re
66972b143124 Fixes to puppet provisioning, Puppet_Readme.md added, custom.yaml removed from tracking (error)
Nicolas DURAND <nicolas.durand@iri.centrepompidou.fr>
parents:
diff changeset
     4
import sys, getopt
66972b143124 Fixes to puppet provisioning, Puppet_Readme.md added, custom.yaml removed from tracking (error)
Nicolas DURAND <nicolas.durand@iri.centrepompidou.fr>
parents:
diff changeset
     5
from shutil import move
66972b143124 Fixes to puppet provisioning, Puppet_Readme.md added, custom.yaml removed from tracking (error)
Nicolas DURAND <nicolas.durand@iri.centrepompidou.fr>
parents:
diff changeset
     6
from os import remove, close
66972b143124 Fixes to puppet provisioning, Puppet_Readme.md added, custom.yaml removed from tracking (error)
Nicolas DURAND <nicolas.durand@iri.centrepompidou.fr>
parents:
diff changeset
     7
from tempfile import mkstemp
66972b143124 Fixes to puppet provisioning, Puppet_Readme.md added, custom.yaml removed from tracking (error)
Nicolas DURAND <nicolas.durand@iri.centrepompidou.fr>
parents:
diff changeset
     8
66972b143124 Fixes to puppet provisioning, Puppet_Readme.md added, custom.yaml removed from tracking (error)
Nicolas DURAND <nicolas.durand@iri.centrepompidou.fr>
parents:
diff changeset
     9
def replace(file_path, pattern, subst):
66972b143124 Fixes to puppet provisioning, Puppet_Readme.md added, custom.yaml removed from tracking (error)
Nicolas DURAND <nicolas.durand@iri.centrepompidou.fr>
parents:
diff changeset
    10
    #Create temp file
66972b143124 Fixes to puppet provisioning, Puppet_Readme.md added, custom.yaml removed from tracking (error)
Nicolas DURAND <nicolas.durand@iri.centrepompidou.fr>
parents:
diff changeset
    11
    fh, abs_path = mkstemp()
66972b143124 Fixes to puppet provisioning, Puppet_Readme.md added, custom.yaml removed from tracking (error)
Nicolas DURAND <nicolas.durand@iri.centrepompidou.fr>
parents:
diff changeset
    12
    new_file = open(abs_path,'w')
66972b143124 Fixes to puppet provisioning, Puppet_Readme.md added, custom.yaml removed from tracking (error)
Nicolas DURAND <nicolas.durand@iri.centrepompidou.fr>
parents:
diff changeset
    13
    old_file = open(file_path)
66972b143124 Fixes to puppet provisioning, Puppet_Readme.md added, custom.yaml removed from tracking (error)
Nicolas DURAND <nicolas.durand@iri.centrepompidou.fr>
parents:
diff changeset
    14
    for line in old_file:
66972b143124 Fixes to puppet provisioning, Puppet_Readme.md added, custom.yaml removed from tracking (error)
Nicolas DURAND <nicolas.durand@iri.centrepompidou.fr>
parents:
diff changeset
    15
        new_file.write(line.replace(pattern, subst))
66972b143124 Fixes to puppet provisioning, Puppet_Readme.md added, custom.yaml removed from tracking (error)
Nicolas DURAND <nicolas.durand@iri.centrepompidou.fr>
parents:
diff changeset
    16
    #close temp file
66972b143124 Fixes to puppet provisioning, Puppet_Readme.md added, custom.yaml removed from tracking (error)
Nicolas DURAND <nicolas.durand@iri.centrepompidou.fr>
parents:
diff changeset
    17
    new_file.close()
66972b143124 Fixes to puppet provisioning, Puppet_Readme.md added, custom.yaml removed from tracking (error)
Nicolas DURAND <nicolas.durand@iri.centrepompidou.fr>
parents:
diff changeset
    18
    close(fh)
66972b143124 Fixes to puppet provisioning, Puppet_Readme.md added, custom.yaml removed from tracking (error)
Nicolas DURAND <nicolas.durand@iri.centrepompidou.fr>
parents:
diff changeset
    19
    old_file.close()
66972b143124 Fixes to puppet provisioning, Puppet_Readme.md added, custom.yaml removed from tracking (error)
Nicolas DURAND <nicolas.durand@iri.centrepompidou.fr>
parents:
diff changeset
    20
    #Remove original file
66972b143124 Fixes to puppet provisioning, Puppet_Readme.md added, custom.yaml removed from tracking (error)
Nicolas DURAND <nicolas.durand@iri.centrepompidou.fr>
parents:
diff changeset
    21
    remove(file_path)
66972b143124 Fixes to puppet provisioning, Puppet_Readme.md added, custom.yaml removed from tracking (error)
Nicolas DURAND <nicolas.durand@iri.centrepompidou.fr>
parents:
diff changeset
    22
    #Move new file
66972b143124 Fixes to puppet provisioning, Puppet_Readme.md added, custom.yaml removed from tracking (error)
Nicolas DURAND <nicolas.durand@iri.centrepompidou.fr>
parents:
diff changeset
    23
    move(abs_path, file_path)
66972b143124 Fixes to puppet provisioning, Puppet_Readme.md added, custom.yaml removed from tracking (error)
Nicolas DURAND <nicolas.durand@iri.centrepompidou.fr>
parents:
diff changeset
    24
66972b143124 Fixes to puppet provisioning, Puppet_Readme.md added, custom.yaml removed from tracking (error)
Nicolas DURAND <nicolas.durand@iri.centrepompidou.fr>
parents:
diff changeset
    25
def main(argv):
66972b143124 Fixes to puppet provisioning, Puppet_Readme.md added, custom.yaml removed from tracking (error)
Nicolas DURAND <nicolas.durand@iri.centrepompidou.fr>
parents:
diff changeset
    26
    in_installed_apps=None 
66972b143124 Fixes to puppet provisioning, Puppet_Readme.md added, custom.yaml removed from tracking (error)
Nicolas DURAND <nicolas.durand@iri.centrepompidou.fr>
parents:
diff changeset
    27
    uncomment=None 
66972b143124 Fixes to puppet provisioning, Puppet_Readme.md added, custom.yaml removed from tracking (error)
Nicolas DURAND <nicolas.durand@iri.centrepompidou.fr>
parents:
diff changeset
    28
    done=None 
66972b143124 Fixes to puppet provisioning, Puppet_Readme.md added, custom.yaml removed from tracking (error)
Nicolas DURAND <nicolas.durand@iri.centrepompidou.fr>
parents:
diff changeset
    29
    file = ''
66972b143124 Fixes to puppet provisioning, Puppet_Readme.md added, custom.yaml removed from tracking (error)
Nicolas DURAND <nicolas.durand@iri.centrepompidou.fr>
parents:
diff changeset
    30
    instructions='settings_south_syncdb.py -i <settings.py file> to comment south in installed apps, settings_south_syncdb.py -r -i <settings.py file> to decomment south in installed apps'
66972b143124 Fixes to puppet provisioning, Puppet_Readme.md added, custom.yaml removed from tracking (error)
Nicolas DURAND <nicolas.durand@iri.centrepompidou.fr>
parents:
diff changeset
    31
    
66972b143124 Fixes to puppet provisioning, Puppet_Readme.md added, custom.yaml removed from tracking (error)
Nicolas DURAND <nicolas.durand@iri.centrepompidou.fr>
parents:
diff changeset
    32
    try:
66972b143124 Fixes to puppet provisioning, Puppet_Readme.md added, custom.yaml removed from tracking (error)
Nicolas DURAND <nicolas.durand@iri.centrepompidou.fr>
parents:
diff changeset
    33
       opts, args = getopt.getopt(argv,"hri:",["file="])
66972b143124 Fixes to puppet provisioning, Puppet_Readme.md added, custom.yaml removed from tracking (error)
Nicolas DURAND <nicolas.durand@iri.centrepompidou.fr>
parents:
diff changeset
    34
    except getopt.GetoptError:
66972b143124 Fixes to puppet provisioning, Puppet_Readme.md added, custom.yaml removed from tracking (error)
Nicolas DURAND <nicolas.durand@iri.centrepompidou.fr>
parents:
diff changeset
    35
       print 'settings_south_syncdb.py -i <settings.py file>'
66972b143124 Fixes to puppet provisioning, Puppet_Readme.md added, custom.yaml removed from tracking (error)
Nicolas DURAND <nicolas.durand@iri.centrepompidou.fr>
parents:
diff changeset
    36
       sys.exit(2)
66972b143124 Fixes to puppet provisioning, Puppet_Readme.md added, custom.yaml removed from tracking (error)
Nicolas DURAND <nicolas.durand@iri.centrepompidou.fr>
parents:
diff changeset
    37
    if not opts:
66972b143124 Fixes to puppet provisioning, Puppet_Readme.md added, custom.yaml removed from tracking (error)
Nicolas DURAND <nicolas.durand@iri.centrepompidou.fr>
parents:
diff changeset
    38
        print instructions
66972b143124 Fixes to puppet provisioning, Puppet_Readme.md added, custom.yaml removed from tracking (error)
Nicolas DURAND <nicolas.durand@iri.centrepompidou.fr>
parents:
diff changeset
    39
        sys.exit()
66972b143124 Fixes to puppet provisioning, Puppet_Readme.md added, custom.yaml removed from tracking (error)
Nicolas DURAND <nicolas.durand@iri.centrepompidou.fr>
parents:
diff changeset
    40
    for opt, arg in opts:
66972b143124 Fixes to puppet provisioning, Puppet_Readme.md added, custom.yaml removed from tracking (error)
Nicolas DURAND <nicolas.durand@iri.centrepompidou.fr>
parents:
diff changeset
    41
       if opt == '-h':
66972b143124 Fixes to puppet provisioning, Puppet_Readme.md added, custom.yaml removed from tracking (error)
Nicolas DURAND <nicolas.durand@iri.centrepompidou.fr>
parents:
diff changeset
    42
        print instructions
66972b143124 Fixes to puppet provisioning, Puppet_Readme.md added, custom.yaml removed from tracking (error)
Nicolas DURAND <nicolas.durand@iri.centrepompidou.fr>
parents:
diff changeset
    43
        sys.exit()
66972b143124 Fixes to puppet provisioning, Puppet_Readme.md added, custom.yaml removed from tracking (error)
Nicolas DURAND <nicolas.durand@iri.centrepompidou.fr>
parents:
diff changeset
    44
       elif opt == '-r':
66972b143124 Fixes to puppet provisioning, Puppet_Readme.md added, custom.yaml removed from tracking (error)
Nicolas DURAND <nicolas.durand@iri.centrepompidou.fr>
parents:
diff changeset
    45
         uncomment=True
66972b143124 Fixes to puppet provisioning, Puppet_Readme.md added, custom.yaml removed from tracking (error)
Nicolas DURAND <nicolas.durand@iri.centrepompidou.fr>
parents:
diff changeset
    46
       elif opt in ("-i", "--file"):
66972b143124 Fixes to puppet provisioning, Puppet_Readme.md added, custom.yaml removed from tracking (error)
Nicolas DURAND <nicolas.durand@iri.centrepompidou.fr>
parents:
diff changeset
    47
         file = arg
66972b143124 Fixes to puppet provisioning, Puppet_Readme.md added, custom.yaml removed from tracking (error)
Nicolas DURAND <nicolas.durand@iri.centrepompidou.fr>
parents:
diff changeset
    48
       else:
66972b143124 Fixes to puppet provisioning, Puppet_Readme.md added, custom.yaml removed from tracking (error)
Nicolas DURAND <nicolas.durand@iri.centrepompidou.fr>
parents:
diff changeset
    49
         print instructions
66972b143124 Fixes to puppet provisioning, Puppet_Readme.md added, custom.yaml removed from tracking (error)
Nicolas DURAND <nicolas.durand@iri.centrepompidou.fr>
parents:
diff changeset
    50
         sys.exit()
66972b143124 Fixes to puppet provisioning, Puppet_Readme.md added, custom.yaml removed from tracking (error)
Nicolas DURAND <nicolas.durand@iri.centrepompidou.fr>
parents:
diff changeset
    51
    if uncomment:
66972b143124 Fixes to puppet provisioning, Puppet_Readme.md added, custom.yaml removed from tracking (error)
Nicolas DURAND <nicolas.durand@iri.centrepompidou.fr>
parents:
diff changeset
    52
        replace(file, '#\'south\',', '\'south\',')
66972b143124 Fixes to puppet provisioning, Puppet_Readme.md added, custom.yaml removed from tracking (error)
Nicolas DURAND <nicolas.durand@iri.centrepompidou.fr>
parents:
diff changeset
    53
    else:
66972b143124 Fixes to puppet provisioning, Puppet_Readme.md added, custom.yaml removed from tracking (error)
Nicolas DURAND <nicolas.durand@iri.centrepompidou.fr>
parents:
diff changeset
    54
        replace(file, '\'south\',', '#\'south\',')
66972b143124 Fixes to puppet provisioning, Puppet_Readme.md added, custom.yaml removed from tracking (error)
Nicolas DURAND <nicolas.durand@iri.centrepompidou.fr>
parents:
diff changeset
    55
66972b143124 Fixes to puppet provisioning, Puppet_Readme.md added, custom.yaml removed from tracking (error)
Nicolas DURAND <nicolas.durand@iri.centrepompidou.fr>
parents:
diff changeset
    56
66972b143124 Fixes to puppet provisioning, Puppet_Readme.md added, custom.yaml removed from tracking (error)
Nicolas DURAND <nicolas.durand@iri.centrepompidou.fr>
parents:
diff changeset
    57
66972b143124 Fixes to puppet provisioning, Puppet_Readme.md added, custom.yaml removed from tracking (error)
Nicolas DURAND <nicolas.durand@iri.centrepompidou.fr>
parents:
diff changeset
    58
                        
66972b143124 Fixes to puppet provisioning, Puppet_Readme.md added, custom.yaml removed from tracking (error)
Nicolas DURAND <nicolas.durand@iri.centrepompidou.fr>
parents:
diff changeset
    59
                    
66972b143124 Fixes to puppet provisioning, Puppet_Readme.md added, custom.yaml removed from tracking (error)
Nicolas DURAND <nicolas.durand@iri.centrepompidou.fr>
parents:
diff changeset
    60
if __name__ == "__main__":
66972b143124 Fixes to puppet provisioning, Puppet_Readme.md added, custom.yaml removed from tracking (error)
Nicolas DURAND <nicolas.durand@iri.centrepompidou.fr>
parents:
diff changeset
    61
   main(sys.argv[1:])