selects list by name while export and restore #### Does this PR need a docs update or release note? - [x] ⛔ No #### Type of change <!--- Please check the type of change your PR introduces: ---> - [x] 🧹 Tech Debt/Cleanup #### Issue(s) #4754 #### Test Plan <!-- How will this be tested prior to merging.--> - [x] 💪 Manual - [x] ⚡ Unit test - [x] 💚 E2E
116 lines
3.0 KiB
Go
116 lines
3.0 KiB
Go
package flags
|
|
|
|
import (
|
|
"github.com/spf13/cobra"
|
|
)
|
|
|
|
const (
|
|
DataLibraries = "libraries"
|
|
DataPages = "pages"
|
|
DataLists = "lists"
|
|
)
|
|
|
|
const (
|
|
LibraryFN = "library"
|
|
ListFN = "list"
|
|
PageFolderFN = "page-folder"
|
|
PageFN = "page"
|
|
SiteFN = "site" // site only accepts WebURL values
|
|
SiteIDFN = "site-id" // site-id accepts actual site ids
|
|
)
|
|
|
|
var (
|
|
LibraryFV string
|
|
ListFV []string
|
|
PageFolderFV []string
|
|
PageFV []string
|
|
SiteIDFV []string
|
|
WebURLFV []string
|
|
)
|
|
|
|
// AddSharePointDetailsAndRestoreFlags adds flags that are common to both the
|
|
// details and restore commands.
|
|
func AddSharePointDetailsAndRestoreFlags(cmd *cobra.Command) {
|
|
fs := cmd.Flags()
|
|
|
|
// libraries
|
|
|
|
fs.StringVar(
|
|
&LibraryFV,
|
|
LibraryFN, "",
|
|
"Select only this library; defaults to all libraries.")
|
|
fs.StringSliceVar(
|
|
&FolderPathFV,
|
|
FolderFN, nil,
|
|
"Select by folder; defaults to root.")
|
|
fs.StringSliceVar(
|
|
&FileNameFV,
|
|
FileFN, nil,
|
|
"Select by file name.")
|
|
fs.StringVar(
|
|
&FileCreatedAfterFV,
|
|
FileCreatedAfterFN, "",
|
|
"Select files created after this datetime.")
|
|
fs.StringVar(
|
|
&FileCreatedBeforeFV,
|
|
FileCreatedBeforeFN, "",
|
|
"Select files created before this datetime.")
|
|
fs.StringVar(
|
|
&FileModifiedAfterFV,
|
|
FileModifiedAfterFN, "",
|
|
"Select files modified after this datetime.")
|
|
fs.StringVar(
|
|
&FileModifiedBeforeFV,
|
|
FileModifiedBeforeFN, "",
|
|
"Select files modified before this datetime.")
|
|
|
|
// lists
|
|
fs.StringSliceVar(
|
|
&ListFV,
|
|
ListFN, nil,
|
|
"Select lists by name; accepts '"+Wildcard+"' to select all lists.")
|
|
cobra.CheckErr(fs.MarkHidden(ListFN))
|
|
|
|
// pages
|
|
|
|
fs.StringSliceVar(
|
|
&PageFolderFV,
|
|
PageFolderFN, nil,
|
|
"Select pages by folder name; accepts '"+Wildcard+"' to select all pages.")
|
|
cobra.CheckErr(fs.MarkHidden(PageFolderFN))
|
|
fs.StringSliceVar(
|
|
&PageFV,
|
|
PageFN, nil,
|
|
"Select pages by item name; accepts '"+Wildcard+"' to select all pages.")
|
|
cobra.CheckErr(fs.MarkHidden(PageFN))
|
|
}
|
|
|
|
// AddSiteIDFlag adds the --site-id flag, which accepts site ID values.
|
|
// This flag is hidden, since we expect users to prefer the --site url
|
|
// and do not want to encourage confusion.
|
|
func AddSiteIDFlag(cmd *cobra.Command, multiple bool) {
|
|
fs := cmd.Flags()
|
|
|
|
message := "ID of the site to operate on"
|
|
if multiple {
|
|
//nolint:lll
|
|
message += "; accepts '" + Wildcard + "' to select all sites. Args cannot be comma-delimited and must use multiple flags."
|
|
}
|
|
|
|
// note string ARRAY var. IDs naturally contain commas, so we cannot accept
|
|
// duplicate values within a flag declaration. ie: --site-id a,b,c does not
|
|
// work. Users must call --site-id a --site-id b --site-id c.
|
|
fs.StringArrayVar(&SiteIDFV, SiteIDFN, nil, message)
|
|
cobra.CheckErr(fs.MarkHidden(SiteIDFN))
|
|
}
|
|
|
|
// AddSiteFlag adds the --site flag, which accepts webURL values.
|
|
func AddSiteFlag(cmd *cobra.Command, multiple bool) {
|
|
message := "Web URL of the site to operate on"
|
|
if multiple {
|
|
message += "; accepts '" + Wildcard + "' to select all sites."
|
|
}
|
|
|
|
cmd.Flags().StringSliceVar(&WebURLFV, SiteFN, nil, message)
|
|
}
|