4
4
# © 2005 Josselin Mouette <joss@debian.org>
5
5
# Licensed under the GNU LGPL, see /usr/share/common-licenses/LGPL-2.1
8
defaults_dir = '/usr/share/gconf/defaults'
9
outdir = '/var/lib/gconf/debian.defaults'
10
7
treefile = '%gconf-tree.xml'
12
9
import os,tempfile,shutil,sys
15
sys.stderr.write("%s needs to be run as root.\n"%sys.argv[0])
10
from optparse import OptionParser
12
parser = OptionParser()
13
parser.add_option("--source", dest="source_dir", default="/usr/share/gconf/defaults",
14
help="directory where to find the defaults", metavar="DIR")
15
parser.add_option("--destination", dest="dest_dir", default="/var/lib/gconf/debian.defaults",
16
help="directory where to build the GConf tree", metavar="DIR")
17
parser.add_option("--mandatory", action="store_true", default=False, dest="mandatory",
18
help="select mandatory settings directories")
19
parser.add_option("--no-signal", action="store_false", default=True, dest="signal",
20
help="do not send SIGHUP the running gconfd-2 processes")
22
(options, args) = parser.parse_args()
25
options.source_dir="/usr/share/gconf/mandatory"
26
options.dest_dir="/var/lib/gconf/debian.mandatory"
28
if not os.path.isdir(options.source_dir):
29
parser.error("Source directory does not exist.")
30
if not os.path.isdir(options.dest_dir):
31
parser.error("Destination directory does not exist.")
32
if not os.access(options.source_dir,os.R_OK|os.X_OK):
33
parser.error("Source directory is not readable.")
34
if not os.access(options.dest_dir,os.W_OK|os.X_OK):
35
parser.error("Destination directory is not writable.")
18
37
tmp_dir=tempfile.mkdtemp(prefix="gconf-")
19
38
tmp_home=tmp_dir+'/home'
103
122
gconf_val[l[0]] = l[1]
106
defaults_files = os.listdir(defaults_dir)
125
defaults_files = os.listdir(options.source_dir)
107
126
defaults_files.sort()
108
127
for f in defaults_files:
109
realname=defaults_dir+'/'+f
110
if f.endswith('.dpkg-tmp'):
112
elif f.endswith('.entries'):
128
realname=options.source_dir+'/'+f
129
for ext in ['.dpkg-tmp', '.bak', '.tmp', '~', '.sav', '.save']:
132
if f.endswith('.entries'):
114
134
write_and_apply_entries(tmp_file)
120
140
write_and_apply_entries(tmp_file)
123
shutil.copyfile(tmp_gconf+'/'+treefile,outdir+'/'+treefile+'.tmp')
124
os.rename(outdir+'/'+treefile+'.tmp',outdir+'/'+treefile)
143
shutil.copyfile(tmp_gconf+'/'+treefile,options.dest_dir+'/'+treefile+'.tmp')
144
os.rename(options.dest_dir+'/'+treefile+'.tmp',options.dest_dir+'/'+treefile)
126
146
# No %gconf-tree.xml file was created.
128
os.remove(outdir+'/'+treefile)
148
os.remove(options.dest_dir+'/'+treefile)
130
150
# No existing file
135
os.system('kill -s HUP `pidof gconfd-2` >/dev/null 2>&1')
156
os.system('kill -s HUP `pidof gconfd-2` >/dev/null 2>&1')