shipit-cli 0.9.1__py3-none-any.whl → 0.10.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/php/php.ini +1 -1
- shipit/assets/wordpress/install.sh +3 -6
- shipit/assets/wordpress/wp-config.php +5 -3
- shipit/cli.py +65 -19
- shipit/providers/node_static.py +1 -1
- shipit/providers/php.py +6 -3
- shipit/providers/staticfile.py +10 -4
- shipit/providers/wordpress.py +29 -11
- shipit/version.py +2 -2
- {shipit_cli-0.9.1.dist-info → shipit_cli-0.10.0.dist-info}/METADATA +1 -1
- shipit_cli-0.10.0.dist-info/RECORD +23 -0
- shipit_cli-0.9.1.dist-info/RECORD +0 -23
- {shipit_cli-0.9.1.dist-info → shipit_cli-0.10.0.dist-info}/WHEEL +0 -0
- {shipit_cli-0.9.1.dist-info → shipit_cli-0.10.0.dist-info}/entry_points.txt +0 -0
shipit/assets/php/php.ini
CHANGED
|
@@ -1,19 +1,15 @@
|
|
|
1
|
-
# Needed to get the WP-CLI commands to avoid asking for the TTY size
|
|
2
|
-
# doesn't work because we don't have the stty command it uses.
|
|
1
|
+
# Needed to get the WP-CLI commands to avoid asking for the TTY size
|
|
3
2
|
export COLUMNS=80
|
|
4
3
|
|
|
5
4
|
echo "Creating required directories..."
|
|
6
5
|
|
|
7
6
|
mkdir -p wp-content/plugins
|
|
8
|
-
echo "" > wp-content/plugins/.keep
|
|
9
|
-
|
|
10
7
|
mkdir -p wp-content/upgrade
|
|
11
|
-
echo "" > wp-content/upgrade/.keep
|
|
12
8
|
|
|
13
9
|
echo "Installing WordPress core..."
|
|
14
10
|
|
|
15
11
|
wp core install \
|
|
16
|
-
--url="$
|
|
12
|
+
--url="$WP_SITE_URL" \
|
|
17
13
|
--title="$WP_SITE_TITLE" \
|
|
18
14
|
--admin_user="$WP_ADMIN_USERNAME" \
|
|
19
15
|
--admin_password="$WP_ADMIN_PASSWORD" \
|
|
@@ -22,6 +18,7 @@ wp core install \
|
|
|
22
18
|
|
|
23
19
|
|
|
24
20
|
if [ -z "$WP_UPDATE_DB" ]; then
|
|
21
|
+
echo "Updating database..."
|
|
25
22
|
wp core update-db
|
|
26
23
|
fi
|
|
27
24
|
|
|
@@ -28,9 +28,11 @@ function get_env_var(string $name, string $default = ''): string
|
|
|
28
28
|
return $_ENV[$name];
|
|
29
29
|
}
|
|
30
30
|
|
|
31
|
-
$
|
|
32
|
-
|
|
33
|
-
|
|
31
|
+
if ($default === '') {
|
|
32
|
+
$stderr = fopen("php://stderr", "wb");
|
|
33
|
+
fwrite($stderr, "Configuration error: environment variable " . $name . " not provided. Using default value: " . $default . PHP_EOL);
|
|
34
|
+
fclose($stderr);
|
|
35
|
+
}
|
|
34
36
|
|
|
35
37
|
return $default;
|
|
36
38
|
}
|
shipit/cli.py
CHANGED
|
@@ -90,6 +90,8 @@ class Package:
|
|
|
90
90
|
version: Optional[str] = None
|
|
91
91
|
|
|
92
92
|
def __str__(self) -> str: # pragma: no cover - simple representation
|
|
93
|
+
if self.version is None:
|
|
94
|
+
return self.name
|
|
93
95
|
return f"{self.name}@{self.version}"
|
|
94
96
|
|
|
95
97
|
|
|
@@ -298,14 +300,15 @@ class DockerBuilder:
|
|
|
298
300
|
# "--mount",
|
|
299
301
|
# f"type=volume,source={vol.name},target={str(vol.serve_path)}",
|
|
300
302
|
# ]
|
|
301
|
-
return sh.Command(
|
|
302
|
-
"docker"
|
|
303
|
-
)(
|
|
303
|
+
return sh.Command("docker")(
|
|
304
304
|
*docker_args,
|
|
305
305
|
image_name,
|
|
306
306
|
command,
|
|
307
307
|
*(extra_args or []),
|
|
308
|
-
_env={
|
|
308
|
+
_env={
|
|
309
|
+
"DOCKER_BUILDKIT": "1",
|
|
310
|
+
**os.environ,
|
|
311
|
+
}, # Pass the current environment variables to the Docker client
|
|
309
312
|
_out=write_stdout,
|
|
310
313
|
_err=write_stderr,
|
|
311
314
|
)
|
|
@@ -439,10 +442,18 @@ RUN curl https://mise.run | sh
|
|
|
439
442
|
raise Exception(f"Asset {step.source} does not exist")
|
|
440
443
|
else:
|
|
441
444
|
if step.ignore:
|
|
442
|
-
exclude =
|
|
445
|
+
exclude = (
|
|
446
|
+
" \\\n"
|
|
447
|
+
+ " \\\n".join(
|
|
448
|
+
[f" --exclude={ignore}" for ignore in step.ignore]
|
|
449
|
+
)
|
|
450
|
+
+ " \\\n "
|
|
451
|
+
)
|
|
443
452
|
else:
|
|
444
453
|
exclude = ""
|
|
445
|
-
self.docker_file_contents +=
|
|
454
|
+
self.docker_file_contents += (
|
|
455
|
+
f"COPY{exclude} {step.source} {step.target}\n"
|
|
456
|
+
)
|
|
446
457
|
elif isinstance(step, EnvStep):
|
|
447
458
|
env_vars = " ".join(
|
|
448
459
|
[f"{key}={value}" for key, value in step.variables.items()]
|
|
@@ -517,7 +528,9 @@ class LocalBuilder:
|
|
|
517
528
|
def execute_step(self, step: Step, env: Dict[str, str]) -> None:
|
|
518
529
|
build_path = self.workdir
|
|
519
530
|
if isinstance(step, UseStep):
|
|
520
|
-
console.print(
|
|
531
|
+
console.print(
|
|
532
|
+
f"[bold]Using dependencies:[/bold] {', '.join([str(dep) for dep in step.dependencies])}"
|
|
533
|
+
)
|
|
521
534
|
elif isinstance(step, WorkdirStep):
|
|
522
535
|
console.print(f"[bold]Working in {step.path}[/bold]")
|
|
523
536
|
self.workdir = step.path
|
|
@@ -560,17 +573,14 @@ class LocalBuilder:
|
|
|
560
573
|
ignore_extra = (
|
|
561
574
|
f" [bright_black]# ignoring {', '.join(step.ignore)}[/bright_black]"
|
|
562
575
|
)
|
|
563
|
-
if step.target == ".":
|
|
564
|
-
console.print(f"[bold]Copy from {step.source}[/bold]{ignore_extra}")
|
|
565
|
-
else:
|
|
566
|
-
console.print(
|
|
567
|
-
f"[bold]Copy to {step.target} from {step.source}[/bold]{ignore_extra}"
|
|
568
|
-
)
|
|
569
576
|
ignore_matches = step.ignore if step.ignore else []
|
|
570
577
|
ignore_matches.append(".shipit")
|
|
571
578
|
ignore_matches.append("Shipit")
|
|
572
579
|
|
|
573
580
|
if step.is_download():
|
|
581
|
+
console.print(
|
|
582
|
+
f"[bold]Download from {step.source} to {step.target}[/bold]"
|
|
583
|
+
)
|
|
574
584
|
download_file(step.source, (build_path / step.target))
|
|
575
585
|
else:
|
|
576
586
|
if step.base == "source":
|
|
@@ -580,6 +590,10 @@ class LocalBuilder:
|
|
|
580
590
|
else:
|
|
581
591
|
raise Exception(f"Unknown base: {step.base}")
|
|
582
592
|
|
|
593
|
+
console.print(
|
|
594
|
+
f"[bold]Copy to {step.target} from {step.source}[/bold]{ignore_extra}"
|
|
595
|
+
)
|
|
596
|
+
|
|
583
597
|
if (base / step.source).is_dir():
|
|
584
598
|
copytree(
|
|
585
599
|
(base / step.source),
|
|
@@ -607,7 +621,7 @@ class LocalBuilder:
|
|
|
607
621
|
def build(
|
|
608
622
|
self, env: Dict[str, str], mounts: List[Mount], steps: List[Step]
|
|
609
623
|
) -> None:
|
|
610
|
-
console.print(f"\n[bold]Building
|
|
624
|
+
console.print(f"\n[bold]Building... 🚀[/bold]")
|
|
611
625
|
base_path = self.local_path
|
|
612
626
|
shutil.rmtree(base_path, ignore_errors=True)
|
|
613
627
|
base_path.mkdir(parents=True, exist_ok=True)
|
|
@@ -907,7 +921,7 @@ class WasmerBuilder:
|
|
|
907
921
|
deps.append(Package("bash"))
|
|
908
922
|
|
|
909
923
|
if deps:
|
|
910
|
-
console.print(f"[bold]Mapping dependencies:[/bold]")
|
|
924
|
+
console.print(f"[bold]Mapping dependencies to Wasmer packages:[/bold]")
|
|
911
925
|
for dep in deps:
|
|
912
926
|
if dep.name in self.mapper:
|
|
913
927
|
version = dep.version or "latest"
|
|
@@ -970,9 +984,7 @@ class WasmerBuilder:
|
|
|
970
984
|
env.update(serve.env)
|
|
971
985
|
if env:
|
|
972
986
|
arr = array([f"{k}={v}" for k, v in env.items()]).multiline(True)
|
|
973
|
-
wasi_args.add(
|
|
974
|
-
"env", arr
|
|
975
|
-
)
|
|
987
|
+
wasi_args.add("env", arr)
|
|
976
988
|
title = string("annotations.wasi", literal=False)
|
|
977
989
|
command.add(title, wasi_args)
|
|
978
990
|
|
|
@@ -1049,7 +1061,9 @@ class WasmerBuilder:
|
|
|
1049
1061
|
)
|
|
1050
1062
|
yaml_config["jobs"] = jobs
|
|
1051
1063
|
|
|
1052
|
-
app_yaml = yaml.dump(
|
|
1064
|
+
app_yaml = yaml.dump(
|
|
1065
|
+
yaml_config,
|
|
1066
|
+
)
|
|
1053
1067
|
|
|
1054
1068
|
console.print(f"\n[bold]Created app.yaml manifest ✅[/bold]")
|
|
1055
1069
|
app_yaml_panel = Panel(
|
|
@@ -1344,6 +1358,10 @@ def auto(
|
|
|
1344
1358
|
None,
|
|
1345
1359
|
help="Use a specific Docker client (such as depot, podman, etc.)",
|
|
1346
1360
|
),
|
|
1361
|
+
skip_docker_if_safe_build: Optional[bool] = typer.Option(
|
|
1362
|
+
True,
|
|
1363
|
+
help="Skip Docker if the build can be done safely locally (only copy commands).",
|
|
1364
|
+
),
|
|
1347
1365
|
skip_prepare: bool = typer.Option(
|
|
1348
1366
|
False,
|
|
1349
1367
|
help="Run the prepare command after building (defaults to True).",
|
|
@@ -1419,6 +1437,7 @@ def auto(
|
|
|
1419
1437
|
wasmer=(wasmer or wasmer_deploy),
|
|
1420
1438
|
docker=docker,
|
|
1421
1439
|
docker_client=docker_client,
|
|
1440
|
+
skip_docker_if_safe_build=skip_docker_if_safe_build,
|
|
1422
1441
|
wasmer_registry=wasmer_registry,
|
|
1423
1442
|
wasmer_token=wasmer_token,
|
|
1424
1443
|
wasmer_bin=wasmer_bin,
|
|
@@ -1628,6 +1647,10 @@ def build(
|
|
|
1628
1647
|
None,
|
|
1629
1648
|
help="Use a specific Docker client (such as depot, podman, etc.)",
|
|
1630
1649
|
),
|
|
1650
|
+
skip_docker_if_safe_build: Optional[bool] = typer.Option(
|
|
1651
|
+
True,
|
|
1652
|
+
help="Skip Docker if the build can be done safely locally (only copy commands).",
|
|
1653
|
+
),
|
|
1631
1654
|
env_name: Optional[str] = typer.Option(
|
|
1632
1655
|
None,
|
|
1633
1656
|
help="The environment to use (defaults to `.env`, it will use .env.<env_name> if provided)",
|
|
@@ -1684,6 +1707,28 @@ def build(
|
|
|
1684
1707
|
"CLICOLOR": os.environ.get("CLICOLOR", "0"),
|
|
1685
1708
|
}
|
|
1686
1709
|
serve = next(iter(ctx.serves.values()))
|
|
1710
|
+
|
|
1711
|
+
if skip_docker_if_safe_build and serve.build and len(serve.build) > 0:
|
|
1712
|
+
# If it doesn't have a run step, then it's safe to skip Docker and run all the
|
|
1713
|
+
# steps locally.
|
|
1714
|
+
has_run = any(isinstance(step, RunStep) for step in serve.build)
|
|
1715
|
+
if not has_run:
|
|
1716
|
+
console.print(
|
|
1717
|
+
f"[bold]ℹ️ Building locally instead of Docker to speed up the build, as all commands are safe to run locally[/bold]"
|
|
1718
|
+
)
|
|
1719
|
+
return build(
|
|
1720
|
+
path,
|
|
1721
|
+
wasmer=wasmer,
|
|
1722
|
+
skip_prepare=skip_prepare,
|
|
1723
|
+
wasmer_bin=wasmer_bin,
|
|
1724
|
+
wasmer_registry=wasmer_registry,
|
|
1725
|
+
wasmer_token=wasmer_token,
|
|
1726
|
+
docker=False,
|
|
1727
|
+
docker_client=None,
|
|
1728
|
+
skip_docker_if_safe_build=False,
|
|
1729
|
+
env_name=env_name,
|
|
1730
|
+
)
|
|
1731
|
+
|
|
1687
1732
|
serve.env = serve.env or {}
|
|
1688
1733
|
if (path / ".env").exists():
|
|
1689
1734
|
env_vars = dotenv_values(path / ".env")
|
|
@@ -1720,5 +1765,6 @@ def main() -> None:
|
|
|
1720
1765
|
if __name__ == "__main__":
|
|
1721
1766
|
main()
|
|
1722
1767
|
|
|
1768
|
+
|
|
1723
1769
|
def flatten(xss):
|
|
1724
1770
|
return [x for xs in xss for x in xs]
|
shipit/providers/node_static.py
CHANGED
|
@@ -327,7 +327,7 @@ class NodeStaticProvider(StaticFileProvider):
|
|
|
327
327
|
return None
|
|
328
328
|
|
|
329
329
|
def mounts(self) -> list[MountSpec]:
|
|
330
|
-
return [MountSpec("temp"), *super().mounts()]
|
|
330
|
+
return [MountSpec("temp", attach_to_serve=False), *super().mounts()]
|
|
331
331
|
|
|
332
332
|
def volumes(self) -> list[VolumeSpec]:
|
|
333
333
|
return []
|
shipit/providers/php.py
CHANGED
|
@@ -29,7 +29,7 @@ class PhpProvider:
|
|
|
29
29
|
def detect(cls, path: Path, custom_commands: CustomCommands) -> Optional[DetectResult]:
|
|
30
30
|
if _exists(path, "composer.json") and _exists(path, "public/index.php"):
|
|
31
31
|
return DetectResult(cls.name(), 60)
|
|
32
|
-
if _exists(path, "index.php")
|
|
32
|
+
if _exists(path, "index.php") or _exists(path, "public/index.php") or _exists(path, "app/index.php"):
|
|
33
33
|
return DetectResult(cls.name(), 10)
|
|
34
34
|
if custom_commands.start and custom_commands.start.startswith("php "):
|
|
35
35
|
return DetectResult(cls.name(), 70)
|
|
@@ -92,9 +92,12 @@ class PhpProvider:
|
|
|
92
92
|
|
|
93
93
|
def base_commands(self) -> Dict[str, str]:
|
|
94
94
|
if _exists(self.path, "public/index.php"):
|
|
95
|
-
return {"start": '
|
|
95
|
+
return {"start": '"php -S localhost:{} -t {}/public".format(PORT, app["serve"])'}
|
|
96
|
+
elif _exists(self.path, "app/index.php"):
|
|
97
|
+
return {"start": '"php -S localhost:{} -t {}/app".format(PORT, app["serve"])'}
|
|
96
98
|
elif _exists(self.path, "index.php"):
|
|
97
|
-
return {"start": '
|
|
99
|
+
return {"start": '"php -S localhost:{} -t {}".format(PORT, app["serve"])'}
|
|
100
|
+
return {}
|
|
98
101
|
|
|
99
102
|
def mounts(self) -> list[MountSpec]:
|
|
100
103
|
return [
|
shipit/providers/staticfile.py
CHANGED
|
@@ -37,14 +37,18 @@ class StaticFileProvider:
|
|
|
37
37
|
return "staticfile"
|
|
38
38
|
|
|
39
39
|
@classmethod
|
|
40
|
-
def detect(
|
|
40
|
+
def detect(
|
|
41
|
+
cls, path: Path, custom_commands: CustomCommands
|
|
42
|
+
) -> Optional[DetectResult]:
|
|
41
43
|
if _exists(path, "Staticfile"):
|
|
42
44
|
return DetectResult(cls.name(), 50)
|
|
43
45
|
if _exists(path, "index.html") and not _exists(
|
|
44
46
|
path, "package.json", "pyproject.toml", "composer.json"
|
|
45
47
|
):
|
|
46
48
|
return DetectResult(cls.name(), 10)
|
|
47
|
-
if custom_commands.start and custom_commands.start.startswith(
|
|
49
|
+
if custom_commands.start and custom_commands.start.startswith(
|
|
50
|
+
"static-web-server "
|
|
51
|
+
):
|
|
48
52
|
return DetectResult(cls.name(), 70)
|
|
49
53
|
return None
|
|
50
54
|
|
|
@@ -70,7 +74,9 @@ class StaticFileProvider:
|
|
|
70
74
|
def build_steps(self) -> list[str]:
|
|
71
75
|
return [
|
|
72
76
|
'workdir(app["build"])',
|
|
73
|
-
'copy({}, ".", ignore=[".git"])'.format(
|
|
77
|
+
'copy({}, ".", ignore=[".git"])'.format(
|
|
78
|
+
json.dumps(self.config and self.config.get("root") or ".")
|
|
79
|
+
),
|
|
74
80
|
]
|
|
75
81
|
|
|
76
82
|
def prepare_steps(self) -> Optional[list[str]]:
|
|
@@ -92,6 +98,6 @@ class StaticFileProvider:
|
|
|
92
98
|
|
|
93
99
|
def env(self) -> Optional[Dict[str, str]]:
|
|
94
100
|
return None
|
|
95
|
-
|
|
101
|
+
|
|
96
102
|
def services(self) -> list[ServiceSpec]:
|
|
97
103
|
return []
|
shipit/providers/wordpress.py
CHANGED
|
@@ -27,8 +27,14 @@ class WordPressProvider(PhpProvider):
|
|
|
27
27
|
return "wordpress"
|
|
28
28
|
|
|
29
29
|
@classmethod
|
|
30
|
-
def detect(
|
|
31
|
-
|
|
30
|
+
def detect(
|
|
31
|
+
cls, path: Path, custom_commands: CustomCommands
|
|
32
|
+
) -> Optional[DetectResult]:
|
|
33
|
+
if (
|
|
34
|
+
_exists(path, "wp-content")
|
|
35
|
+
and _exists(path, "index.php")
|
|
36
|
+
and _exists(path, "wp-load.php")
|
|
37
|
+
):
|
|
32
38
|
return DetectResult(cls.name(), 80)
|
|
33
39
|
return None
|
|
34
40
|
|
|
@@ -49,11 +55,11 @@ class WordPressProvider(PhpProvider):
|
|
|
49
55
|
|
|
50
56
|
def declarations(self) -> Optional[str]:
|
|
51
57
|
return super().declarations() + (
|
|
52
|
-
|
|
58
|
+
'wp_cli_version = getenv("SHIPIT_WPCLI_VERSION")\n'
|
|
53
59
|
"if wp_cli_version:\n"
|
|
54
|
-
|
|
60
|
+
' 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
61
|
"else:\n"
|
|
56
|
-
|
|
62
|
+
' wp_cli_download_url = "https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar"\n'
|
|
57
63
|
)
|
|
58
64
|
|
|
59
65
|
def build_steps(self) -> list[str]:
|
|
@@ -62,27 +68,39 @@ class WordPressProvider(PhpProvider):
|
|
|
62
68
|
'copy("wordpress/install.sh", "{}/wordpress-install.sh".format(assets["build"]), base="assets")',
|
|
63
69
|
]
|
|
64
70
|
if not _exists(self.path, "wp-config.php"):
|
|
65
|
-
steps.append(
|
|
71
|
+
steps.append(
|
|
72
|
+
'copy("wordpress/wp-config.php", "{}/wp-config.php".format(app["build"]), base="assets")'
|
|
73
|
+
)
|
|
66
74
|
return steps + super().build_steps()
|
|
67
75
|
|
|
68
76
|
def prepare_steps(self) -> Optional[list[str]]:
|
|
69
77
|
return super().prepare_steps()
|
|
70
78
|
|
|
71
79
|
def commands(self) -> Dict[str, str]:
|
|
80
|
+
commands = super().commands()
|
|
72
81
|
return {
|
|
73
|
-
"
|
|
74
|
-
"wp": '"php {}/wp-cli.phar --allow-root --path={}".format(assets[\"serve\"], app[\"serve\"])',
|
|
82
|
+
"wp": '"php {}/wp-cli.phar --allow-root --path={}".format(assets["serve"], app["serve"])',
|
|
75
83
|
"after_deploy": '"bash {}/wordpress-install.sh".format(assets["serve"])',
|
|
84
|
+
**commands,
|
|
76
85
|
}
|
|
77
86
|
|
|
78
87
|
def mounts(self) -> list[MountSpec]:
|
|
79
88
|
return super().mounts()
|
|
80
89
|
|
|
81
90
|
def volumes(self) -> list[VolumeSpec]:
|
|
82
|
-
return [
|
|
91
|
+
return [
|
|
92
|
+
VolumeSpec(
|
|
93
|
+
name="wp-content",
|
|
94
|
+
serve_path='"{}/wp-content/".format(app["serve"])',
|
|
95
|
+
var_name="wp_content",
|
|
96
|
+
)
|
|
97
|
+
]
|
|
83
98
|
|
|
84
99
|
def env(self) -> Optional[Dict[str, str]]:
|
|
85
|
-
return
|
|
86
|
-
|
|
100
|
+
return {
|
|
101
|
+
"PAGER": '"cat"',
|
|
102
|
+
**(super().env() or {}),
|
|
103
|
+
}
|
|
104
|
+
|
|
87
105
|
def services(self) -> list[ServiceSpec]:
|
|
88
106
|
return [ServiceSpec(name="database", provider="mysql")]
|
shipit/version.py
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: shipit-cli
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.10.0
|
|
4
4
|
Summary: Shipit CLI is the best way to build, serve and deploy your projects anywhere.
|
|
5
5
|
Project-URL: homepage, https://wasmer.io
|
|
6
6
|
Project-URL: repository, https://github.com/wasmerio/shipit
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
shipit/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
|
+
shipit/cli.py,sha256=k60mGxpBoyxYgdsFfosc3HuSm5m7Nus5I9RnAaP8X0E,60820
|
|
3
|
+
shipit/generator.py,sha256=W4MynSFwId4PRWWrF0R3NsANye_Zv8TwXCUXai94pW0,6553
|
|
4
|
+
shipit/procfile.py,sha256=GlfdwzFUr0GWGKaaiXlLKNFInWaRNMy_wN14UEyU_5Q,2974
|
|
5
|
+
shipit/version.py,sha256=kFcU-e4oDxwCFdfvjlVkQgvkQaOBmtFeg-EaPmeM9c0,97
|
|
6
|
+
shipit/assets/php/php.ini,sha256=9STxIKCYaku3rbfWP9VwUGaG40zuS6bCd_psNpx9BQk,2530
|
|
7
|
+
shipit/assets/wordpress/install.sh,sha256=YyYzX43I_vlzAKcm7nSOSflxbEaLQgovnrle9oCkEyU,557
|
|
8
|
+
shipit/assets/wordpress/wp-config.php,sha256=bqtT3ep1SfG9H2zdyYHACN4eehLBzYs4ZP0L-uiCWyQ,4179
|
|
9
|
+
shipit/providers/base.py,sha256=-lraLhnXtc2SfYNIUiyry7xD2NL4q0n6voNjr6qfRis,2994
|
|
10
|
+
shipit/providers/gatsby.py,sha256=kzfS-z040GaJ0a9u2_6S6K-ykGSX2yPG17VpjUWBOBA,2393
|
|
11
|
+
shipit/providers/hugo.py,sha256=l3IZ14LGYc3wQ7Uk0iQMDNN9Syd1G4HPzm0ePCGFyzE,1808
|
|
12
|
+
shipit/providers/laravel.py,sha256=2rCuOi2kC5OYQfAG7C0NMhG7KEgzfudwUT_CvVFz4hM,3031
|
|
13
|
+
shipit/providers/mkdocs.py,sha256=mDJpT3rzYAr5Vw-yt5fCpV0QgBZyksn9MrkPd4nzROU,2200
|
|
14
|
+
shipit/providers/node_static.py,sha256=tkttFRB2KEfhZYK_qzcdf7ulEepZEJq9EqkAUo2KYWs,12358
|
|
15
|
+
shipit/providers/php.py,sha256=B5CEvYX51IXWrleNNa6eq-d8xGI8xP4k0Pl8Rpi5cLo,3786
|
|
16
|
+
shipit/providers/python.py,sha256=kQpaaQi8ajHM_SFk2xI5lRIeOc6PXSKumb-Tv_5n6m0,20954
|
|
17
|
+
shipit/providers/registry.py,sha256=JCuQaYTvJcWK1nS-om9TIQgGW6pT5BuNLIRzChLLFWE,731
|
|
18
|
+
shipit/providers/staticfile.py,sha256=hs8ER8rATTho8pBJ6b6ibaOqAfbNZKmlRqbalSdeYY0,2740
|
|
19
|
+
shipit/providers/wordpress.py,sha256=6wd0wPBlE9DvNQgmcEKnH0TArGDkHfRvT9XhqnfOWTU,3258
|
|
20
|
+
shipit_cli-0.10.0.dist-info/METADATA,sha256=94O3cZZT3pBMq20dhD7ph1-vljYQP--Wc6F8g83TId0,616
|
|
21
|
+
shipit_cli-0.10.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
22
|
+
shipit_cli-0.10.0.dist-info/entry_points.txt,sha256=7AE1NjSrHaSDfbfsRRO50KKnHFTbB0Imsccd1WynzAQ,72
|
|
23
|
+
shipit_cli-0.10.0.dist-info/RECORD,,
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
shipit/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
|
-
shipit/cli.py,sha256=NMZ6xSLq8MlV9yT3FLi9XZ5IBw2IMppoPna_vl9LK1Y,59170
|
|
3
|
-
shipit/generator.py,sha256=W4MynSFwId4PRWWrF0R3NsANye_Zv8TwXCUXai94pW0,6553
|
|
4
|
-
shipit/procfile.py,sha256=GlfdwzFUr0GWGKaaiXlLKNFInWaRNMy_wN14UEyU_5Q,2974
|
|
5
|
-
shipit/version.py,sha256=lVDUJez84exvM3cupsLPLkgwODb6keB_FDCxjb0ObkA,95
|
|
6
|
-
shipit/assets/php/php.ini,sha256=f4irndAjB4GuuouEImRkNV22Q-yw1KqR-43jAMDw730,2531
|
|
7
|
-
shipit/assets/wordpress/install.sh,sha256=fJkVeGAw_dj-ywmQipAWRjaz57sayD6F0OFvZKMIKug,669
|
|
8
|
-
shipit/assets/wordpress/wp-config.php,sha256=IdGQoeg8E89JiqwxO2i8WnGMzmhNWgRz80X6lbU5GXc,4134
|
|
9
|
-
shipit/providers/base.py,sha256=-lraLhnXtc2SfYNIUiyry7xD2NL4q0n6voNjr6qfRis,2994
|
|
10
|
-
shipit/providers/gatsby.py,sha256=kzfS-z040GaJ0a9u2_6S6K-ykGSX2yPG17VpjUWBOBA,2393
|
|
11
|
-
shipit/providers/hugo.py,sha256=l3IZ14LGYc3wQ7Uk0iQMDNN9Syd1G4HPzm0ePCGFyzE,1808
|
|
12
|
-
shipit/providers/laravel.py,sha256=2rCuOi2kC5OYQfAG7C0NMhG7KEgzfudwUT_CvVFz4hM,3031
|
|
13
|
-
shipit/providers/mkdocs.py,sha256=mDJpT3rzYAr5Vw-yt5fCpV0QgBZyksn9MrkPd4nzROU,2200
|
|
14
|
-
shipit/providers/node_static.py,sha256=1eWjhcrKZF8DE9EwlEXwFYrbD2AkeabZjIo1_BocWJk,12335
|
|
15
|
-
shipit/providers/php.py,sha256=BSOqS3UhABoe_ued8aXtyn0KdqWbOCq6VV2ehtoBlmk,3547
|
|
16
|
-
shipit/providers/python.py,sha256=kQpaaQi8ajHM_SFk2xI5lRIeOc6PXSKumb-Tv_5n6m0,20954
|
|
17
|
-
shipit/providers/registry.py,sha256=JCuQaYTvJcWK1nS-om9TIQgGW6pT5BuNLIRzChLLFWE,731
|
|
18
|
-
shipit/providers/staticfile.py,sha256=F4thEuihDW-h5DO-lotrjSdHYWzoXofQPpsAgWonvpY,2677
|
|
19
|
-
shipit/providers/wordpress.py,sha256=Wjc1fgFburewlf4hQ2ZmxTQko_SHQW-8jrDukzKx0Gs,3019
|
|
20
|
-
shipit_cli-0.9.1.dist-info/METADATA,sha256=i8nzdCcT8qJFNNazduiVP1afqfxv1g2rlyCpDfCTcXQ,615
|
|
21
|
-
shipit_cli-0.9.1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
22
|
-
shipit_cli-0.9.1.dist-info/entry_points.txt,sha256=7AE1NjSrHaSDfbfsRRO50KKnHFTbB0Imsccd1WynzAQ,72
|
|
23
|
-
shipit_cli-0.9.1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|