(serverId: string)
| 98 | `; |
| 99 | |
| 100 | export const serverValidate = async (serverId: string) => { |
| 101 | const client = new Client(); |
| 102 | const server = await findServerById(serverId); |
| 103 | if (!server.sshKeyId) { |
| 104 | throw new Error("No SSH Key found"); |
| 105 | } |
| 106 | |
| 107 | return new Promise<string>((resolve, reject) => { |
| 108 | client |
| 109 | .once("ready", () => { |
| 110 | const bashCommand = ` |
| 111 | command_exists() { |
| 112 | command -v "$@" > /dev/null 2>&1 |
| 113 | } |
| 114 | |
| 115 | dockerVersionEnabled=$(${validateDocker()}) |
| 116 | rcloneVersionEnabled=$(${validateRClone()}) |
| 117 | nixpacksVersionEnabled=$(${validateNixpacks()}) |
| 118 | buildpacksVersionEnabled=$(${validateBuildpacks()}) |
| 119 | railpackVersionEnabled=$(${validateRailpack()}) |
| 120 | dockerVersion=$(echo $dockerVersionEnabled | awk '{print $1}') |
| 121 | dockerEnabled=$(echo $dockerVersionEnabled | awk '{print $2}') |
| 122 | |
| 123 | rcloneVersion=$(echo $rcloneVersionEnabled | awk '{print $1}') |
| 124 | rcloneEnabled=$(echo $rcloneVersionEnabled | awk '{print $2}') |
| 125 | |
| 126 | nixpacksVersion=$(echo $nixpacksVersionEnabled | awk '{print $1}') |
| 127 | nixpacksEnabled=$(echo $nixpacksVersionEnabled | awk '{print $2}') |
| 128 | |
| 129 | railpackVersion=$(echo $railpackVersionEnabled | awk '{print $1}') |
| 130 | railpackEnabled=$(echo $railpackVersionEnabled | awk '{print $2}') |
| 131 | |
| 132 | buildpacksVersion=$(echo $buildpacksVersionEnabled | awk '{print $1}') |
| 133 | buildpacksEnabled=$(echo $buildpacksVersionEnabled | awk '{print $2}') |
| 134 | |
| 135 | isDokployNetworkInstalled=$(${validateDokployNetwork()}) |
| 136 | isSwarmInstalled=$(${validateSwarm()}) |
| 137 | isMainDirectoryInstalled=$(${validateMainDirectory()}) |
| 138 | |
| 139 | sudoAccessResult=$(${validateSudoAccess()}) |
| 140 | privilegeMode=$(echo $sudoAccessResult | awk '{print $1}') |
| 141 | isDockerGroupMember=$(${validateDockerGroup()}) |
| 142 | |
| 143 | echo "{\\"docker\\": {\\"version\\": \\"$dockerVersion\\", \\"enabled\\": $dockerEnabled}, \\"rclone\\": {\\"version\\": \\"$rcloneVersion\\", \\"enabled\\": $rcloneEnabled}, \\"nixpacks\\": {\\"version\\": \\"$nixpacksVersion\\", \\"enabled\\": $nixpacksEnabled}, \\"buildpacks\\": {\\"version\\": \\"$buildpacksVersion\\", \\"enabled\\": $buildpacksEnabled}, \\"railpack\\": {\\"version\\": \\"$railpackVersion\\", \\"enabled\\": $railpackEnabled}, \\"isDokployNetworkInstalled\\": $isDokployNetworkInstalled, \\"isSwarmInstalled\\": $isSwarmInstalled, \\"isMainDirectoryInstalled\\": $isMainDirectoryInstalled, \\"privilegeMode\\": \\"$privilegeMode\\", \\"dockerGroupMember\\": $isDockerGroupMember}" |
| 144 | `; |
| 145 | client.exec(bashCommand, (err, stream) => { |
| 146 | if (err) { |
| 147 | reject(err); |
| 148 | return; |
| 149 | } |
| 150 | let output = ""; |
| 151 | stream |
| 152 | .on("close", () => { |
| 153 | client.end(); |
| 154 | try { |
| 155 | const result = JSON.parse(output.trim()); |
| 156 | resolve(result); |
| 157 | } catch (parseError) { |
no test coverage detected