Uzak PSPEC deposundan pisi paketi oluşturma. Daha ne isterim ki

;). Aşağıdaki komutu verin ve arkanıza yaslanın.

./pisi-build https://svn.uludag.org.tr/pisi/trunk/b/bash/pspec.xml
This commit is contained in:
Barış Metin
2005-07-04 22:41:30 +00:00
parent 75fa1cf0d9
commit 07a17284e0
+56 -5
View File
@@ -2,18 +2,64 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# python standard library # python standard library
from os.path import basename from os.path import basename, dirname, join
import sys import sys
from optparse import OptionParser from optparse import OptionParser
# pisi modules # pisi modules
sys.path.append("./lib") sys.path.append("./lib")
import pisi.context
import pisi.util import pisi.util
from pisi.ui import ui
from pisi.context import BuildContext
from pisi.config import config
from pisi.constants import const
from pisi.build import PisiBuild, PisiBuildError from pisi.build import PisiBuild, PisiBuildError
from pisi.purl import PUrl
from pisi.fetcher import fetchUrl
class RemoteSource(object):
def __init__(self, url):
self.url = url
self.location = dirname(self.url.uri)
pkgname = basename(dirname(self.url.path()))
self.dest = join(config.tmp_dir(), pkgname)
self.fetch_pspec()
pspec = join(self.dest, self.url.filename())
self.ctx = BuildContext(pspec)
self.fetch_actionsfile()
self.fetch_patches()
self.fetch_additionalFiles()
def fetch_pspec(self):
self.fetchFile(self.url.uri)
def fetch_actionsfile(self):
actionsuri = join(self.location, const.actions_file)
self.fetchFile(actionsuri)
def fetch_patches(self):
spec = self.ctx.spec
for patch in spec.source.patches:
patchuri = join(self.location,
const.files_dir, patch.filename)
self.fetchFile(patchuri, const.files_dir)
def fetch_additionalFiles(self):
# TODO: bu özelliği şimdilik eklemedim. specfile.py'ye
# AdditionalFiles desteği eklemek lazım önce. Yarın yaparım.
pass
def fetchFile(self, uri, appendDest=""):
ui.info("Fetching %s\n" % uri)
dest = join(self.dest, appendDest)
fetchUrl(uri, dest)
def main(): def main():
# common options # common options
usage = "usage: %prog [options] package-name.pspec" usage = "usage: %prog [options] package-name.pspec"
@@ -24,9 +70,14 @@ def main():
(options, args) = parser.parse_args() (options, args) = parser.parse_args()
# pspec(PISI Spec) to be used for package # pspec(PISI Spec) to be used for package
for pspec in args: for pspecfile in args:
# What we need to do first is create a context with our specfile # What we need to do first is create a context with our specfile
ctx = pisi.context.BuildContext(pspec) url = PUrl(pspecfile)
if url.isRemoteFile():
rs = RemoteSource(url)
ctx = rs.ctx
else:
ctx = BuildContext(url.uri)
# don't do the real job here. this is just a CLI! # don't do the real job here. this is just a CLI!
pb = PisiBuild(ctx) pb = PisiBuild(ctx)
pb.build() pb.build()