Commit b818940b authored by Mickaël Desfrênes's avatar Mickaël Desfrênes
Browse files

add a verbose option to the feed command

parent 0d1ca202
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -56,7 +56,7 @@ func TestCLICommandsExposeExpectedFlags(t *testing.T) {
		"bundles-list":   {"directory"},
		"bundles-add":    {"directory"},
		"bundles-remove": {"directory"},
		"feed":           {"directory"},
		"feed":           {"directory", "verbose"},
		"sync":           {"directory"},
		"basex":          {"directory"},
		"templates-list": {"directory"},
+2 −0
Original line number Diff line number Diff line
@@ -56,6 +56,7 @@ commandes new, projects et cache-clear qui peuvent être lancées aussi en dehor
		"flag.info.json_out":        "Sortie JSON",
		"flag.freeze.output":        "Dossier de sortie des fichiers HTML",
		"flag.freeze.debug":         "Debug",
		"flag.feed.verbose":         "Afficher les commandes exécutées",
		"flag.projects.json_out":    "Sortie JSON",

		"table.info.name":           "Nom",
@@ -163,6 +164,7 @@ which can also be run outside a MaX directory.`,
		"flag.info.json_out":        "JSON output",
		"flag.freeze.output":        "Output directory for HTML files",
		"flag.freeze.debug":         "Debug",
		"flag.feed.verbose":         "Show executed commands",
		"flag.projects.json_out":    "JSON output",

		"table.info.name":           "Name",
+20 −2
Original line number Diff line number Diff line
@@ -419,15 +419,17 @@ func newBundlesRemoveCmd() *cobra.Command {

func newFeedCmd() *cobra.Command {
	directory := cwd()
	verbose := false
	cmd := &cobra.Command{
		Use:   "feed <feed-path>",
		Short: T("cmd.feed.short"),
		Args:  cobra.ExactArgs(1),
		RunE: func(cmd *cobra.Command, args []string) error {
			return runFeed(args[0], directory)
			return runFeed(args[0], directory, verbose)
		},
	}
	cmd.Flags().StringVar(&directory, "directory", directory, T("flag.common.directory"))
	cmd.Flags().BoolVar(&verbose, "verbose", false, T("flag.feed.verbose"))
	return cmd
}

@@ -2264,7 +2266,7 @@ func runBundlesRemove(bundleName, directory string) error {
	return runBundlesList(abs)
}

func runFeed(feedPath, directory string) error {
func runFeed(feedPath, directory string, verbose bool) error {
	abs, err := filepath.Abs(directory)
	if err != nil {
		return err
@@ -2291,6 +2293,9 @@ func runFeed(feedPath, directory string) error {
	createDB := exec.Command(javaBin, "-cp", cpPaths(abs), "-Xmx2g", "org.basex.BaseX", "if(not(db:exists('max'))) then db:create('max') else ()")
	createDB.Stdout = os.Stdout
	createDB.Stderr = os.Stderr
	if verbose {
		fmt.Println(formatCommand(createDB))
	}
	if err := createDB.Run(); err != nil {
		return err
	}
@@ -2299,6 +2304,9 @@ func runFeed(feedPath, directory string) error {
		cmd := exec.Command(javaBin, "-cp", cpPaths(abs), "-Xmx2g", "org.basex.BaseX", fmt.Sprintf("db:put('max', '%s', '%s')", feedAbs, filepath.Base(feedAbs)))
		cmd.Stdout = os.Stdout
		cmd.Stderr = os.Stderr
		if verbose {
			fmt.Println(formatCommand(cmd))
		}
		fmt.Println(feedAbs)
		return cmd.Run()
	}
@@ -2318,11 +2326,21 @@ func runFeed(feedPath, directory string) error {
		cmd := exec.Command(javaBin, "-cp", cpPaths(abs), "-Xmx2g", "org.basex.BaseX", fmt.Sprintf("db:put('max', '%s', '%s')", p, rel))
		cmd.Stdout = os.Stdout
		cmd.Stderr = os.Stderr
		if verbose {
			fmt.Println(formatCommand(cmd))
		}
		fmt.Println(p)
		return cmd.Run()
	})
}

func formatCommand(cmd *exec.Cmd) string {
	if cmd == nil || len(cmd.Args) == 0 {
		return ""
	}
	return strings.Join(cmd.Args, " ")
}

func runSync(directory string) error {
	if _, err := ensureJava(); err != nil {
		return err