proj-flow 0.15.1__tar.gz → 0.15.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (145) hide show
  1. {proj_flow-0.15.1 → proj_flow-0.15.2}/CHANGELOG.rst +8 -0
  2. {proj_flow-0.15.1 → proj_flow-0.15.2}/PKG-INFO +1 -1
  3. {proj_flow-0.15.1 → proj_flow-0.15.2}/ROADMAP.md +1 -1
  4. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/__init__.py +1 -1
  5. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/flow/layer.py +19 -2
  6. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/minimal/base.py +15 -1
  7. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/minimal/init.py +3 -0
  8. proj_flow-0.15.2/src/proj_flow/template/layers/base.json +3 -0
  9. proj_flow-0.15.1/src/proj_flow/template/layers/base.json +0 -2
  10. {proj_flow-0.15.1 → proj_flow-0.15.2}/.flow/config.yaml +0 -0
  11. {proj_flow-0.15.1 → proj_flow-0.15.2}/.gitignore +0 -0
  12. {proj_flow-0.15.1 → proj_flow-0.15.2}/.readthedocs.yaml +0 -0
  13. {proj_flow-0.15.1 → proj_flow-0.15.2}/LICENSE +0 -0
  14. {proj_flow-0.15.1 → proj_flow-0.15.2}/README.md +0 -0
  15. {proj_flow-0.15.1 → proj_flow-0.15.2}/pyproject.toml +0 -0
  16. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/__main__.py +0 -0
  17. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/api/__init__.py +0 -0
  18. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/api/arg.py +0 -0
  19. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/api/completers.py +0 -0
  20. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/api/ctx.py +0 -0
  21. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/api/env.py +0 -0
  22. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/api/init.py +0 -0
  23. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/api/makefile.py +0 -0
  24. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/api/release.py +0 -0
  25. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/api/step.py +0 -0
  26. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/base/__cmake_version__.py +0 -0
  27. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/base/__init__.py +0 -0
  28. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/base/cmd.py +0 -0
  29. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/base/inspect.py +0 -0
  30. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/base/matrix.py +0 -0
  31. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/base/name_list.py +0 -0
  32. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/base/plugins.py +0 -0
  33. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/base/registry.py +0 -0
  34. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/base/uname.py +0 -0
  35. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/cli/__init__.py +0 -0
  36. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/cli/argument.py +0 -0
  37. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/cli/finder.py +0 -0
  38. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/dependency.py +0 -0
  39. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/ext/__init__.py +0 -0
  40. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/ext/cplusplus/__init__.py +0 -0
  41. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/ext/cplusplus/cmake/__init__.py +0 -0
  42. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/ext/cplusplus/cmake/parser.py +0 -0
  43. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/ext/cplusplus/cmake/project.py +0 -0
  44. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/ext/cplusplus/cmake/steps.py +0 -0
  45. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/ext/cplusplus/conan/__init__.py +0 -0
  46. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/ext/cplusplus/conan/_conan.py +0 -0
  47. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/ext/github/__init__.py +0 -0
  48. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/ext/github/cli.py +0 -0
  49. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/ext/github/hosting.py +0 -0
  50. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/ext/github/publishing.py +0 -0
  51. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/ext/github/switches.py +0 -0
  52. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/ext/markdown_changelog.py +0 -0
  53. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/ext/python/__init__.py +0 -0
  54. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/ext/python/rtdocs.py +0 -0
  55. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/ext/python/steps.py +0 -0
  56. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/ext/python/version.py +0 -0
  57. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/ext/re_structured_changelog.py +0 -0
  58. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/ext/sign/__init__.py +0 -0
  59. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/ext/sign/api.py +0 -0
  60. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/ext/sign/win32.py +0 -0
  61. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/ext/store.py +0 -0
  62. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/flow/__init__.py +0 -0
  63. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/flow/configs.py +0 -0
  64. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/flow/steps.py +0 -0
  65. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/log/__init__.py +0 -0
  66. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/log/commit.py +0 -0
  67. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/log/error.py +0 -0
  68. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/log/fmt.py +0 -0
  69. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/log/format.py +0 -0
  70. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/log/hosting/__init__.py +0 -0
  71. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/log/hosting/github.py +0 -0
  72. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/log/msg.py +0 -0
  73. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/log/release.py +0 -0
  74. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/log/rich_text/__init__.py +0 -0
  75. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/log/rich_text/api.py +0 -0
  76. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/log/rich_text/markdown.py +0 -0
  77. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/log/rich_text/re_structured_text.py +0 -0
  78. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/minimal/__init__.py +0 -0
  79. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/minimal/bootstrap.py +0 -0
  80. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/minimal/ext/bug_report.py +0 -0
  81. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/minimal/list.py +0 -0
  82. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/minimal/run.py +0 -0
  83. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/minimal/system.py +0 -0
  84. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/project/__init__.py +0 -0
  85. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/project/api.py +0 -0
  86. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/project/cplusplus/__init__.py +0 -0
  87. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/project/cplusplus/cmake_context.py +0 -0
  88. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/project/cplusplus/conan_context.py +0 -0
  89. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/project/cplusplus/project.py +0 -0
  90. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/project/data.py +0 -0
  91. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/project/interact.py +0 -0
  92. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/template/layers/base/.clang-format +0 -0
  93. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/template/layers/base/.flow/config.yml +0 -0
  94. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/template/layers/base/.flow/flow.py.mustache +0 -0
  95. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/template/layers/base/.flow/matrix.yml +0 -0
  96. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/template/layers/base/.flow/official.yml +0 -0
  97. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/template/layers/base/.gitignore +0 -0
  98. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/template/layers/base/README.md.mustache +0 -0
  99. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/template/layers/base/flow +0 -0
  100. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/template/layers/base/flow.cmd +0 -0
  101. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/template/layers/cmake/.flow/cmake/common.cmake.mustache +0 -0
  102. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/template/layers/cmake/.flow/extensions/wall/__init__.py.mustache +0 -0
  103. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/template/layers/cmake/.flow/extensions/wall/icons/__init__.py.mustache +0 -0
  104. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/template/layers/cmake/.flow/extensions/wall/icons/magick.py.mustache +0 -0
  105. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/template/layers/cmake/.flow/packages/base.cmake.mustache +0 -0
  106. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/template/layers/cmake/.flow/packages/config.cmake +0 -0
  107. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/template/layers/cmake/.flow/packages/cpack.cmake +0 -0
  108. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/template/layers/cmake/.flow/packages/wix/cpack.cmake.mustache +0 -0
  109. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/template/layers/cmake/.flow/packages/wix/patches.in.wix +0 -0
  110. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/template/layers/cmake/.flow/packages/wix.cmake.mustache +0 -0
  111. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/template/layers/cmake/CMakeGraphVizOptions.cmake +0 -0
  112. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/template/layers/cmake/CMakeLists.txt.mustache +0 -0
  113. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/template/layers/cmake/CMakePresets.json +0 -0
  114. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/template/layers/cmake/data/assets/appicon.ico +0 -0
  115. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/template/layers/cmake/data/assets/appicon.png +0 -0
  116. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/template/layers/cmake/data/assets/wix_banner.bmp +0 -0
  117. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/template/layers/cmake/data/assets/wix_dialog.bmp +0 -0
  118. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/template/layers/cmake/data/icons/.gitignore +0 -0
  119. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/template/layers/cmake/data/icons/appicon-mask.svg +0 -0
  120. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/template/layers/cmake/data/icons/appicon.svg +0 -0
  121. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/template/layers/cmake/src/main.cc.mustache +0 -0
  122. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/template/layers/cmake/src/version.hpp.in.mustache +0 -0
  123. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/template/layers/cmake/tests/test.cc.mustache +0 -0
  124. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/template/layers/cmake.json +0 -0
  125. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/template/layers/conan/.flow/cmake/libcxx_toolchain.cmake +0 -0
  126. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/template/layers/conan/.flow/cmake/output_dirs_setup.cmake +0 -0
  127. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/template/layers/conan/conanfile.txt +0 -0
  128. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/template/layers/conan.json +0 -0
  129. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/template/layers/github_actions/.github/linters/.isort.cfg +0 -0
  130. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/template/layers/github_actions/.github/linters/.mypy.ini +0 -0
  131. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/template/layers/github_actions/.github/workflows/build.yml.auto-release +0 -0
  132. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/template/layers/github_actions/.github/workflows/build.yml.basic +0 -0
  133. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/template/layers/github_actions/.github/workflows/linter.yml +0 -0
  134. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/template/layers/github_actions/CPPLINT.cfg +0 -0
  135. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/template/layers/github_actions.json +0 -0
  136. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/template/layers/github_social/.github/ISSUE_TEMPLATE/bug_report.md.mustache +0 -0
  137. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/template/layers/github_social/.github/ISSUE_TEMPLATE/feature_request.md.mustache +0 -0
  138. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/template/layers/github_social/CODE_OF_CONDUCT.md.mustache +0 -0
  139. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/template/layers/github_social/CONTRIBUTING.md +0 -0
  140. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/template/layers/github_social.json +0 -0
  141. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/template/licenses/0BSD.mustache +0 -0
  142. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/template/licenses/MIT.mustache +0 -0
  143. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/template/licenses/Unlicense.mustache +0 -0
  144. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/template/licenses/WTFPL.mustache +0 -0
  145. {proj_flow-0.15.1 → proj_flow-0.15.2}/src/proj_flow/template/licenses/Zlib.mustache +0 -0
