Merge lp:~sergiusens/snapcraft/1501037 into lp:~snappy-dev/snapcraft/core

Proposed by Sergio Schvezov
Status: Merged
Approved by: Sergio Schvezov
Approved revision: 221
Merged at revision: 221
Proposed branch: lp:~sergiusens/snapcraft/1501037
Merge into: lp:~snappy-dev/snapcraft/core
Diff against target: 93 lines (+40/-3)
4 files modified
integration-tests/data/framework-policy/snapcraft.yaml (+14/-0)
integration-tests/units/jobs.pxu (+11/-0)
schema/snapcraft.yaml (+4/-0)
snapcraft/meta.py (+11/-3)
To merge this branch: bzr merge lp:~sergiusens/snapcraft/1501037
Reviewer Review Type Date Requested Status
Michael Vogt (community) Approve
Review via email: mp+272883@code.launchpad.net

Commit message

Support framework policies

To post a comment you must log in.
Revision history for this message
Michael Vogt (mvo) wrote :

LGTM

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== added directory 'integration-tests/data/framework-policy'
2=== added directory 'integration-tests/data/framework-policy/dir'
3=== added file 'integration-tests/data/framework-policy/dir/a'
4=== added file 'integration-tests/data/framework-policy/dir/b'
5=== added file 'integration-tests/data/framework-policy/icon.png'
6Binary files integration-tests/data/framework-policy/icon.png 1970-01-01 00:00:00 +0000 and integration-tests/data/framework-policy/icon.png 2015-09-30 09:21:17 +0000 differ
7=== added file 'integration-tests/data/framework-policy/one'
8=== added file 'integration-tests/data/framework-policy/snapcraft.yaml'
9--- integration-tests/data/framework-policy/snapcraft.yaml 1970-01-01 00:00:00 +0000
10+++ integration-tests/data/framework-policy/snapcraft.yaml 2015-09-30 09:21:17 +0000
11@@ -0,0 +1,14 @@
12+name: assemble
13+version: 1.0
14+vendor: Sergio Schvezov <sergio.schvezov@canonical.com>
15+summary: one line summary
16+description: a longer description
17+icon: icon.png
18+framework-policy: dir
19+
20+parts:
21+ framework-project:
22+ plugin: copy
23+ files:
24+ one: one
25+
26
27=== modified file 'integration-tests/units/jobs.pxu'
28--- integration-tests/units/jobs.pxu 2015-09-29 19:41:21 +0000
29+++ integration-tests/units/jobs.pxu 2015-09-30 09:21:17 +0000
30@@ -45,6 +45,17 @@
31 fi
32 flags: simple has-leftovers
33
34+id: snapcraft/normal/assemble-meta-with-policy
35+command:
36+ set -ex
37+ cp -rT $PLAINBOX_PROVIDER_DATA/framework-policy .
38+ ${SNAPCRAFT} assemble
39+ test -e ./snap/meta/framework-policy/a
40+ test -e ./snap/meta/framework-policy/b
41+ test -e ./snap/one
42+ test ! -e ./snap/dir
43+flags: simple has-leftovers
44+
45 id: snapcraft/normal/local-source
46 command:
47 set -ex
48
49=== modified file 'schema/snapcraft.yaml'
50--- schema/snapcraft.yaml 2015-09-21 05:04:31 +0000
51+++ schema/snapcraft.yaml 2015-09-30 09:21:17 +0000
52@@ -55,6 +55,10 @@
53 config:
54 type: string
55 description: path to a configure hook to expose configuration for the package
56+ framework-policy:
57+ type: string
58+ description: framework policies to add to the package
59+ format: file-path
60 services:
61 type: object
62 additionalProperties: false
63
64=== modified file 'snapcraft/meta.py'
65--- snapcraft/meta.py 2015-09-21 05:04:31 +0000
66+++ snapcraft/meta.py 2015-09-30 09:21:17 +0000
67@@ -54,6 +54,9 @@
68
69 config_data['icon'] = _copy(meta_dir, config_data['icon'])
70
71+ if 'framework-policy' in config_data:
72+ _copy(meta_dir, config_data['framework-policy'], 'framework-policy')
73+
74 _write_package_yaml(meta_dir, config_data, arches)
75 _write_readme_md(meta_dir, config_data)
76
77@@ -91,9 +94,14 @@
78 _write_wrap_exe(execparts[0], config_hook_path, args=args, cwd='$SNAP_APP_PATH')
79
80
81-def _copy(meta_dir, relpath):
82- new_relpath = os.path.join(meta_dir, os.path.basename(relpath))
83- shutil.copyfile(relpath, new_relpath)
84+def _copy(meta_dir, relpath, new_relpath=None):
85+ new_base = new_relpath or os.path.basename(relpath)
86+ new_relpath = os.path.join(meta_dir, new_base)
87+
88+ if os.path.isdir(relpath):
89+ shutil.copytree(relpath, new_relpath)
90+ else:
91+ shutil.copyfile(relpath, new_relpath)
92
93 return os.path.join('meta', os.path.basename(relpath))
94

Subscribers

People subscribed via source and target branches