diff --git a/cmd/algorand-indexer/daemon.go b/cmd/algorand-indexer/daemon.go index 89544ec0c..b105177bb 100644 --- a/cmd/algorand-indexer/daemon.go +++ b/cmd/algorand-indexer/daemon.go @@ -48,6 +48,7 @@ var ( maxApplicationsLimit uint32 defaultApplicationsLimit uint32 enableAllParameters bool + indexerDataDir string ) var daemonCmd = &cobra.Command{ @@ -75,6 +76,17 @@ var daemonCmd = &cobra.Command{ algodDataDir = os.Getenv("ALGORAND_DATA") } + if indexerDataDir == "" { + indexerDataDir = os.Getenv("INDEXER_DATA") + } + + if indexerDataDir != "" { + if _, err := os.Stat(indexerDataDir); os.IsNotExist(err) { + err := os.Mkdir(indexerDataDir, 0755) + maybeFail(err, "indexer data directory error, %v", err) + } + } + ctx, cf := context.WithCancel(context.Background()) defer cf() { @@ -185,6 +197,8 @@ func init() { daemonCmd.Flags().Uint32VarP(&maxApplicationsLimit, "max-applications-limit", "", 1000, "set the maximum allowed Limit parameter for querying applications") daemonCmd.Flags().Uint32VarP(&defaultApplicationsLimit, "default-applications-limit", "", 100, "set the default Limit parameter for querying applications, if none is provided") + daemonCmd.Flags().StringVarP(&indexerDataDir, "data-dir", "i", "", "path to indexer data dir, or $INDEXER_DATA") + viper.RegisterAlias("algod", "algod-data-dir") viper.RegisterAlias("algod-net", "algod-address") viper.RegisterAlias("server", "server-address")