shipit-cli 0.6.0__py3-none-any.whl → 0.7.0__py3-none-any.whl
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.
- shipit/assets/wordpress/install.sh +33 -0
- shipit/assets/wordpress/wp-config.php +133 -0
- shipit/cli.py +233 -116
- shipit/env.py +30 -0
- shipit/generator.py +27 -16
- shipit/procfile.py +106 -0
- shipit/providers/base.py +19 -3
- shipit/providers/gatsby.py +18 -6
- shipit/providers/hugo.py +6 -2
- shipit/providers/laravel.py +17 -6
- shipit/providers/mkdocs.py +16 -7
- shipit/providers/node_static.py +18 -6
- shipit/providers/php.py +39 -10
- shipit/providers/python.py +54 -14
- shipit/providers/registry.py +2 -0
- shipit/providers/staticfile.py +18 -6
- shipit/providers/wordpress.py +88 -0
- shipit/version.py +2 -2
- {shipit_cli-0.6.0.dist-info → shipit_cli-0.7.0.dist-info}/METADATA +2 -1
- shipit_cli-0.7.0.dist-info/RECORD +24 -0
- shipit_cli-0.6.0.dist-info/RECORD +0 -19
- {shipit_cli-0.6.0.dist-info → shipit_cli-0.7.0.dist-info}/WHEEL +0 -0
- {shipit_cli-0.6.0.dist-info → shipit_cli-0.7.0.dist-info}/entry_points.txt +0 -0
shipit/providers/python.py
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
|
+
import json
|
|
3
4
|
import re
|
|
4
5
|
from pathlib import Path
|
|
5
6
|
from typing import Dict, Optional, Set
|
|
6
7
|
from enum import Enum
|
|
8
|
+
from functools import cached_property
|
|
7
9
|
|
|
8
10
|
from .base import (
|
|
9
11
|
DetectResult,
|
|
@@ -12,6 +14,8 @@ from .base import (
|
|
|
12
14
|
_exists,
|
|
13
15
|
MountSpec,
|
|
14
16
|
ServiceSpec,
|
|
17
|
+
VolumeSpec,
|
|
18
|
+
CustomCommands,
|
|
15
19
|
)
|
|
16
20
|
|
|
17
21
|
|
|
@@ -47,10 +51,12 @@ class PythonProvider:
|
|
|
47
51
|
uses_pandoc: bool = False
|
|
48
52
|
only_build: bool = False
|
|
49
53
|
install_requires_all_files: bool = False
|
|
54
|
+
custom_commands: CustomCommands
|
|
50
55
|
|
|
51
56
|
def __init__(
|
|
52
57
|
self,
|
|
53
58
|
path: Path,
|
|
59
|
+
custom_commands: CustomCommands,
|
|
54
60
|
only_build: bool = False,
|
|
55
61
|
extra_dependencies: Optional[Set[str]] = None,
|
|
56
62
|
):
|
|
@@ -62,6 +68,7 @@ class PythonProvider:
|
|
|
62
68
|
self.default_python_version = python_version
|
|
63
69
|
self.extra_dependencies = set()
|
|
64
70
|
self.only_build = only_build
|
|
71
|
+
self.custom_commands = custom_commands
|
|
65
72
|
self.extra_dependencies = extra_dependencies or set()
|
|
66
73
|
|
|
67
74
|
if self.only_build:
|
|
@@ -116,6 +123,11 @@ class PythonProvider:
|
|
|
116
123
|
if "pandoc" in found_deps:
|
|
117
124
|
self.uses_pandoc = True
|
|
118
125
|
|
|
126
|
+
if self.custom_commands.start and self.custom_commands.start.startswith("uvicorn "):
|
|
127
|
+
self.server = PythonServer.Uvicorn
|
|
128
|
+
self.custom_commands.start = self.custom_commands.start.replace("uvicorn ", "python -m uvicorn ")
|
|
129
|
+
self.extra_dependencies = {"uvicorn"}
|
|
130
|
+
|
|
119
131
|
# Set framework
|
|
120
132
|
if _exists(self.path, "manage.py") and ("django" in found_deps):
|
|
121
133
|
framework = PythonFramework.Django
|
|
@@ -198,11 +210,14 @@ class PythonProvider:
|
|
|
198
210
|
return "python"
|
|
199
211
|
|
|
200
212
|
@classmethod
|
|
201
|
-
def detect(cls, path: Path) -> Optional[DetectResult]:
|
|
213
|
+
def detect(cls, path: Path, custom_commands: CustomCommands) -> Optional[DetectResult]:
|
|
202
214
|
if _exists(path, "pyproject.toml", "requirements.txt"):
|
|
203
215
|
if _exists(path, "manage.py"):
|
|
204
216
|
return DetectResult(cls.name(), 70)
|
|
205
217
|
return DetectResult(cls.name(), 50)
|
|
218
|
+
if custom_commands.start:
|
|
219
|
+
if custom_commands.start.startswith("python ") or custom_commands.start.startswith("uv ") or custom_commands.start.startswith("uvicorn "):
|
|
220
|
+
return DetectResult(cls.name(), 80)
|
|
206
221
|
return None
|
|
207
222
|
|
|
208
223
|
def initialize(self) -> None:
|
|
@@ -261,7 +276,8 @@ class PythonProvider:
|
|
|
261
276
|
'python_extra_index_url = getenv("SHIPIT_PYTHON_EXTRA_INDEX_URL")\n'
|
|
262
277
|
'precompile_python = getenv("SHIPIT_PYTHON_PRECOMPILE") in ["true", "True", "TRUE", "1", "on", "yes", "y", "Y", "YES", "On", "ON"]\n'
|
|
263
278
|
'python_cross_packages_path = venv["build"] + f"/lib/python{python_version}/site-packages"\n'
|
|
264
|
-
'
|
|
279
|
+
'python_serve_site_packages_path = "{}/lib/python{}/site-packages".format(venv["serve"], python_version)\n'
|
|
280
|
+
'app_serve_path = app["serve"]\n'
|
|
265
281
|
)
|
|
266
282
|
|
|
267
283
|
def build_steps(self) -> list[str]:
|
|
@@ -278,6 +294,17 @@ class PythonProvider:
|
|
|
278
294
|
if _exists(self.path, "uv.lock"):
|
|
279
295
|
input_files.append("uv.lock")
|
|
280
296
|
extra_args = " --locked"
|
|
297
|
+
|
|
298
|
+
# Extra input files check, as glob pattern
|
|
299
|
+
globs = ["README*", "LICENSE*", "LICENCE*", "MAINTAINERS*", "AUTHORS*"]
|
|
300
|
+
# Glob check
|
|
301
|
+
for glob in globs:
|
|
302
|
+
for path in self.path.glob(glob):
|
|
303
|
+
# make path relative to self.path
|
|
304
|
+
path = str(path.relative_to(self.path))
|
|
305
|
+
input_files.append(path)
|
|
306
|
+
|
|
307
|
+
# Join inputs
|
|
281
308
|
inputs = ", ".join([f'"{input}"' for input in input_files])
|
|
282
309
|
steps += [
|
|
283
310
|
'env(UV_PROJECT_ENVIRONMENT=local_venv["build"] if cross_platform else venv["build"])',
|
|
@@ -290,7 +317,7 @@ class PythonProvider:
|
|
|
290
317
|
]
|
|
291
318
|
if not self.only_build:
|
|
292
319
|
steps += [
|
|
293
|
-
'run(f"uv pip compile pyproject.toml --python-version={python_version} --universal --extra-index-url {python_extra_index_url} --index-url=https://pypi.org/simple --emit-index-url
|
|
320
|
+
'run(f"uv pip compile pyproject.toml --python-version={python_version} --universal --extra-index-url {python_extra_index_url} --index-url=https://pypi.org/simple --emit-index-url -o cross-requirements.txt", outputs=["cross-requirements.txt"]) if cross_platform else None',
|
|
294
321
|
f'run(f"uvx pip install -r cross-requirements.txt {extra_deps} --target {{python_cross_packages_path}} --platform {{cross_platform}} --only-binary=:all: --python-version={{python_version}} --compile") if cross_platform else None',
|
|
295
322
|
'run("rm cross-requirements.txt") if cross_platform else None',
|
|
296
323
|
]
|
|
@@ -310,7 +337,7 @@ class PythonProvider:
|
|
|
310
337
|
]
|
|
311
338
|
if not self.only_build:
|
|
312
339
|
steps += [
|
|
313
|
-
'run(f"uv pip compile requirements.txt --python-version={python_version} --universal --extra-index-url {python_extra_index_url} --index-url=https://pypi.org/simple --emit-index-url
|
|
340
|
+
'run(f"uv pip compile requirements.txt --python-version={python_version} --universal --extra-index-url {python_extra_index_url} --index-url=https://pypi.org/simple --emit-index-url -o cross-requirements.txt", inputs=["requirements.txt"], outputs=["cross-requirements.txt"]) if cross_platform else None',
|
|
314
341
|
f'run(f"uvx pip install -r cross-requirements.txt {extra_deps} --target {{python_cross_packages_path}} --platform {{cross_platform}} --only-binary=:all: --python-version={{python_version}} --compile") if cross_platform else None',
|
|
315
342
|
'run("rm cross-requirements.txt") if cross_platform else None',
|
|
316
343
|
]
|
|
@@ -331,12 +358,13 @@ class PythonProvider:
|
|
|
331
358
|
return []
|
|
332
359
|
return [
|
|
333
360
|
'run("echo \\"Precompiling Python code...\\"") if precompile_python else None',
|
|
334
|
-
'run(f"python -m compileall -o 2 {
|
|
361
|
+
'run(f"python -m compileall -o 2 {python_serve_site_packages_path}") if precompile_python else None',
|
|
335
362
|
'run("echo \\"Precompiling package code...\\"") if precompile_python else None',
|
|
336
|
-
'run("python -m compileall -o 2 {}"
|
|
363
|
+
'run(f"python -m compileall -o 2 {app_serve_path}") if precompile_python else None',
|
|
337
364
|
]
|
|
338
365
|
|
|
339
|
-
|
|
366
|
+
@cached_property
|
|
367
|
+
def main_file(self) -> Optional[str]:
|
|
340
368
|
paths_to_try = ["main.py", "app.py", "streamlit_app.py", "Home.py", "*_app.py"]
|
|
341
369
|
for path in paths_to_try:
|
|
342
370
|
if "*" in path:
|
|
@@ -347,14 +375,20 @@ class PythonProvider:
|
|
|
347
375
|
return f"src/{path}"
|
|
348
376
|
for path in paths_to_try:
|
|
349
377
|
try:
|
|
350
|
-
found_path = next(self.path.glob(f"**/{path}
|
|
378
|
+
found_path = next(self.path.glob(f"**/{path}"))
|
|
351
379
|
except StopIteration:
|
|
352
380
|
found_path = None
|
|
353
381
|
if found_path:
|
|
354
|
-
return found_path.relative_to(self.path)
|
|
382
|
+
return str(found_path.relative_to(self.path))
|
|
355
383
|
return None
|
|
356
384
|
|
|
357
385
|
def commands(self) -> Dict[str, str]:
|
|
386
|
+
commands = self.base_commands()
|
|
387
|
+
if self.custom_commands.start:
|
|
388
|
+
commands["start"] = json.dumps(self.custom_commands.start)
|
|
389
|
+
return commands
|
|
390
|
+
|
|
391
|
+
def base_commands(self) -> Dict[str, str]:
|
|
358
392
|
if self.only_build:
|
|
359
393
|
return {}
|
|
360
394
|
if self.framework == PythonFramework.Django:
|
|
@@ -379,7 +413,7 @@ class PythonProvider:
|
|
|
379
413
|
migrate_cmd = '"python manage.py migrate"'
|
|
380
414
|
return {"start": start_cmd, "after_deploy": migrate_cmd}
|
|
381
415
|
|
|
382
|
-
main_file = self.
|
|
416
|
+
main_file = self.main_file
|
|
383
417
|
|
|
384
418
|
if not main_file:
|
|
385
419
|
start_cmd = '"python -c \'print(\\"No start command detected, please provide a start command manually\\")\'"'
|
|
@@ -422,9 +456,6 @@ class PythonProvider:
|
|
|
422
456
|
|
|
423
457
|
return {"start": start_cmd}
|
|
424
458
|
|
|
425
|
-
def assets(self) -> Optional[Dict[str, str]]:
|
|
426
|
-
return None
|
|
427
|
-
|
|
428
459
|
def mounts(self) -> list[MountSpec]:
|
|
429
460
|
if self.only_build:
|
|
430
461
|
return [
|
|
@@ -436,12 +467,21 @@ class PythonProvider:
|
|
|
436
467
|
MountSpec("local_venv", attach_to_serve=False),
|
|
437
468
|
]
|
|
438
469
|
|
|
470
|
+
def volumes(self) -> list[VolumeSpec]:
|
|
471
|
+
return []
|
|
472
|
+
|
|
439
473
|
def env(self) -> Optional[Dict[str, str]]:
|
|
440
474
|
if self.only_build:
|
|
441
475
|
return {}
|
|
442
476
|
# For Django projects, generate an empty env dict to surface the field
|
|
443
477
|
# in the Shipit file. Other Python projects omit it by default.
|
|
444
|
-
|
|
478
|
+
python_path = "f\"{app_serve_path}:{python_serve_site_packages_path}\""
|
|
479
|
+
main_file = self.main_file
|
|
480
|
+
if main_file and main_file.startswith("src/"):
|
|
481
|
+
python_path = "f\"{app_serve_path}:{app_serve_path}/src:{python_serve_site_packages_path}\""
|
|
482
|
+
else:
|
|
483
|
+
python_path = "f\"{app_serve_path}:{python_serve_site_packages_path}\""
|
|
484
|
+
env_vars = {"PYTHONPATH": python_path, "HOME": 'app["serve"]'}
|
|
445
485
|
if self.framework == PythonFramework.Streamlit:
|
|
446
486
|
env_vars["STREAMLIT_SERVER_HEADLESS"] = '"true"'
|
|
447
487
|
elif self.framework == PythonFramework.MCP:
|
shipit/providers/registry.py
CHANGED
|
@@ -6,6 +6,7 @@ from .hugo import HugoProvider
|
|
|
6
6
|
from .laravel import LaravelProvider
|
|
7
7
|
from .mkdocs import MkdocsProvider
|
|
8
8
|
from .node_static import NodeStaticProvider
|
|
9
|
+
from .wordpress import WordPressProvider
|
|
9
10
|
from .php import PhpProvider
|
|
10
11
|
from .python import PythonProvider
|
|
11
12
|
from .staticfile import StaticFileProvider
|
|
@@ -19,6 +20,7 @@ def providers() -> list[type[Provider]]:
|
|
|
19
20
|
HugoProvider,
|
|
20
21
|
MkdocsProvider,
|
|
21
22
|
PythonProvider,
|
|
23
|
+
WordPressProvider,
|
|
22
24
|
PhpProvider,
|
|
23
25
|
NodeStaticProvider,
|
|
24
26
|
StaticFileProvider,
|
shipit/providers/staticfile.py
CHANGED
|
@@ -3,25 +3,37 @@ from __future__ import annotations
|
|
|
3
3
|
from pathlib import Path
|
|
4
4
|
from typing import Dict, Optional
|
|
5
5
|
|
|
6
|
-
from .base import
|
|
6
|
+
from .base import (
|
|
7
|
+
DetectResult,
|
|
8
|
+
DependencySpec,
|
|
9
|
+
Provider,
|
|
10
|
+
_exists,
|
|
11
|
+
MountSpec,
|
|
12
|
+
ServiceSpec,
|
|
13
|
+
VolumeSpec,
|
|
14
|
+
CustomCommands,
|
|
15
|
+
)
|
|
7
16
|
|
|
8
17
|
|
|
9
18
|
class StaticFileProvider:
|
|
10
|
-
def __init__(self, path: Path):
|
|
19
|
+
def __init__(self, path: Path, custom_commands: CustomCommands):
|
|
11
20
|
self.path = path
|
|
21
|
+
self.custom_commands = custom_commands
|
|
12
22
|
|
|
13
23
|
@classmethod
|
|
14
24
|
def name(cls) -> str:
|
|
15
25
|
return "staticfile"
|
|
16
26
|
|
|
17
27
|
@classmethod
|
|
18
|
-
def detect(cls, path: Path) -> Optional[DetectResult]:
|
|
28
|
+
def detect(cls, path: Path, custom_commands: CustomCommands) -> Optional[DetectResult]:
|
|
19
29
|
if _exists(path, "Staticfile"):
|
|
20
30
|
return DetectResult(cls.name(), 50)
|
|
21
31
|
if _exists(path, "index.html") and not _exists(
|
|
22
32
|
path, "package.json", "pyproject.toml", "composer.json"
|
|
23
33
|
):
|
|
24
34
|
return DetectResult(cls.name(), 10)
|
|
35
|
+
if custom_commands.start and custom_commands.start.startswith("static-web-server "):
|
|
36
|
+
return DetectResult(cls.name(), 70)
|
|
25
37
|
return None
|
|
26
38
|
|
|
27
39
|
def initialize(self) -> None:
|
|
@@ -60,12 +72,12 @@ class StaticFileProvider:
|
|
|
60
72
|
"start": '"static-web-server --root={} --log-level=info".format(app["serve"])'
|
|
61
73
|
}
|
|
62
74
|
|
|
63
|
-
def assets(self) -> Optional[Dict[str, str]]:
|
|
64
|
-
return None
|
|
65
|
-
|
|
66
75
|
def mounts(self) -> list[MountSpec]:
|
|
67
76
|
return [MountSpec("app")]
|
|
68
77
|
|
|
78
|
+
def volumes(self) -> list[VolumeSpec]:
|
|
79
|
+
return []
|
|
80
|
+
|
|
69
81
|
def env(self) -> Optional[Dict[str, str]]:
|
|
70
82
|
return None
|
|
71
83
|
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
from shipit.providers.php import PhpProvider
|
|
3
|
+
|
|
4
|
+
from pathlib import Path
|
|
5
|
+
from typing import Dict, Optional
|
|
6
|
+
|
|
7
|
+
from .base import (
|
|
8
|
+
DetectResult,
|
|
9
|
+
DependencySpec,
|
|
10
|
+
Provider,
|
|
11
|
+
_exists,
|
|
12
|
+
MountSpec,
|
|
13
|
+
ServiceSpec,
|
|
14
|
+
VolumeSpec,
|
|
15
|
+
CustomCommands,
|
|
16
|
+
)
|
|
17
|
+
from .php import PhpProvider
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class WordPressProvider(PhpProvider):
|
|
21
|
+
def __init__(self, path: Path, custom_commands: CustomCommands):
|
|
22
|
+
self.path = path
|
|
23
|
+
self.custom_commands = custom_commands
|
|
24
|
+
|
|
25
|
+
@classmethod
|
|
26
|
+
def name(cls) -> str:
|
|
27
|
+
return "wordpress"
|
|
28
|
+
|
|
29
|
+
@classmethod
|
|
30
|
+
def detect(cls, path: Path, custom_commands: CustomCommands) -> Optional[DetectResult]:
|
|
31
|
+
if _exists(path, "wp-content") and _exists(path, "index.php") and _exists(path, "wp-load.php"):
|
|
32
|
+
return DetectResult(cls.name(), 80)
|
|
33
|
+
return None
|
|
34
|
+
|
|
35
|
+
def initialize(self) -> None:
|
|
36
|
+
pass
|
|
37
|
+
|
|
38
|
+
def serve_name(self) -> str:
|
|
39
|
+
return self.path.name
|
|
40
|
+
|
|
41
|
+
def provider_kind(self) -> str:
|
|
42
|
+
return "php"
|
|
43
|
+
|
|
44
|
+
def dependencies(self) -> list[DependencySpec]:
|
|
45
|
+
return [
|
|
46
|
+
*super().dependencies(),
|
|
47
|
+
DependencySpec("bash", use_in_build=False, use_in_serve=True),
|
|
48
|
+
]
|
|
49
|
+
|
|
50
|
+
def declarations(self) -> Optional[str]:
|
|
51
|
+
return super().declarations() + (
|
|
52
|
+
"wp_cli_version = getenv(\"SHIPIT_WPCLI_VERSION\")\n"
|
|
53
|
+
"if wp_cli_version:\n"
|
|
54
|
+
" wp_cli_download_url = f\"https://github.com/wp-cli/wp-cli/releases/download/v{wp_cli_version}/wp-cli-{wp_cli_version}.phar\"\n"
|
|
55
|
+
"else:\n"
|
|
56
|
+
" wp_cli_download_url = \"https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar\"\n"
|
|
57
|
+
)
|
|
58
|
+
|
|
59
|
+
def build_steps(self) -> list[str]:
|
|
60
|
+
steps = [
|
|
61
|
+
'copy(wp_cli_download_url, "{}/wp-cli.phar".format(assets["build"]))',
|
|
62
|
+
'copy("wordpress/install.sh", "{}/wordpress-install.sh".format(assets["build"]), base="assets")',
|
|
63
|
+
]
|
|
64
|
+
if not _exists(self.path, "wp-config.php"):
|
|
65
|
+
steps.append('copy("wordpress/wp-config.php", "{}/wp-config.php".format(app["build"]), base="assets")')
|
|
66
|
+
return steps + super().build_steps()
|
|
67
|
+
|
|
68
|
+
def prepare_steps(self) -> Optional[list[str]]:
|
|
69
|
+
return super().prepare_steps()
|
|
70
|
+
|
|
71
|
+
def commands(self) -> Dict[str, str]:
|
|
72
|
+
return {
|
|
73
|
+
"start": '"php -S localhost:8080 -t ."',
|
|
74
|
+
"wp": '"php {}/wp-cli.phar --allow-root --path={}".format(assets[\"serve\"], app[\"serve\"])',
|
|
75
|
+
"after_deploy": '"bash {}/wordpress-install.sh".format(assets["serve"])',
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
def mounts(self) -> list[MountSpec]:
|
|
79
|
+
return super().mounts()
|
|
80
|
+
|
|
81
|
+
def volumes(self) -> list[VolumeSpec]:
|
|
82
|
+
return [VolumeSpec(name="wp-content", serve_path="\"{}/wp-content/\".format(app[\"serve\"])", var_name="wp_content")]
|
|
83
|
+
|
|
84
|
+
def env(self) -> Optional[Dict[str, str]]:
|
|
85
|
+
return None
|
|
86
|
+
|
|
87
|
+
def services(self) -> list[ServiceSpec]:
|
|
88
|
+
return [ServiceSpec(name="database", provider="mysql")]
|
shipit/version.py
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: shipit-cli
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.7.0
|
|
4
4
|
Summary: Add your description here
|
|
5
5
|
Project-URL: homepage, https://wasmer.io
|
|
6
6
|
Project-URL: repository, https://github.com/wasmerio/shipit
|
|
7
7
|
Project-URL: Changelog, https://github.com/wasmerio/shipit/changelog
|
|
8
8
|
Requires-Python: >=3.10
|
|
9
9
|
Requires-Dist: pyyaml>=6.0.2
|
|
10
|
+
Requires-Dist: requests>=2.32.5
|
|
10
11
|
Requires-Dist: rich>=14.1.0
|
|
11
12
|
Requires-Dist: sh>=2.2.2
|
|
12
13
|
Requires-Dist: starlark-pyo3>=2025.1
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
shipit/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
|
+
shipit/cli.py,sha256=cLWFBrY24w--GQj_YtRo7U7jnGITEG_TWo4D9W6XH1Q,57549
|
|
3
|
+
shipit/env.py,sha256=Bede00-iFI67RZ0bx92JyX49XL7Q91HK-QoKRpwPaGQ,725
|
|
4
|
+
shipit/generator.py,sha256=GFsuqZG83gn7yxphE4GHwZjEB3sToJn24yNDE-zrTtM,6400
|
|
5
|
+
shipit/procfile.py,sha256=GlfdwzFUr0GWGKaaiXlLKNFInWaRNMy_wN14UEyU_5Q,2974
|
|
6
|
+
shipit/version.py,sha256=myhj6JcZUHlBRvAyfRYaJ_bv3PrzoXvUd5ppXAZh014,95
|
|
7
|
+
shipit/assets/php/php.ini,sha256=f4irndAjB4GuuouEImRkNV22Q-yw1KqR-43jAMDw730,2531
|
|
8
|
+
shipit/assets/wordpress/install.sh,sha256=GOIwJX3qPp7VuZXjkKVFFY6Mo9k7VFWfobS6aZYitPg,817
|
|
9
|
+
shipit/assets/wordpress/wp-config.php,sha256=IdGQoeg8E89JiqwxO2i8WnGMzmhNWgRz80X6lbU5GXc,4134
|
|
10
|
+
shipit/providers/base.py,sha256=-lraLhnXtc2SfYNIUiyry7xD2NL4q0n6voNjr6qfRis,2994
|
|
11
|
+
shipit/providers/gatsby.py,sha256=kzfS-z040GaJ0a9u2_6S6K-ykGSX2yPG17VpjUWBOBA,2393
|
|
12
|
+
shipit/providers/hugo.py,sha256=BvSYTDTVxHz6FW2mA4sqIsNayFRo5BK6Z4tWFRRimmY,1644
|
|
13
|
+
shipit/providers/laravel.py,sha256=yhOnaaXZ2US8EO5ZD5pBTerSOBi9IWBBIqeQrbW7YoM,3028
|
|
14
|
+
shipit/providers/mkdocs.py,sha256=pWTeIUEnSyB653s7Cw_OSllgiSGcDymRTEHgV5ChDLM,2070
|
|
15
|
+
shipit/providers/node_static.py,sha256=QVUTTZbvUGtj2yT9WTbGmuM30rJzejnp76crIqSGA7o,2564
|
|
16
|
+
shipit/providers/php.py,sha256=JIWl5CdVEdf9DAr9O9rR8NucucYCj_M5PbJRw_SnmYU,3541
|
|
17
|
+
shipit/providers/python.py,sha256=n0748miZ5RpQyQUCmkq3_G2Nnub8SaogZoJTNNFalZc,20801
|
|
18
|
+
shipit/providers/registry.py,sha256=lHUViVuPJf1OIZD8I_NTX4LP7E3Uo5-MmLfarmAA_cM,729
|
|
19
|
+
shipit/providers/staticfile.py,sha256=O1D0cXa_cFZH4OXRFLjBG3e-LbjMDo7ZBC2D3CvrPo4,2218
|
|
20
|
+
shipit/providers/wordpress.py,sha256=wMIcBpICqcEpbOgJCufrnM-r76AVI7_xC-NUlh9XMmE,3016
|
|
21
|
+
shipit_cli-0.7.0.dist-info/METADATA,sha256=Ang6CnPqUUcKRovpIAMHMsnccw640bQUYlpPOZ3MNoA,494
|
|
22
|
+
shipit_cli-0.7.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
23
|
+
shipit_cli-0.7.0.dist-info/entry_points.txt,sha256=7AE1NjSrHaSDfbfsRRO50KKnHFTbB0Imsccd1WynzAQ,72
|
|
24
|
+
shipit_cli-0.7.0.dist-info/RECORD,,
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
shipit/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
|
-
shipit/cli.py,sha256=D8SKqygUIhT3w2JoMAvr5St9xBPgqegSZmjzqo6CAzw,52954
|
|
3
|
-
shipit/generator.py,sha256=7kOUUDdibUM8-KRUJJugyVLAdu9UIAtWEe6aU6NVajU,6106
|
|
4
|
-
shipit/version.py,sha256=LMDl7uPF1yrYSfhpy2C7h5pHrS3yfQ6q56kv_YpUm7k,95
|
|
5
|
-
shipit/assets/php/php.ini,sha256=f4irndAjB4GuuouEImRkNV22Q-yw1KqR-43jAMDw730,2531
|
|
6
|
-
shipit/providers/base.py,sha256=WyVazgB1otGiTXOezYmvqPOm1Nt6mYdLvflSiZrXT7g,2593
|
|
7
|
-
shipit/providers/gatsby.py,sha256=2m00AuiuacOgJpDMjp5v7WIG9kC9RGKFBG6-rzwbiW0,2219
|
|
8
|
-
shipit/providers/hugo.py,sha256=YtOmPw4KaE3f8GnPjzLrO3IxlEATCvkc86HOlKDPfMc,1520
|
|
9
|
-
shipit/providers/laravel.py,sha256=1RrwReqDU5OL2NDRKIJEITP3V_M1fC7jndsLN08zW4Y,2858
|
|
10
|
-
shipit/providers/mkdocs.py,sha256=jkBMgkcIyGYBC56m9OzpgaqDy1rdQ0xLpo6nKdqOkZQ,1931
|
|
11
|
-
shipit/providers/node_static.py,sha256=unjswalAp-KX1xnexzpPOyN5Qls00Cvi1MK7lBbYkKQ,2390
|
|
12
|
-
shipit/providers/php.py,sha256=nvB4JHwCxyRbayj3waEHicjATE8C0KxtRnwJuZ7mvFY,2675
|
|
13
|
-
shipit/providers/python.py,sha256=dPKOaxbzUaK1_2LiBpOPZlKfU4dlcac-rWDCew69JKE,18968
|
|
14
|
-
shipit/providers/registry.py,sha256=UisII1dr24ZxmDD8GnpTsyNwPN9W8MnAHQ1Px1iJ-OQ,661
|
|
15
|
-
shipit/providers/staticfile.py,sha256=m1rzbCRO7YWdUH6j0HSMp8OMBktdfwoY_PhFNYe71Xk,1908
|
|
16
|
-
shipit_cli-0.6.0.dist-info/METADATA,sha256=aNn4eZR_TYgETv0PJkb-1TeG3RdUwtZ0MorIHlqfAZk,462
|
|
17
|
-
shipit_cli-0.6.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
18
|
-
shipit_cli-0.6.0.dist-info/entry_points.txt,sha256=7AE1NjSrHaSDfbfsRRO50KKnHFTbB0Imsccd1WynzAQ,72
|
|
19
|
-
shipit_cli-0.6.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|