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:
+11
-7
@@ -3,19 +3,23 @@
|
||||
import socket
|
||||
|
||||
def sendCommand(cmd, blocking=False):
|
||||
s = socket.socket(socket.AF_UNIX,socket.SOCK_STREAM)
|
||||
s.connect("/tmp/comar")
|
||||
s.send(cmd)
|
||||
s.close()
|
||||
try:
|
||||
s = socket.socket(socket.AF_UNIX,socket.SOCK_STREAM)
|
||||
s.connect("/tmp/comar")
|
||||
s.send(cmd)
|
||||
s.close()
|
||||
return True
|
||||
except socket.error:
|
||||
return False
|
||||
|
||||
def registerScript(om, appname, scriptPath):
|
||||
cmd = '+' + om + ' ' + appname + ' ' +scriptPath + '\n'
|
||||
sendCommand(cmd)
|
||||
return sendCommand(cmd)
|
||||
|
||||
def removeScript(appname):
|
||||
cmd = "-" + appname + '\n'
|
||||
sendCommand(cmd)
|
||||
return sendCommand(cmd)
|
||||
|
||||
def call(om):
|
||||
cmd = '$' + om + '\n'
|
||||
sendCommand(cmd)
|
||||
return sendCommand(cmd)
|
||||
|
||||
@@ -42,6 +42,15 @@ class Config(object):
|
||||
def install_dir(self):
|
||||
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()
|
||||
|
||||
def __init__(self):
|
||||
|
||||
@@ -33,10 +33,16 @@ class Constants:
|
||||
self.__c.distributionRelease = "0.1"
|
||||
|
||||
# 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.db_dir_suffix = "/var/db/pisi"
|
||||
self.__c.archives_dir_suffix = "/var/cache/pisi/archives"
|
||||
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
|
||||
self.__c.work_dir_suffix = "/work"
|
||||
|
||||
+25
-7
@@ -9,11 +9,13 @@ from package import Package
|
||||
from files import Files
|
||||
import util
|
||||
from config import config
|
||||
from constants import const
|
||||
from ui import ui
|
||||
from installdb import installdb
|
||||
from packagedb import packagedb
|
||||
import dependency
|
||||
from metadata import MetaData
|
||||
import comariface
|
||||
#import conflicts
|
||||
|
||||
##TODO: Caglar'in onerisi uzerine.
|
||||
@@ -54,6 +56,11 @@ def extract_pkg_files(package_fn):
|
||||
ui.info('Extracting files\n')
|
||||
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):
|
||||
"""Remove a goddamn package"""
|
||||
@@ -125,15 +132,26 @@ def install(package_fn):
|
||||
# unzip package in place
|
||||
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...
|
||||
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
|
||||
# something like the below?
|
||||
# import comariface
|
||||
# for comar int metadata.package.providesComar:
|
||||
# scriptPath = .... + comar.script
|
||||
# comariface.register(comar.om, metadata.package.name, scriptPath)
|
||||
# register COMAR scripts
|
||||
for pcomar in package.providesComar:
|
||||
scriptPath = config.comar_files_dir() + pcomar.script
|
||||
ui.info("Registering COMAR script %s\n" % pcomar.script)
|
||||
ret = comariface.registerScript(pcomar.om,
|
||||
package.name,
|
||||
scriptPath)
|
||||
if not ret:
|
||||
ui.error("Unable to register COMAR script. Be sure that comard is running!\n")
|
||||
|
||||
# update databases
|
||||
|
||||
|
||||
Reference in New Issue
Block a user