paket kuruluyor ve paket içerisindeki comar scriptleri register ediliyor!

dizinlendirmede bir sorun var. Dosyalar saklanırken ayrı ayrı dizinlere koyuluyor ve files_xml_dir'a files.xml diye dosya atılıyor. Salakça tabi :). Bunun yerine paket adı ve version numarasından bir dizin oluşturacağız lib_dir() içerisine ve dosyaları oraya yerleştireceğiz... Daha kolay olacak. Salaklığıma geldi files_xml_dir, metadata_xml_dir, comar_files_dir gibi dizinler açtım...
This commit is contained in:
Barış Metin
2005-07-15 13:48:08 +00:00
parent 7210d1cfbc
commit fa7aa783cb
4 changed files with 51 additions and 14 deletions
+11 -7
View File
@@ -3,19 +3,23 @@
import socket import socket
def sendCommand(cmd, blocking=False): def sendCommand(cmd, blocking=False):
s = socket.socket(socket.AF_UNIX,socket.SOCK_STREAM) try:
s.connect("/tmp/comar") s = socket.socket(socket.AF_UNIX,socket.SOCK_STREAM)
s.send(cmd) s.connect("/tmp/comar")
s.close() s.send(cmd)
s.close()
return True
except socket.error:
return False
def registerScript(om, appname, scriptPath): def registerScript(om, appname, scriptPath):
cmd = '+' + om + ' ' + appname + ' ' +scriptPath + '\n' cmd = '+' + om + ' ' + appname + ' ' +scriptPath + '\n'
sendCommand(cmd) return sendCommand(cmd)
def removeScript(appname): def removeScript(appname):
cmd = "-" + appname + '\n' cmd = "-" + appname + '\n'
sendCommand(cmd) return sendCommand(cmd)
def call(om): def call(om):
cmd = '$' + om + '\n' cmd = '$' + om + '\n'
sendCommand(cmd) return sendCommand(cmd)
+9
View File
@@ -42,6 +42,15 @@ class Config(object):
def install_dir(self): def install_dir(self):
return self.tmp_dir() + const.install_dir_suffix return self.tmp_dir() + const.install_dir_suffix
def files_xml_dir(self):
return self.destdir + const.files_xml_dir_suffix
def metadata_xml_dir(self):
return self.destdir + const.metadata_xml_dir_suffix
def comar_files_dir(self):
return self.destdir + const.comar_files_dir_suffix
__configinstance = configimpl() __configinstance = configimpl()
def __init__(self): def __init__(self):
+6
View File
@@ -33,10 +33,16 @@ class Constants:
self.__c.distributionRelease = "0.1" self.__c.distributionRelease = "0.1"
# directories # directories
# TODO: bu dizinler constant olmak zorunda değil. yalnızca bu
# grubu config içerisine taşıyabiliriz. configfile'dan
# düzenlenebilirler.
self.__c.lib_dir_suffix = "/var/lib/pisi" self.__c.lib_dir_suffix = "/var/lib/pisi"
self.__c.db_dir_suffix = "/var/db/pisi" self.__c.db_dir_suffix = "/var/db/pisi"
self.__c.archives_dir_suffix = "/var/cache/pisi/archives" self.__c.archives_dir_suffix = "/var/cache/pisi/archives"
self.__c.tmp_dir_suffix = "/var/tmp/pisi" self.__c.tmp_dir_suffix = "/var/tmp/pisi"
self.__c.comar_files_dir_suffix = "/var/lib/pisi/comar"
self.__c.files_xml_dir_suffix = "/var/lib/pisi/files"
self.__c.metadata_xml_dir_suffix = "/var/lib/pisi/metadata"
# directory suffixes for build # directory suffixes for build
self.__c.work_dir_suffix = "/work" self.__c.work_dir_suffix = "/work"
+25 -7
View File
@@ -9,11 +9,13 @@ from package import Package
from files import Files from files import Files
import util import util
from config import config from config import config
from constants import const
from ui import ui from ui import ui
from installdb import installdb from installdb import installdb
from packagedb import packagedb from packagedb import packagedb
import dependency import dependency
from metadata import MetaData from metadata import MetaData
import comariface
#import conflicts #import conflicts
##TODO: Caglar'in onerisi uzerine. ##TODO: Caglar'in onerisi uzerine.
@@ -54,6 +56,11 @@ def extract_pkg_files(package_fn):
ui.info('Extracting files\n') ui.info('Extracting files\n')
package.extract_dir_flat('install', config.destdir) package.extract_dir_flat('install', config.destdir)
def copy_from_pkg(package_fn, file, dest):
package = Package(package_fn, 'r')
ui.info('Coping file %s to %s\n' %(file, dest))
package.extract_file(file, dest)
def remove(package_name): def remove(package_name):
"""Remove a goddamn package""" """Remove a goddamn package"""
@@ -125,15 +132,26 @@ def install(package_fn):
# unzip package in place # unzip package in place
extract_pkg_files(package_fn) extract_pkg_files(package_fn)
# TODO: put files.xml, metadata.xml, actions.py and COMAR scripts # put files.xml, metadata.xml, actions.py and COMAR scripts
# somewhere in the file system. We'll need these in future... # somewhere in the file system. We'll need these in future...
copy_from_pkg(package_fn, const.files_xml , config.files_xml_dir())
copy_from_pkg(package_fn, const.metadata_xml , config.metadata_xml_dir())
for pcomar in package.providesComar:
fpath = os.path.join(const.comar_dir, pcomar.script)
# comar prefix is added to the libdir while extracting comar
# script file. so we'll use lib_dir as destination.
copy_from_pkg(package_fn, fpath, config.lib_dir())
# TODO: register COMAR scripts # register COMAR scripts
# something like the below? for pcomar in package.providesComar:
# import comariface scriptPath = config.comar_files_dir() + pcomar.script
# for comar int metadata.package.providesComar: ui.info("Registering COMAR script %s\n" % pcomar.script)
# scriptPath = .... + comar.script ret = comariface.registerScript(pcomar.om,
# comariface.register(comar.om, metadata.package.name, scriptPath) package.name,
scriptPath)
if not ret:
ui.error("Unable to register COMAR script. Be sure that comard is running!\n")
# update databases # update databases