@@ -4,6 +4,14 @@ Changelog
4
4
 
5
5
  All notable changes to this project will be documented in this file.
6
6
 
7
+ `0.15.2 <https://github.com/mzdun/proj-flow/compare/v0.15.1...v0.15.2>`_ (2025-02-24)
8
+ =====================================================================================
9
+
10
+ Bug Fixes
11
+ ---------
12
+
13
+ - carry +x on Windows (`846f6a1 <https://github.com/mzdun/proj-flow/commit/846f6a1b8d71d682e04dbd12b31ba9a6311b3d0b>`_)
14
+
7
15
  `0.15.1 <https://github.com/mzdun/proj-flow/compare/v0.15.0...v0.15.1>`_ (2025-02-23)
8
16
  =====================================================================================
9
17
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: proj-flow
3
- Version: 0.15.1
3
+ Version: 0.15.2
4
4
  Summary: C++ project maintenance, automated
5
5
  Project-URL: Changelog, https://github.com/mzdun/proj-flow/blob/main/CHANGELOG.rst
6
6
  Project-URL: Documentation, https://proj-flow.readthedocs.io/en/latest/
@@ -3,7 +3,7 @@
3
3
  - [x] GitHub setup
4
4
  - [x] Auto-release
5
5
  - [x] Breaking change works
