static uid_t us;
static const char *run_base, *script, *socket_path;
+static struct stat sock_stab;
static bool find_run_base_var_run(void) {
struct stat stab;
((tvp)->tv_sec cmp (uvp)->tv_sec))
#endif /*timespeccmp*/
+
+
static bool stab_isnewer(const struct stat *a, const struct stat *b) {
#ifdef st_mtime
return timespeccmp(&a->st_mtim, &b->st_mtim, >);
}
static bool check_garbage(void) {
- struct stat sock_stab, script_stab;
+ struct stat script_stab;
int r;
r = lstat(script, &script_stab);
return 0;
}
+static void tidy_garbage(void) {
+ const char *this_garbage =
+ m_asprintf("%s/%lu.%lu", run_base,
+ (unsigned long)sock_stab.st_ino,
+ (unsigned long)getpid());
+
+ printf("this_garb: %s\n", this_garbage);
+}
+
static void shbang_opts(const char *const **argv_io,
const struct cmdinfo *cmdinfos) {
myopt(argv_io, cmdinfos);
find_socket_path();
- check_garbage();
+ bool havegarbage = check_garbage();
if (debugmode) {
printf("socket: %s\n",socket_path);
printf("interp: %s\n",interp);
printf("script: %s\n",script);
+ printf("garbage: %d\n",havegarbage);
+ exit(0);
}
+ if (havegarbage)
+ tidy_garbage();
+
exit(0);
}