Use to automatically create source package tree with examples and syntax.

Made with "deleting and copying is easier than creating" philosophy

 example:

 newpisipackage ../../mynewpackage

 needs a little bit more cosmetics
This commit is contained in:
Onur Küçük
2006-08-27 18:26:34 +00:00
parent 0c75c29ffa
commit 5e02180c4e
+180
View File
@@ -0,0 +1,180 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
import os
import sys
import time
import string
data = {"packager_name": "Onur Küçük",
"packager_email": "onur@pardus.org.tr",
"date": time.strftime("%Y-%m-%d"),
}
temp_pspec = '''<?xml version="1.0" ?>
<!DOCTYPE PISI SYSTEM "http://www.pardus.org.tr/projeler/pisi/pisi-spec.dtd">
<PISI>
<Source>
<Name>%(package)s</Name>
<Homepage></Homepage>
<Packager>
<Name>%(packager_name)s</Name>
<Email>%(packager_email)s</Email>
</Packager>
<License>GPL-2</License>
<IsA>app:gui</IsA>
<Summary></Summary>
<Description></Description>
<Summary xml:lang="tr"></Summary>
<Description xml:lang="tr"></Description>
<Archive sha1sum="" type="targz"></Archive>
<BuildDependencies>
<Dependency versionFrom=""></Dependency>
<Dependency></Dependency>
</BuildDependencies>
<Patches>
<!--
<Patch level="1"></Patch>
-->
</Patches>
</Source>
<Package>
<Name>%(package)s</Name>
<RuntimeDependencies>
</RuntimeDependencies>
<Files>
<Path fileType="data">/</Path>
</Files>
<AdditionalFiles>
<AdditionalFile owner="root" permission="0644" target="/usr/share/appliactions/%(package)s.desktop">%(package)s.desktop</AdditionalFile>
</AdditionalFiles>
<Provides>
<COMAR script="package.py">System.Package</COMAR>
<COMAR script="service.py">System.Service</COMAR>
</Provides>
</Package>
<History>
<Update release="1">
<Date>%(date)s</Date>
<Version></Version>
<Comment>First release</Comment>
<Name>%(packager_name)s</Name>
<Email>%(packager_email)s</Email>
</Update>
</History>
</PISI>
'''
temp_actions = '''#!/usr/bin/python
# -*- coding: utf-8 -*-
#
# Copyright 2006 TUBITAK/UEKAE
# Licensed under the GNU General Public License, version 2.
# See the file http://www.gnu.org/copyleft/gpl.txt.
from pisi.actionsapi import autotools
from pisi.actionsapi import pisitools
from pisi.actionsapi import shelltools
from pisi.actionsapi import get
# WorkDir = ""
# NoStrip = "/"
def setup():
autotools.configure()
def build():
autotools.make()
def install():
autotools.rawInstall("DESTDIR=%%s" %% get.installDIR())
pisitools.dodoc("AUTHORS", "ChangeLog", "README*", "NEWS")
'''
temp_desktop = '''[Desktop Entry]
Type=Application
Version=1.0
Encoding=UTF-8
Name=%(package_cap)s
Name[tr]=%(package_cap)s
GenericName=%(package_cap)s
GenericName[tr]=%(package_cap)s
Icon=%(package)s
Exec=%(package)s
Terminal=false
StartupNotify=false
Categories=Application;Game;Arcade
'''
temp_service = '''serviceType = "local"
serviceDesc = "%(package_cap)s"
serviceDefault = "off"
from comar.service import *
def start():
if 0 == run('/sbin/start-stop-daemon --quiet --start --exec /usr/bin/%(package)s --pidfile /var/run/%(package)s.pid'):
notify("System.Service.changed", "started")
def stop():
if 0 == run("/sbin/start-stop-daemon --stop --pidfile /var/run/%(package)s.pid"):
notify("System.Service.changed", "stopped")
def status():
return checkDeamon("/var/run/%(package)s.pid")
'''
temp_postscript = '''#/usr/bin/python
import os
def postInstall():
print "FIXME"
'''
def write(filename, data):
try:
f = file("%s/%s" % (target, filename), "w")
f.write(data)
f.close()
except:
print "Could not write file %s/%s" % (target, filename)
def create_dirs():
try:
os.makedirs("%s/files" % target)
os.makedirs("%s/comar" % target)
except:
print "Could not make directory %s" % target
sys.exit(1)
# some checks
if len(sys.argv) < 2:
print "Usage : %s NewPackageDir" % sys.argv[0]
sys.exit(0)
else:
target = sys.argv[1]
data["packagedir"], data["package"] = os.path.split(target)
data["package_cap"] = string.capitalize(data["package"])
if os.path.exists(target):
print "%s already exists, please remove it first" % target
sys.exit(1)
elif " " in data["package"]:
print "You should not use empty space in package name"
sys.exit(1)
# here we go
create_dirs()
write("pspec.xml", temp_pspec % data)
write("actions.py", temp_actions % data)
write("files/%s.desktop" % data["package"], temp_desktop % data)
write("comar/service.py", temp_service % data)
write("comar/package.py", temp_postscript)