6
- - [ ] `chmod +x`, but on Windows
6
+ - [x] `chmod +x`, but on Windows
7
7
  - [ ] bug_report's `version.options`: change to
8
8
  1. Current (vX.Y.Z)
9
9
  2. Previous (vX.Y-1.Z)
@@ -6,4 +6,4 @@ The **proj_flow** contains only ``__version__`` to be updated, nothing more.
6
6
  This is in an attempt to make this module easy to load initially.
7
7
  """
8
8
 
9
- __version__ = "0.15.1"
9
+ __version__ = "0.15.2"
@@ -22,6 +22,7 @@ class FileInfo:
22
22
  src: str
23
23
  dst: str
24
24
  is_mustache: bool
25
+ is_executable: bool
25
26
  when: Optional[str] = None
26
27
 
27
28
  @classmethod
@@ -32,12 +33,19 @@ class FileInfo:
32
33
  json_file = cast(dict, filelist.get(key, {}))
33
34
  path = cast(Optional[str], json_file.get("path"))
34
35
  when = cast(Optional[str], json_file.get("when"))
36
+ is_executable = cast(bool, json_file.get("executable"))
35
37
  dst = (
36
38
  chevron.render(path, context).replace("/", os.sep)
37
39
  if path is not None
38
40
  else basename if is_mustache else src
39
41
  )
40
- return cls(src=src, dst=dst, is_mustache=is_mustache, when=when)
42
+ return cls(
43
+ src=src,
44
+ dst=dst,
45
+ is_mustache=is_mustache,
46
+ is_executable=is_executable,
47
+ when=when,
48
+ )
41
49
 
42
50
  def template(self):
43
51
  open_mstch = "{{"
@@ -71,6 +79,10 @@ class FileInfo:
71
79
  else:
72
80
  shutil.copy2(src, dst, follow_symlinks=False)
73
81
 
82
+ def get_git_checks(self):
83
+ if self.is_executable:
84
+ yield self
85
+
74
86
 
75
87
  @dataclass
76
88
  class LayerInfo:
@@ -149,6 +161,11 @@ class LayerInfo:
149
161
  if not rt.silent:
150
162
  print()
151
163
 
164
+ def get_git_checks(self):
165
+ for file in self.files:
166
+ for special in file.get_git_checks():
167
+ yield special
168
+
152
169
 
153
170
  def copy_license(rt: env.Runtime, context: ctx.SettingsType):
154
171
  license = path_get(context, "COPY.LICENSE")
@@ -159,7 +176,7 @@ def copy_license(rt: env.Runtime, context: ctx.SettingsType):
159
176
  os.path.join(ctx.package_root, ctx.template_dir, "licenses")
160
177
  )
161
178
  license_file = f"{license}.mustache"
162
- info = FileInfo(license_file, "LICENSE", is_mustache=True)
179
+ info = FileInfo(license_file, "LICENSE", is_mustache=True, is_executable=False)
163
180
  info.run(licenses_dir, rt, context)
164
181
 
165
182
 
@@ -7,11 +7,14 @@ new projects.
7
7
  """
