Jelajahi Sumber

Merge branch 'dev' of https://github.com/fosrl/pangolin into dev

Milo Schwartz 5 bulan lalu
induk
melakukan
6050a0a7d7
2 mengubah file dengan 51 tambahan dan 31 penghapusan
  1. 41 17
      install/main.go
  2. 10 14
      server/setup/scripts/1.0.0-beta9.ts

+ 41 - 17
install/main.go

@@ -438,29 +438,53 @@ func isDockerInstalled() bool {
 	return true
 	return true
 }
 }
 
 
+func getCommandString(useNewStyle bool) string {
+	if useNewStyle {
+		return "'docker compose'"
+	}
+	return "'docker-compose'"
+}
+
 func pullAndStartContainers() error {
 func pullAndStartContainers() error {
 	fmt.Println("Starting containers...")
 	fmt.Println("Starting containers...")
 
 
-	// First try docker compose (new style)
-	cmd := exec.Command("docker", "compose", "-f", "docker-compose.yml", "pull")
-	cmd.Stdout = os.Stdout
-	cmd.Stderr = os.Stderr
-	err := cmd.Run()
+	// Check which docker compose command is available
+	var useNewStyle bool
+	checkCmd := exec.Command("docker", "compose", "version")
+	if err := checkCmd.Run(); err == nil {
+		useNewStyle = true
+	} else {
+		// Check if docker-compose (old style) is available
+		checkCmd = exec.Command("docker-compose", "version")
+		if err := checkCmd.Run(); err != nil {
+			return fmt.Errorf("neither 'docker compose' nor 'docker-compose' command is available: %v", err)
+		}
+	}
 
 
-	if err != nil {
-		fmt.Println("Failed to start containers using docker compose, falling back to docker-compose command")
-		os.Exit(1)
+	// Helper function to execute docker compose commands
+	executeCommand := func(args ...string) error {
+		var cmd *exec.Cmd
+		if useNewStyle {
+			cmd = exec.Command("docker", append([]string{"compose"}, args...)...)
+		} else {
+			cmd = exec.Command("docker-compose", args...)
+		}
+		cmd.Stdout = os.Stdout
+		cmd.Stderr = os.Stderr
+		return cmd.Run()
 	}
 	}
 
 
-	cmd = exec.Command("docker", "compose", "-f", "docker-compose.yml", "up", "-d")
-	cmd.Stdout = os.Stdout
-	cmd.Stderr = os.Stderr
-	err = cmd.Run()
+	// Pull containers
+	fmt.Printf("Using %s command to pull containers...\n", getCommandString(useNewStyle))
+	if err := executeCommand("-f", "docker-compose.yml", "pull"); err != nil {
+		return fmt.Errorf("failed to pull containers: %v", err)
+	}
 
 
-	if err != nil {
-		fmt.Println("Failed to start containers using docker-compose command")
-		os.Exit(1)
+	// Start containers
+	fmt.Printf("Using %s command to start containers...\n", getCommandString(useNewStyle))
+	if err := executeCommand("-f", "docker-compose.yml", "up", "-d"); err != nil {
+		return fmt.Errorf("failed to start containers: %v", err)
 	}
 	}
 
 
-	return err
-}
+	return nil
+}

+ 10 - 14
server/setup/scripts/1.0.0-beta9.ts

@@ -14,20 +14,16 @@ export default async function migration() {
 
 
     try {
     try {
         await db.transaction(async (trx) => {
         await db.transaction(async (trx) => {
-            await db.transaction(async (trx) => {
-                trx.run(sql`UPDATE ${users} SET email = LOWER(email);`);
-                trx.run(
-                    sql`UPDATE ${emailVerificationCodes} SET email = LOWER(email);`
-                );
-                trx.run(
-                    sql`UPDATE ${passwordResetTokens} SET email = LOWER(email);`
-                );
-                trx.run(sql`UPDATE ${userInvites} SET email = LOWER(email);`);
-                trx.run(
-                    sql`UPDATE ${resourceWhitelist} SET email = LOWER(email);`
-                );
-                trx.run(sql`UPDATE ${resourceOtp} SET email = LOWER(email);`);
-            });
+            trx.run(sql`UPDATE ${users} SET email = LOWER(email);`);
+            trx.run(
+                sql`UPDATE ${emailVerificationCodes} SET email = LOWER(email);`
+            );
+            trx.run(
+                sql`UPDATE ${passwordResetTokens} SET email = LOWER(email);`
+            );
+            trx.run(sql`UPDATE ${userInvites} SET email = LOWER(email);`);
+            trx.run(sql`UPDATE ${resourceWhitelist} SET email = LOWER(email);`);
+            trx.run(sql`UPDATE ${resourceOtp} SET email = LOWER(email);`);
         });
         });
     } catch (error) {
     } catch (error) {
         console.log(
         console.log(