Add commands for dealing with cache and site data, cookies, etc

This commit is contained in:
Josh at WLTechBlog
2025-09-30 08:00:30 -05:00
parent 74d99db629
commit 72d4a5653d
10 changed files with 1553 additions and 1 deletions

138
main.go
View File

@@ -35,6 +35,12 @@ func main() {
screenshotCmd := flag.NewFlagSet("screenshot", flag.ExitOnError)
statusCmd := flag.NewFlagSet("status", flag.ExitOnError)
listTabsCmd := flag.NewFlagSet("list-tabs", flag.ExitOnError)
disableCacheCmd := flag.NewFlagSet("disable-cache", flag.ExitOnError)
enableCacheCmd := flag.NewFlagSet("enable-cache", flag.ExitOnError)
clearCacheCmd := flag.NewFlagSet("clear-cache", flag.ExitOnError)
clearAllSiteDataCmd := flag.NewFlagSet("clear-all-site-data", flag.ExitOnError)
clearCookiesCmd := flag.NewFlagSet("clear-cookies", flag.ExitOnError)
clearStorageCmd := flag.NewFlagSet("clear-storage", flag.ExitOnError)
// Define flags for each subcommand
// open-tab flags
@@ -140,6 +146,42 @@ func main() {
listTabsHost := listTabsCmd.String("host", "localhost", "Daemon host")
listTabsPort := listTabsCmd.Int("port", 8989, "Daemon port")
// disable-cache flags
disableCacheTabID := disableCacheCmd.String("tab", "", "Tab ID to disable cache for (optional, uses current tab if not specified)")
disableCacheTimeout := disableCacheCmd.Int("timeout", 5, "Timeout in seconds for disabling cache")
disableCacheHost := disableCacheCmd.String("host", "localhost", "Daemon host")
disableCachePort := disableCacheCmd.Int("port", 8989, "Daemon port")
// enable-cache flags
enableCacheTabID := enableCacheCmd.String("tab", "", "Tab ID to enable cache for (optional, uses current tab if not specified)")
enableCacheTimeout := enableCacheCmd.Int("timeout", 5, "Timeout in seconds for enabling cache")
enableCacheHost := enableCacheCmd.String("host", "localhost", "Daemon host")
enableCachePort := enableCacheCmd.Int("port", 8989, "Daemon port")
// clear-cache flags
clearCacheTabID := clearCacheCmd.String("tab", "", "Tab ID to clear cache for (optional, uses current tab if not specified)")
clearCacheTimeout := clearCacheCmd.Int("timeout", 5, "Timeout in seconds for clearing cache")
clearCacheHost := clearCacheCmd.String("host", "localhost", "Daemon host")
clearCachePort := clearCacheCmd.Int("port", 8989, "Daemon port")
// clear-all-site-data flags
clearAllSiteDataTabID := clearAllSiteDataCmd.String("tab", "", "Tab ID to clear all site data for (optional, uses current tab if not specified)")
clearAllSiteDataTimeout := clearAllSiteDataCmd.Int("timeout", 5, "Timeout in seconds for clearing all site data")
clearAllSiteDataHost := clearAllSiteDataCmd.String("host", "localhost", "Daemon host")
clearAllSiteDataPort := clearAllSiteDataCmd.Int("port", 8989, "Daemon port")
// clear-cookies flags
clearCookiesTabID := clearCookiesCmd.String("tab", "", "Tab ID to clear cookies for (optional, uses current tab if not specified)")
clearCookiesTimeout := clearCookiesCmd.Int("timeout", 5, "Timeout in seconds for clearing cookies")
clearCookiesHost := clearCookiesCmd.String("host", "localhost", "Daemon host")
clearCookiesPort := clearCookiesCmd.Int("port", 8989, "Daemon port")
// clear-storage flags
clearStorageTabID := clearStorageCmd.String("tab", "", "Tab ID to clear storage for (optional, uses current tab if not specified)")
clearStorageTimeout := clearStorageCmd.Int("timeout", 5, "Timeout in seconds for clearing storage")
clearStorageHost := clearStorageCmd.String("host", "localhost", "Daemon host")
clearStoragePort := clearStorageCmd.Int("port", 8989, "Daemon port")
// Check if a subcommand is provided
if len(os.Args) < 2 {
printUsage()
@@ -490,6 +532,96 @@ func main() {
}
}
case "disable-cache":
disableCacheCmd.Parse(os.Args[2:])
// Create a client
c := client.NewClient(*disableCacheHost, *disableCachePort)
// Disable cache
err := c.DisableCache(*disableCacheTabID, *disableCacheTimeout)
if err != nil {
fmt.Fprintf(os.Stderr, "Error: %v\n", err)
os.Exit(1)
}
fmt.Println("Cache disabled successfully")
case "enable-cache":
enableCacheCmd.Parse(os.Args[2:])
// Create a client
c := client.NewClient(*enableCacheHost, *enableCachePort)
// Enable cache
err := c.EnableCache(*enableCacheTabID, *enableCacheTimeout)
if err != nil {
fmt.Fprintf(os.Stderr, "Error: %v\n", err)
os.Exit(1)
}
fmt.Println("Cache enabled successfully")
case "clear-cache":
clearCacheCmd.Parse(os.Args[2:])
// Create a client
c := client.NewClient(*clearCacheHost, *clearCachePort)
// Clear cache
err := c.ClearCache(*clearCacheTabID, *clearCacheTimeout)
if err != nil {
fmt.Fprintf(os.Stderr, "Error: %v\n", err)
os.Exit(1)
}
fmt.Println("Cache cleared successfully")
case "clear-all-site-data":
clearAllSiteDataCmd.Parse(os.Args[2:])
// Create a client
c := client.NewClient(*clearAllSiteDataHost, *clearAllSiteDataPort)
// Clear all site data
err := c.ClearAllSiteData(*clearAllSiteDataTabID, *clearAllSiteDataTimeout)
if err != nil {
fmt.Fprintf(os.Stderr, "Error: %v\n", err)
os.Exit(1)
}
fmt.Println("All site data cleared successfully")
case "clear-cookies":
clearCookiesCmd.Parse(os.Args[2:])
// Create a client
c := client.NewClient(*clearCookiesHost, *clearCookiesPort)
// Clear cookies
err := c.ClearCookies(*clearCookiesTabID, *clearCookiesTimeout)
if err != nil {
fmt.Fprintf(os.Stderr, "Error: %v\n", err)
os.Exit(1)
}
fmt.Println("Cookies cleared successfully")
case "clear-storage":
clearStorageCmd.Parse(os.Args[2:])
// Create a client
c := client.NewClient(*clearStorageHost, *clearStoragePort)
// Clear storage
err := c.ClearStorage(*clearStorageTabID, *clearStorageTimeout)
if err != nil {
fmt.Fprintf(os.Stderr, "Error: %v\n", err)
os.Exit(1)
}
fmt.Println("Storage cleared successfully")
default:
printUsage()
os.Exit(1)
@@ -515,6 +647,12 @@ func printUsage() {
fmt.Println(" switch-main Switch back to main page context")
fmt.Println(" screenshot Take a screenshot of the current page")
fmt.Println(" list-tabs List all open tabs")
fmt.Println(" disable-cache Disable browser cache for a tab")
fmt.Println(" enable-cache Enable browser cache for a tab")
fmt.Println(" clear-cache Clear browser cache for a tab")
fmt.Println(" clear-all-site-data Clear all site data (cookies, storage, cache, etc.)")
fmt.Println(" clear-cookies Clear cookies for a tab")
fmt.Println(" clear-storage Clear web storage (localStorage, sessionStorage, etc.)")
fmt.Println(" status Check if the daemon is running")
fmt.Println("\nRun 'cremote <command> -h' for more information on a command")
fmt.Println("\nBefore using this tool, make sure the daemon is running:")