8
8
 
9
9
  import sys
10
+ from typing import List
10
11
 
11
12
  from proj_flow import __version__, api
12
-
13
+ from proj_flow.flow import layer
13
14
 
14
15
  class GitInit(api.init.InitStep):
16
+ layers: List[layer.LayerInfo] = []
17
+
15
18
  def priority(self):
16
19
  return sys.maxsize
17
20
 
@@ -24,6 +27,17 @@ class GitInit(api.init.InitStep):
24
27
 
25
28
  git("init")
26
29
  git("add", ".")
30
+
31
+ executables: List[str] = []
32
+
33
+ for fs_layer in GitInit.layers:
34
+ for info in fs_layer.get_git_checks():
35
+ if info.is_executable:
36
+ executables.append(info.dst)
37
+
38
+ if len(executables):
39
+ git("update-index", "--chmod=+x", *executables)
40
+
27
41
  git("commit", "-m", "Initial commit")
28
42
 
29
43
 
@@ -15,6 +15,7 @@ import yaml
15
15
  from proj_flow import dependency, flow
16
16
  from proj_flow.api import arg, ctx, env, init
17
17
  from proj_flow.base.name_list import name_list
18
+ from proj_flow.minimal import base
18
19
  from proj_flow.project import api, interact
19
20
 
20
21
 
@@ -148,6 +149,8 @@ def main(
148
149
 
149
150
  current_project.append_extensions(context)
150
151
 
152
+ base.GitInit.layers = layers
153
+
151
154
  steps = sorted((step.priority(), i, step) for i, step in enumerate(init.__steps))
152
155
  for _, _, step in steps:
153
156
  step.postprocess(rt, context)
@@ -0,0 +1,3 @@
1
+ {
2
+ "filelist": { "flow": { "executable": true } }
3
+ }
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes