slight speedup
This commit is contained in:
32
deploy.go
32
deploy.go
@@ -362,8 +362,8 @@ func systemdScript(serviceDir, envFile, serviceName string) string {
|
|||||||
return fmt.Sprintf(`set -euo pipefail
|
return fmt.Sprintf(`set -euo pipefail
|
||||||
cat <<'EOF' > /etc/systemd/system/pb@.service
|
cat <<'EOF' > /etc/systemd/system/pb@.service
|
||||||
[Unit]
|
[Unit]
|
||||||
Description=PocketBase instance %%i
|
Description = PocketBase instance %%i
|
||||||
After=network.target
|
After = network.target
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
Type = simple
|
Type = simple
|
||||||
@@ -379,11 +379,11 @@ EnvironmentFile = %s
|
|||||||
ExecStart = %s/pocketbase serve --http="127.0.0.1:${PORT}"
|
ExecStart = %s/pocketbase serve --http="127.0.0.1:${PORT}"
|
||||||
|
|
||||||
[Install]
|
[Install]
|
||||||
WantedBy=multi-user.target
|
WantedBy = multi-user.target
|
||||||
EOF
|
EOF
|
||||||
systemctl daemon-reload
|
systemctl daemon-reload
|
||||||
systemctl enable --now pb@%s
|
systemctl --no-block enable --now pb@%s
|
||||||
systemctl restart pb@%s
|
systemctl --no-block restart pb@%s
|
||||||
`, serviceDir, serviceDir, serviceDir, envFile, serviceDir, serviceName, serviceName)
|
`, serviceDir, serviceDir, serviceDir, envFile, serviceDir, serviceName, serviceName)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -426,6 +426,7 @@ func runSSHOutput(server, script string) (string, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func syncLocalDirectories(server, remoteBase string, dirs []string) error {
|
func syncLocalDirectories(server, remoteBase string, dirs []string) error {
|
||||||
|
var toSync []string
|
||||||
for _, dir := range dirs {
|
for _, dir := range dirs {
|
||||||
localPath := filepath.Join(".", dir)
|
localPath := filepath.Join(".", dir)
|
||||||
info, err := os.Stat(localPath)
|
info, err := os.Stat(localPath)
|
||||||
@@ -441,16 +442,21 @@ func syncLocalDirectories(server, remoteBase string, dirs []string) error {
|
|||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
remotePath := fmt.Sprintf("root@%s:%s/%s", server, remoteBase, dir)
|
toSync = append(toSync, dir+"/")
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(toSync) == 0 {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
rsyncCmd := rsyncSSHCommand(server)
|
rsyncCmd := rsyncSSHCommand(server)
|
||||||
cmd := exec.Command("rsync", "-e", rsyncCmd, "-az", "--delete", localPath+"/", remotePath)
|
remotePath := fmt.Sprintf("root@%s:%s", server, remoteBase)
|
||||||
|
args := append([]string{"-e", rsyncCmd, "-avz", "--delete", "--relative"}, toSync...)
|
||||||
|
args = append(args, remotePath)
|
||||||
|
cmd := exec.Command("rsync", args...)
|
||||||
cmd.Stdout = os.Stdout
|
cmd.Stdout = os.Stdout
|
||||||
cmd.Stderr = os.Stderr
|
cmd.Stderr = os.Stderr
|
||||||
if err := cmd.Run(); err != nil {
|
return cmd.Run()
|
||||||
return err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func rsyncSSHCommand(server string) string {
|
func rsyncSSHCommand(server string) string {
|
||||||
|
|||||||
Reference in New Issue
Block a user