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
|
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)
|
||||||
|
|||||||
@@ -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):
|
||||||
|
|||||||
@@ -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
@@ -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
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user