37 lines
1 KiB
Python
Executable file
37 lines
1 KiB
Python
Executable file
#!/usr/bin/python
|
|
|
|
'''This script can be created on a Linux machine for creating a local Debian
|
|
(binary) repository.'''
|
|
|
|
import os, os.path
|
|
|
|
# Packages apache2 and dpkg-dev must be installed on the machine for enabling
|
|
# the Debian repository.
|
|
repoFolder = '/var/www/debianrepo'
|
|
|
|
# Create the repo folder if it does not exist
|
|
binaryFolder = os.path.join(repoFolder, 'binary')
|
|
if not os.path.exists(binaryFolder):
|
|
os.makedirs(binaryFolder)
|
|
|
|
# Create the script that will allow to recompute indexes when packages are
|
|
# added or updated into the repository.
|
|
refreshScript = '''#!/bin/bash
|
|
cd %s
|
|
echo "(Re-)building indexes for binary packages..."
|
|
dpkg-scanpackages binary /dev/null | gzip -9c > binary/Packages.gz
|
|
echo "Done."
|
|
''' % repoFolder
|
|
|
|
curdir = os.getcwd()
|
|
os.chdir(repoFolder)
|
|
scriptName = os.path.join(repoFolder, 'refresh.sh')
|
|
if not os.path.exists(scriptName):
|
|
f = file(scriptName, 'w')
|
|
f.write(refreshScript)
|
|
f.close()
|
|
os.system('chmod -R 755 %s' % repoFolder)
|
|
os.chdir(curdir)
|
|
print 'Repository created.'
|
|
|