summaryrefslogtreecommitdiff
path: root/csstore.cpp
diff options
context:
space:
mode:
authorJay Freeman (saurik) <saurik@saurik.com>2013-02-06 09:20:52 +0000
committerJay Freeman (saurik) <saurik@saurik.com>2013-02-06 10:12:16 +0000
commit4ab9b1c71900d5516424dcaf8b0dcb329d5a839f (patch)
treebe25d2c0d538de194abb5df3aa62363485fd20d0 /csstore.cpp
parentc9bb7c8ef256cba01e9e48a2c5f130ab31838905 (diff)
Delete all of the .csstore files.
Diffstat (limited to 'csstore.cpp')
-rw-r--r--csstore.cpp70
1 files changed, 70 insertions, 0 deletions
diff --git a/csstore.cpp b/csstore.cpp
new file mode 100644
index 0000000..a2f8b17
--- /dev/null
+++ b/csstore.cpp
@@ -0,0 +1,70 @@
+/* UIKit Tools - command-line utilities for UIKit
+ * Copyright (C) 2008-2012 Jay Freeman (saurik)
+*/
+
+/* Modified BSD License {{{ */
+/*
+ * Redistribution and use in source and binary
+ * forms, with or without modification, are permitted
+ * provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the
+ * above copyright notice, this list of conditions
+ * and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the
+ * above copyright notice, this list of conditions
+ * and the following disclaimer in the documentation
+ * and/or other materials provided with the
+ * distribution.
+ * 3. The name of the author may not be used to endorse
+ * or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+ * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
+ * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+/* }}} */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <unistd.h>
+
+#include <sys/types.h>
+#include <dirent.h>
+
+bool DeleteCSStores(const char *home) {
+ char path[strlen(home) + strlen("/Library/Caches") + 1];
+ sprintf(path, "%s/Library/Caches", home);
+
+ DIR *dir(opendir(path));
+ if (dir == NULL)
+ return false;
+
+ for (struct dirent *entry; (entry = readdir(dir)) != NULL; ) {
+ if (strncmp(entry->d_name, "com.apple.LaunchServices", sizeof("com.apple.LaunchServices") - 1) != 0)
+ continue;
+ if (!strstr(entry->d_name, ".csstore"))
+ continue;
+
+ char csstore[strlen(path) + 1 + strlen(entry->d_name) + 1];
+ snprintf(csstore, sizeof(csstore), "%s/%s", path, entry->d_name);
+ unlink(csstore);
+ }
+
+ closedir(dir);
+ return true;
+}