mirror of
https://github.com/vitodeploy/vito.git
synced 2025-07-02 22:46:16 +00:00
refactoring (#116)
- refactoring architecture - fix incomplete ssh logs - code editor for scripts in the app - remove Jobs and SSHCommands
This commit is contained in:
38
app/SSH/Git/Git.php
Normal file
38
app/SSH/Git/Git.php
Normal file
@ -0,0 +1,38 @@
|
||||
<?php
|
||||
|
||||
namespace App\SSH\Git;
|
||||
|
||||
use App\Models\Site;
|
||||
use App\SSH\HasScripts;
|
||||
|
||||
class Git
|
||||
{
|
||||
use HasScripts;
|
||||
|
||||
public function clone(Site $site): void
|
||||
{
|
||||
$site->server->ssh()->exec(
|
||||
$this->getScript('clone.sh', [
|
||||
'host' => str($site->getFullRepositoryUrl())->after('@')->before('-'),
|
||||
'repo' => $site->getFullRepositoryUrl(),
|
||||
'path' => $site->path,
|
||||
'branch' => $site->branch,
|
||||
'key' => $site->getSshKeyName(),
|
||||
]),
|
||||
'clone-repository',
|
||||
$site->id
|
||||
);
|
||||
}
|
||||
|
||||
public function checkout(Site $site): void
|
||||
{
|
||||
$site->server->ssh()->exec(
|
||||
$this->getScript('checkout.sh', [
|
||||
'path' => $site->path,
|
||||
'branch' => $site->branch,
|
||||
]),
|
||||
'checkout-branch',
|
||||
$site->id
|
||||
);
|
||||
}
|
||||
}
|
7
app/SSH/Git/scripts/checkout.sh
Normal file
7
app/SSH/Git/scripts/checkout.sh
Normal file
@ -0,0 +1,7 @@
|
||||
if ! cd __path__; then
|
||||
echo 'VITO_SSH_ERROR' && exit 1
|
||||
fi
|
||||
|
||||
if ! git checkout -f __branch__; then
|
||||
echo 'VITO_SSH_ERROR' && exit 1
|
||||
fi
|
27
app/SSH/Git/scripts/clone.sh
Executable file
27
app/SSH/Git/scripts/clone.sh
Executable file
@ -0,0 +1,27 @@
|
||||
echo "Host __host__-__key__
|
||||
Hostname __host__
|
||||
IdentityFile=~/.ssh/__key__" >> ~/.ssh/config
|
||||
|
||||
ssh-keyscan -H __host__ >> ~/.ssh/known_hosts
|
||||
|
||||
rm -rf __path__
|
||||
|
||||
if ! git config --global core.fileMode false; then
|
||||
echo 'VITO_SSH_ERROR' && exit 1
|
||||
fi
|
||||
|
||||
if ! git clone -b __branch__ __repo__ __path__; then
|
||||
echo 'VITO_SSH_ERROR' && exit 1
|
||||
fi
|
||||
|
||||
if ! find __path__ -type d -exec chmod 755 {} \;; then
|
||||
echo 'VITO_SSH_ERROR' && exit 1
|
||||
fi
|
||||
|
||||
if ! find __path__ -type f -exec chmod 644 {} \;; then
|
||||
echo 'VITO_SSH_ERROR' && exit 1
|
||||
fi
|
||||
|
||||
if ! cd __path__ && git config core.fileMode false; then
|
||||
echo 'VITO_SSH_ERROR' && exit 1
|
||||
fi
|
Reference in New Issue
Block a user