Skip to content

Instantly share code, notes, and snippets.

@bracki
Last active August 29, 2015 14:09
Show Gist options
  • Select an option

  • Save bracki/54922a056fdd739ab0b0 to your computer and use it in GitHub Desktop.

Select an option

Save bracki/54922a056fdd739ab0b0 to your computer and use it in GitHub Desktop.

Revisions

  1. Jan Brauer revised this gist Nov 14, 2014. 1 changed file with 10 additions and 1 deletion.
    11 changes: 10 additions & 1 deletion foo.go
    Original file line number Diff line number Diff line change
    @@ -18,16 +18,25 @@ func restoreDump(conn mysqlConnection) {

    mysql.Stdout, mysql.Stderr = &output, &stderr

    log.Print("Starting bzcat")
    err = bzcat.Start()
    if err != nil {
    log.Fatal(output.String(), stderr.String(), err)
    }

    log.Print("Starting mysql")
    err = mysql.Start()
    if err != nil {
    log.Fatal(output.String(), stderr.String(), err)
    }

    err = bzcat.Run()
    log.Print("Waiting for bzcat")
    err = bzcat.Wait()
    if err != nil {
    log.Fatal(output.String(), stderr.String(), err)
    }

    log.Print("Waiting for mysql")
    err = mysql.Wait()
    if err != nil {
    log.Fatal(output.String(), stderr.String(), err)
  2. Jan Brauer created this gist Nov 14, 2014.
    35 changes: 35 additions & 0 deletions foo.go
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,35 @@
    func restoreDump(conn mysqlConnection) {
    log.Print("Restoring dump")
    // Collect the output from the command(s)
    var output bytes.Buffer
    var stderr bytes.Buffer

    bzcat := exec.Command("/bin/bzcat", "/tmp/location")
    bzcat.Stderr = &stderr

    cmdString := mysqlCommand(conn, []string{"cms"})
    mysql := exec.Command(cmdString[0], cmdString[1:]...)

    var err error
    mysql.Stdin, err = bzcat.StdoutPipe()
    if err != nil {
    log.Fatal(err)
    }

    mysql.Stdout, mysql.Stderr = &output, &stderr

    err = mysql.Start()
    if err != nil {
    log.Fatal(output.String(), stderr.String(), err)
    }

    err = bzcat.Run()
    if err != nil {
    log.Fatal(output.String(), stderr.String(), err)
    }

    err = mysql.Wait()
    if err != nil {
    log.Fatal(output.String(), stderr.String(), err)
    }
    }