Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
slapos
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Xiaowu Zhang
slapos
Commits
e817dc5f
Commit
e817dc5f
authored
Jun 27, 2011
by
Rafael Monnerat
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Generate the bt5list and use local repositories to bootstrap instance.
A bit modified from Vincent Patch. Thanks to Vincent.
parent
807a10d3
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
69 additions
and
2 deletions
+69
-2
slapos/recipe/erp5/__init__.py
slapos/recipe/erp5/__init__.py
+44
-1
software/erp5/instance.cfg
software/erp5/instance.cfg
+2
-0
software/erp5/software.cfg
software/erp5/software.cfg
+1
-1
stack/erp5.cfg
stack/erp5.cfg
+22
-0
No files found.
slapos/recipe/erp5/__init__.py
View file @
e817dc5f
...
...
@@ -34,6 +34,10 @@ import sys
import
zc.buildout
import
zc.recipe.egg
import
ConfigParser
import
re
_isurl
=
re
.
compile
(
'([a-zA-Z0-9+.-]+)://'
).
match
# based on Zope2.utilities.mkzopeinstance.write_inituser
def
Zope2InitUser
(
path
,
username
,
password
):
...
...
@@ -478,6 +482,44 @@ class Recipe(BaseSlapRecipe):
self
.
_createDirectory
(
os
.
path
.
join
(
self
.
erp5_directory
,
directory
))
self
.
_createDirectory
(
os
.
path
.
join
(
self
.
erp5_directory
,
'etc'
,
'package-includes'
))
# Symlink to BT5 repositories defined in instance config.
# Those paths will eventually end up in the ZODB, and having symlinks
# inside the XXX makes it possible to reuse such ZODB with another software
# release[ version].
# Note: this path cannot be used for development, it's really just a
# read-only repository.
repository_path
=
os
.
path
.
join
(
self
.
var_directory
,
"bt5_repository"
)
if
not
os
.
path
.
isdir
(
repository_path
):
os
.
mkdir
(
repository_path
)
self
.
path_list
.
append
(
repository_path
)
self
.
bt5_repository_list
=
[]
append
=
self
.
bt5_repository_list
.
append
for
repository
in
self
.
options
.
get
(
'bt5_repository_list'
,
''
).
split
():
repository
=
repository
.
strip
()
if
not
repository
:
continue
if
_isurl
(
repository
)
and
not
repository
.
startswith
(
"file://"
):
# XXX: assume it's a valid URL
append
(
repository
)
continue
if
repository
.
startswith
(
'file://'
):
repository
=
repository
.
replace
(
'file://'
,
''
,
''
)
if
os
.
path
.
isabs
(
repository
):
repo_id
=
hashlib
.
sha1
(
repository
).
hexdigest
()
link
=
os
.
path
.
join
(
repository_path
,
repo_id
)
if
os
.
path
.
lexists
(
link
):
if
not
os
.
path
.
islink
(
link
):
raise
zc
.
buildout
.
UserError
(
'Target link already %r exists but it is not link'
%
link
)
os
.
unlink
(
link
)
os
.
symlink
(
repository
,
link
)
self
.
logger
.
debug
(
'Created link %r -> %r'
%
(
link
,
repository_path
))
# Always provide a URL-Type
append
(
"file://"
+
link
)
return
user
,
password
def
installERP5Site
(
self
,
user
,
password
,
zope_access
,
mysql_conf
,
...
...
@@ -498,7 +540,8 @@ class Recipe(BaseSlapRecipe):
# XXX URL list vs. repository + list of bt5 names?
bt5_list
=
self
.
parameter_dict
.
get
(
"bt5_list"
,
""
).
split
()
bt5_repository_list
=
self
.
parameter_dict
.
get
(
"bt5_repository_list"
,
""
).
split
()
bt5_repository_list
=
self
.
parameter_dict
.
get
(
"bt5_repository_list"
,
""
).
split
()
\
or
getattr
(
self
,
'bt5_repository_list'
,
[])
self
.
path_list
.
extend
(
zc
.
buildout
.
easy_install
.
scripts
([(
'erp5_update'
,
__name__
+
'.erp5'
,
'updateERP5'
)],
self
.
ws
,
...
...
software/erp5/instance.cfg
View file @
e817dc5f
...
...
@@ -60,6 +60,8 @@ link_binary_list =
${poppler:location}/bin/pdftotext
${poppler:location}/bin/pdftohtml
bt5_repository_list = ${bt5-repository:list}
# XXX: products won't be needed as soon as all ERP5 (and products-deps)
# products will be eggified so then it will be possible to use them thanks to
# availability in software's eggs
...
...
software/erp5/software.cfg
View file @
e817dc5f
...
...
@@ -23,6 +23,6 @@ module = erp5
# Default template for erp5 instance.
recipe = slapos.recipe.template
url = ${:_profile_base_location_}/instance.cfg
md5sum = 2
92646776e6b7b9decf4291886a66603
md5sum = 2
a1445f3bcf30d8def43846317a4be5b
output = ${buildout:directory}/template.cfg
mode = 0644
stack/erp5.cfg
View file @
e817dc5f
...
...
@@ -122,6 +122,28 @@ parts =
# get git repositories
erp5
genbt5list
[bt5-repository]
# Format:
# <url or path> [...]
#
# Use absolute paths for local repositories, and URLs for non-local otherwise.
#
list = ${local-bt5-repository:list}
[local-bt5-repository]
# Same as bt5-repository, but only local repository.
# Used to generate bt5lists.
list = ${erp5:location}/bt5 ${erp5:location}/product/ERP5/bootstrap
[genbt5list]
recipe = plone.recipe.command
stop-on-error = true
genbt5list = ${erp5:location}/product/ERP5/bin/genbt5list
command =
${buildout:executable} ${:genbt5list} ${local-bt5-repository:list}
update-command = ${:command}
[bootstrap2.6]
python = python2.6
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment