4
overlays/android-tools/default.nix
Normal file
4
overlays/android-tools/default.nix
Normal file
@@ -0,0 +1,4 @@
|
||||
final: prev:
|
||||
prev.android-tools.overrideAttrs (oldAttrs: {
|
||||
patches = oldAttrs.patches or [ ] ++ [ ./env-var-user-home.patch ];
|
||||
})
|
21
overlays/android-tools/env-var-user-home.patch
Normal file
21
overlays/android-tools/env-var-user-home.patch
Normal file
@@ -0,0 +1,21 @@
|
||||
--- a/vendor/adb/adb_utils.cpp
|
||||
+++ b/vendor/adb/adb_utils.cpp
|
||||
@@ -308,8 +308,16 @@
|
||||
}
|
||||
|
||||
std::string adb_get_android_dir_path() {
|
||||
- std::string user_dir = adb_get_homedir_path();
|
||||
- std::string android_dir = user_dir + OS_PATH_SEPARATOR + ".android";
|
||||
+ const char* android_user_home = getenv("ANDROID_USER_HOME");
|
||||
+ std::string android_dir;
|
||||
+
|
||||
+ if (android_user_home) {
|
||||
+ android_dir = std::string(android_user_home);
|
||||
+ } else {
|
||||
+ std::string user_dir = adb_get_homedir_path();
|
||||
+ android_dir = user_dir + OS_PATH_SEPARATOR + ".android";
|
||||
+ }
|
||||
+
|
||||
struct stat buf;
|
||||
if (stat(android_dir.c_str(), &buf) == -1) {
|
||||
if (adb_mkdir(android_dir, 0750) == -1) {
|
250
overlays/darktable/better-copy-and-import.patch
Normal file
250
overlays/darktable/better-copy-and-import.patch
Normal file
@@ -0,0 +1,250 @@
|
||||
diff --git a/data/darktableconfig.xml.in b/data/darktableconfig.xml.in
|
||||
index 4cd5497ab8..227493e754 100644
|
||||
--- a/data/darktableconfig.xml.in
|
||||
+++ b/data/darktableconfig.xml.in
|
||||
@@ -1524,6 +1524,22 @@
|
||||
<longdescription>file naming pattern used for a import session</longdescription>
|
||||
</dtconfig>
|
||||
|
||||
+ <dtconfig prefs="import" section="session">
|
||||
+ <name>session/conflict_padding</name>
|
||||
+ <type>int</type>
|
||||
+ <default>2</default>
|
||||
+ <shortdescription>burst file name conflict number padding</shortdescription>
|
||||
+ <longdescription>set the padding length for conflict resolution (e.g., 001, 002).</longdescription>
|
||||
+ </dtconfig>
|
||||
+
|
||||
+ <dtconfig prefs="import" section="session">
|
||||
+ <name>session/import_existing_sidecar</name>
|
||||
+ <type>bool</type>
|
||||
+ <default>true</default>
|
||||
+ <shortdescription>import existing sidecar files</shortdescription>
|
||||
+ <longdescription>import existing sidecar files (XMP, IPTC, etc.) when importing images</longdescription>
|
||||
+ </dtconfig>
|
||||
+
|
||||
<dtconfig>
|
||||
<name>plugins/lighttable/layout</name>
|
||||
<type>int</type>
|
||||
diff --git a/src/common/import_session.c b/src/common/import_session.c
|
||||
index 03d4212c5b..ed07369b7e 100644
|
||||
--- a/src/common/import_session.c
|
||||
+++ b/src/common/import_session.c
|
||||
@@ -266,44 +266,38 @@ const char *dt_import_session_filename(dt_import_session_t *self, const gboolean
|
||||
return NULL;
|
||||
}
|
||||
|
||||
+ self->vp->retry_count = 0;
|
||||
+
|
||||
/* verify that expanded path and filename yields a unique file */
|
||||
const char *path = dt_import_session_path(self, TRUE);
|
||||
|
||||
if(use_filename)
|
||||
result_fname = g_strdup(self->vp->filename);
|
||||
else
|
||||
- result_fname = _import_session_filename_from_pattern(self, pattern);
|
||||
-
|
||||
- char *fname = g_build_path(G_DIR_SEPARATOR_S, path, result_fname, (char *)NULL);
|
||||
- char *previous_fname = fname;
|
||||
- if(g_file_test(fname, G_FILE_TEST_EXISTS) == TRUE)
|
||||
{
|
||||
- dt_print(DT_DEBUG_ALWAYS, "[import_session] File %s exists", fname);
|
||||
do
|
||||
{
|
||||
- /* file exists, yield a new filename */
|
||||
+ /* generate filename based on the current retry_count */
|
||||
g_free(result_fname);
|
||||
result_fname = _import_session_filename_from_pattern(self, pattern);
|
||||
- fname = g_build_path(G_DIR_SEPARATOR_S, path, result_fname, (char *)NULL);
|
||||
|
||||
- dt_print(DT_DEBUG_ALWAYS, "[import_session] Testing %s", fname);
|
||||
- /* check if same filename was yielded as before */
|
||||
- if(strcmp(previous_fname, fname) == 0)
|
||||
+ char *test_path = g_build_path(G_DIR_SEPARATOR_S, path, result_fname, (char *)NULL);
|
||||
+
|
||||
+ if(g_file_test(test_path, G_FILE_TEST_EXISTS) == TRUE)
|
||||
{
|
||||
- g_free(previous_fname);
|
||||
- g_free(fname);
|
||||
- dt_control_log(_(
|
||||
- "couldn't expand to a unique filename for session, please check your import session settings"));
|
||||
- return NULL;
|
||||
+ dt_print(DT_DEBUG_ALWAYS, "[import_session] File %s exists, retrying.\n", test_path);
|
||||
+ self->vp->retry_count++;
|
||||
+ g_free(test_path);
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ g_free(test_path);
|
||||
+ break;
|
||||
}
|
||||
|
||||
- g_free(previous_fname);
|
||||
- previous_fname = fname;
|
||||
-
|
||||
- } while(g_file_test(fname, G_FILE_TEST_EXISTS) == TRUE);
|
||||
+ } while(TRUE);
|
||||
}
|
||||
|
||||
- g_free(previous_fname);
|
||||
g_free(pattern);
|
||||
|
||||
self->current_filename = result_fname;
|
||||
diff --git a/src/common/variables.c b/src/common/variables.c
|
||||
index beb74b7f1c..23bce605c4 100644
|
||||
--- a/src/common/variables.c
|
||||
+++ b/src/common/variables.c
|
||||
@@ -1000,6 +1000,14 @@ static char *_get_base_value(dt_variables_params_t *params, char **variable)
|
||||
else if(_has_prefix(variable, "DARKTABLE.NAME")
|
||||
|| _has_prefix(variable, "DARKTABLE_NAME"))
|
||||
result = g_strdup(PACKAGE_NAME);
|
||||
+
|
||||
+ else if(_has_prefix(variable, "CONFLICT_PADDING"))
|
||||
+ {
|
||||
+ int pad_length = dt_conf_get_int("session/conflict_padding");
|
||||
+ if(pad_length < 0) pad_length = 0;
|
||||
+ result = g_strdup_printf("%0*u", pad_length, params->retry_count);
|
||||
+ }
|
||||
+
|
||||
else
|
||||
{
|
||||
// go past what looks like an invalid variable. we only expect to
|
||||
diff --git a/src/common/variables.h b/src/common/variables.h
|
||||
index 86052a9a3d..a5d616a94c 100644
|
||||
--- a/src/common/variables.h
|
||||
+++ b/src/common/variables.h
|
||||
@@ -29,6 +29,9 @@ typedef struct dt_variables_params_t
|
||||
/** used for expanding variables that uses filename $(FILE_FOLDER) $(FILE_NAME) and $(FILE_EXTENSION). */
|
||||
const gchar *filename;
|
||||
|
||||
+ /** used for conflict resolution in filename expansion */
|
||||
+ int retry_count;
|
||||
+
|
||||
/** used for expanding variable $(JOBCODE) */
|
||||
const gchar *jobcode;
|
||||
|
||||
diff --git a/src/control/jobs/control_jobs.c b/src/control/jobs/control_jobs.c
|
||||
index 62908d100c..28302da7b7 100644
|
||||
--- a/src/control/jobs/control_jobs.c
|
||||
+++ b/src/control/jobs/control_jobs.c
|
||||
@@ -2664,6 +2664,59 @@ void dt_control_write_sidecar_files()
|
||||
FALSE));
|
||||
}
|
||||
|
||||
+static gboolean _copy_file(const char *source, const char *destination)
|
||||
+{
|
||||
+ gchar *data = NULL;
|
||||
+ gsize size = 0;
|
||||
+
|
||||
+ if(!g_file_get_contents(source, &data, &size, NULL))
|
||||
+ {
|
||||
+ dt_print(DT_DEBUG_CONTROL, "[import_from] failed to read file `%s`", source);
|
||||
+ return FALSE;
|
||||
+ }
|
||||
+
|
||||
+ if(!g_file_set_contents(destination, data, size, NULL))
|
||||
+ {
|
||||
+ dt_print(DT_DEBUG_CONTROL, "[import_from] failed to write file `%s`", destination);
|
||||
+ g_free(data);
|
||||
+ return FALSE;
|
||||
+ }
|
||||
+
|
||||
+ g_free(data);
|
||||
+ return TRUE;
|
||||
+}
|
||||
+
|
||||
+static void _copy_timestamps(const char *source, const char *destination)
|
||||
+{
|
||||
+ struct stat statbuf;
|
||||
+ if(stat(source, &statbuf) == 0)
|
||||
+ {
|
||||
+#ifdef _WIN32
|
||||
+ struct utimbuf times;
|
||||
+ times.actime = statbuf.st_atime;
|
||||
+ times.modtime = statbuf.st_mtime;
|
||||
+ utime(destination, ×);
|
||||
+#else
|
||||
+ struct timeval times[2];
|
||||
+ times[0].tv_sec = statbuf.st_atime;
|
||||
+ times[1].tv_sec = statbuf.st_mtime;
|
||||
+#ifdef __APPLE__
|
||||
+#ifndef _POSIX_SOURCE
|
||||
+ times[0].tv_usec = statbuf.st_atimespec.tv_nsec * 0.001;
|
||||
+ times[1].tv_usec = statbuf.st_mtimespec.tv_nsec * 0.001;
|
||||
+#else
|
||||
+ times[0].tv_usec = statbuf.st_atimensec * 0.001;
|
||||
+ times[1].tv_usec = statbuf.st_mtimensec * 0.001;
|
||||
+#endif
|
||||
+#else
|
||||
+ times[0].tv_usec = statbuf.st_atim.tv_nsec * 0.001;
|
||||
+ times[1].tv_usec = statbuf.st_mtim.tv_nsec * 0.001;
|
||||
+#endif
|
||||
+ utimes(destination, times);
|
||||
+#endif
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
static int _control_import_image_copy(const char *filename,
|
||||
char **prev_filename,
|
||||
char **prev_output,
|
||||
@@ -2707,37 +2760,37 @@ static int _control_import_image_copy(const char *filename,
|
||||
g_free(basename);
|
||||
}
|
||||
|
||||
- if(!g_file_set_contents(output, data, size, NULL))
|
||||
+ if(!_copy_file(filename, output))
|
||||
{
|
||||
dt_print(DT_DEBUG_CONTROL, "[import_from] failed to write file %s", output);
|
||||
res = FALSE;
|
||||
}
|
||||
else
|
||||
{
|
||||
-#ifdef _WIN32
|
||||
- struct utimbuf times;
|
||||
- times.actime = statbuf.st_atime;
|
||||
- times.modtime = statbuf.st_mtime;
|
||||
- utime(output, ×); // set origin file timestamps
|
||||
-#else
|
||||
- struct timeval times[2];
|
||||
- times[0].tv_sec = statbuf.st_atime;
|
||||
- times[1].tv_sec = statbuf.st_mtime;
|
||||
-#ifdef __APPLE__
|
||||
-#ifndef _POSIX_SOURCE
|
||||
- times[0].tv_usec = statbuf.st_atimespec.tv_nsec * 0.001;
|
||||
- times[1].tv_usec = statbuf.st_mtimespec.tv_nsec * 0.001;
|
||||
-#else
|
||||
- times[0].tv_usec = statbuf.st_atimensec * 0.001;
|
||||
- times[1].tv_usec = statbuf.st_mtimensec * 0.001;
|
||||
-#endif
|
||||
-#else
|
||||
- times[0].tv_usec = statbuf.st_atim.tv_nsec * 0.001;
|
||||
- times[1].tv_usec = statbuf.st_mtim.tv_nsec * 0.001;
|
||||
-#endif
|
||||
- utimes(output, times); // set origin file timestamps
|
||||
-#endif
|
||||
+ _copy_timestamps(filename, output);
|
||||
+ }
|
||||
|
||||
+ gboolean import_existing_sidecar = dt_conf_get_bool("session/import_existing_sidecar");
|
||||
+ if(import_existing_sidecar)
|
||||
+ {
|
||||
+ char *xml_filename = g_strdup_printf("%s.xmp", filename);
|
||||
+ if(g_file_test(xml_filename, G_FILE_TEST_EXISTS))
|
||||
+ {
|
||||
+ char *xml_output = g_strdup_printf("%s.xmp", output);
|
||||
+ if(_copy_file(xml_filename, xml_output))
|
||||
+ _copy_timestamps(xml_filename, xml_output);
|
||||
+ else
|
||||
+ {
|
||||
+ dt_print(DT_DEBUG_CONTROL, "[import_from] failed to copy sidecar %s", xml_filename);
|
||||
+ res = FALSE;
|
||||
+ }
|
||||
+ g_free(xml_output);
|
||||
+ }
|
||||
+ g_free(xml_filename);
|
||||
+ }
|
||||
+
|
||||
+ if(res)
|
||||
+ {
|
||||
const dt_imgid_t imgid = dt_image_import(dt_import_session_film_id(session),
|
||||
output, FALSE, FALSE);
|
||||
if(!dt_is_valid_imgid(imgid)) dt_control_log(_("error loading file `%s'"), output);
|
4
overlays/darktable/default.nix
Normal file
4
overlays/darktable/default.nix
Normal file
@@ -0,0 +1,4 @@
|
||||
final: prev:
|
||||
prev.darktable.overrideAttrs (oldAttrs: {
|
||||
patches = oldAttrs.patches or [ ] ++ [ ./better-copy-and-import.patch ];
|
||||
})
|
92
overlays/default.nix
Normal file
92
overlays/default.nix
Normal file
@@ -0,0 +1,92 @@
|
||||
final: prev:
|
||||
{
|
||||
android-tools = import ./android-tools final prev;
|
||||
darktable = import ./darktable final prev;
|
||||
hyprland = import ./hyprland final prev;
|
||||
mpv = import ./mpv final prev;
|
||||
ncspot = import ./ncspot final prev;
|
||||
spicetify-cli = import ./spicetify-cli final prev;
|
||||
telepresence = import ./telepresence final prev;
|
||||
}
|
||||
// (import ../packages { pkgs = final; })
|
||||
// {
|
||||
dockerImages = prev.dockerImages or { } // {
|
||||
adguardhome = final.docker-image-adguardhome;
|
||||
authelia = final.docker-image-authelia;
|
||||
base = final.docker-image-base;
|
||||
comentario = final.docker-image-comentario;
|
||||
flaresolverr = final.docker-image-flaresolverr;
|
||||
gitea = final.docker-image-gitea;
|
||||
gitea-act-runner = final.docker-image-gitea-act-runner;
|
||||
grafana = final.docker-image-grafana;
|
||||
grafana-image-renderer = final.docker-image-grafana-image-renderer;
|
||||
jellyfin = final.docker-image-jellyfin;
|
||||
jellyseerr = final.docker-image-jellyseerr;
|
||||
littlelink-server = final.docker-image-littlelink-server;
|
||||
mariadb = final.docker-image-mariadb;
|
||||
mysql = final.docker-image-mysql;
|
||||
nextcloud = final.docker-image-nextcloud;
|
||||
nginx = final.docker-image-nginx;
|
||||
nginx-receiver = final.docker-image-nginx-receiver;
|
||||
ntfy = final.docker-image-ntfy;
|
||||
oidcwarden = final.docker-image-oidcwarden;
|
||||
outline = final.docker-image-outline;
|
||||
postgresql = final.docker-image-postgresql;
|
||||
prometheus = final.docker-image-prometheus;
|
||||
prometheus-fail2ban-exporter = final.docker-image-prometheus-fail2ban-exporter;
|
||||
prometheus-node-exporter = final.docker-image-prometheus-node-exporter;
|
||||
prometheus-podman-exporter = final.docker-image-prometheus-podman-exporter;
|
||||
prometheus-smartctl-exporter = final.docker-image-prometheus-smartctl-exporter;
|
||||
prowlarr = final.docker-image-prowlarr;
|
||||
radarr = final.docker-image-radarr;
|
||||
recyclarr = final.docker-image-recyclarr;
|
||||
redis = final.docker-image-redis;
|
||||
shlink = final.docker-image-shlink;
|
||||
shlink-web-client = final.docker-image-shlink-web-client;
|
||||
sish = final.docker-image-sish;
|
||||
sonarr = final.docker-image-sonarr;
|
||||
traefik = final.docker-image-traefik;
|
||||
transmission-protonvpn = final.docker-image-transmission-protonvpn;
|
||||
whoami = final.docker-image-whoami;
|
||||
};
|
||||
|
||||
jellyfinPlugins = prev.jellyfinPlugins or { } // {
|
||||
bookshelf = final.jellyfin-plugin-bookshelf-bin;
|
||||
intro-skipper = final.jellyfin-plugin-intro-skipper-bin;
|
||||
opensubtitles = final.jellyfin-plugin-opensubtitles-bin;
|
||||
playbackreporting = final.jellyfin-plugin-playbackreporting-bin;
|
||||
reports = final.jellyfin-plugin-reports-bin;
|
||||
sso = final.jellyfin-plugin-sso-bin;
|
||||
subtitleextract = final.jellyfin-plugin-subtitleextract-bin;
|
||||
tmdbboxsets = final.jellyfin-plugin-tmdbboxsets-bin;
|
||||
tvdb = final.jellyfin-plugin-tvdb-bin;
|
||||
};
|
||||
|
||||
obsidianPlugins = prev.obsidianPlugins or { } // {
|
||||
better-word-count = final.obsidian-plugin-better-word-count;
|
||||
dataview = final.obsidian-plugin-dataview;
|
||||
excalidraw = final.obsidian-plugin-excalidraw;
|
||||
kanban = final.obsidian-plugin-kanban;
|
||||
languagetool = final.obsidian-plugin-languagetool;
|
||||
linter = final.obsidian-plugin-linter;
|
||||
map-view = final.obsidian-plugin-map-view;
|
||||
minimal-settings = final.obsidian-plugin-minimal-settings;
|
||||
outliner = final.obsidian-plugin-outliner;
|
||||
style-settings = final.obsidian-plugin-style-settings;
|
||||
tasks = final.obsidian-plugin-tasks;
|
||||
url-into-selection = final.obsidian-plugin-url-into-selection;
|
||||
};
|
||||
|
||||
obsidianThemes = prev.obsidianThemes or { } // {
|
||||
minimal = final.obsidian-theme-minimal;
|
||||
};
|
||||
|
||||
sshKnownHosts = prev.sshKnownHosts or { } // {
|
||||
github = final.ssh-known-hosts-github;
|
||||
gitlab = final.ssh-known-hosts-gitlab;
|
||||
};
|
||||
|
||||
yaziPlugins = prev.yaziPlugins or { } // {
|
||||
custom-shell = final.yazi-plugin-custom-shell;
|
||||
};
|
||||
}
|
4
overlays/hyprland/default.nix
Normal file
4
overlays/hyprland/default.nix
Normal file
@@ -0,0 +1,4 @@
|
||||
final: prev:
|
||||
prev.hyprland.overrideAttrs (oldAttrs: {
|
||||
patches = oldAttrs.patches or [ ] ++ [ ./fix-maxwidth-resolution-mode.patch ];
|
||||
})
|
13
overlays/hyprland/fix-maxwidth-resolution-mode.patch
Normal file
13
overlays/hyprland/fix-maxwidth-resolution-mode.patch
Normal file
@@ -0,0 +1,13 @@
|
||||
diff --git a/src/config/ConfigManager.cpp b/src/config/ConfigManager.cpp
|
||||
index 635c7977..80093c0d 100644
|
||||
--- a/src/config/ConfigManager.cpp
|
||||
+++ b/src/config/ConfigManager.cpp
|
||||
@@ -2091,6 +2091,8 @@ bool CMonitorRuleParser::parseMode(const std::string& value) {
|
||||
m_rule.resolution = Vector2D(-1, -1);
|
||||
else if (value.starts_with("highres"))
|
||||
m_rule.resolution = Vector2D(-1, -2);
|
||||
+ else if (value.starts_with("maxwidth"))
|
||||
+ m_rule.resolution = Vector2D(-1, -3);
|
||||
else if (parseModeLine(value, m_rule.drmMode)) {
|
||||
m_rule.resolution = Vector2D(m_rule.drmMode.hdisplay, m_rule.drmMode.vdisplay);
|
||||
m_rule.refreshRate = float(m_rule.drmMode.vrefresh) / 1000;
|
2
overlays/mpv/default.nix
Normal file
2
overlays/mpv/default.nix
Normal file
@@ -0,0 +1,2 @@
|
||||
final: prev:
|
||||
prev.mpv-unwrapped.wrapper { mpv = prev.mpv-unwrapped.override { cddaSupport = true; }; }
|
15
overlays/ncspot/default.nix
Normal file
15
overlays/ncspot/default.nix
Normal file
@@ -0,0 +1,15 @@
|
||||
final: prev:
|
||||
# FIXME: https://github.com/hrkfdn/ncspot/issues/1681#issuecomment-3186274719
|
||||
prev.ncspot.overrideAttrs (oldAttrs: rec {
|
||||
src = prev.fetchFromGitHub {
|
||||
owner = "hrkfdn";
|
||||
repo = "ncspot";
|
||||
rev = "aac67d631f25bbc79f509d34aa85e6daff954830";
|
||||
hash = "sha256-B6BA1ksfDEySZH6gzkU5khOzwXAmeHbMHsx3sXd9lbs=";
|
||||
};
|
||||
|
||||
cargoDeps = prev.rustPlatform.fetchCargoVendor {
|
||||
inherit src;
|
||||
hash = "sha256-HrQJiIzSvu/vR03UdnCcU6TGToBDKKDC6XscjvX3KPE=";
|
||||
};
|
||||
})
|
4
overlays/spicetify-cli/default.nix
Normal file
4
overlays/spicetify-cli/default.nix
Normal file
@@ -0,0 +1,4 @@
|
||||
final: prev:
|
||||
prev.spicetify-cli.overrideAttrs (oldAttrs: {
|
||||
patches = oldAttrs.patches or [ ] ++ [ ./user-colors.patch ];
|
||||
})
|
31
overlays/spicetify-cli/user-colors.patch
Normal file
31
overlays/spicetify-cli/user-colors.patch
Normal file
@@ -0,0 +1,31 @@
|
||||
diff --git a/src/apply/apply.go b/src/apply/apply.go
|
||||
index 47f1346..47badab 100644
|
||||
--- a/src/apply/apply.go
|
||||
+++ b/src/apply/apply.go
|
||||
@@ -2,6 +2,7 @@ package apply
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
+ "errors"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
@@ -65,10 +66,17 @@ func AdditionalOptions(appsFolderPath string, flags Flag) {
|
||||
// To not use custom css, set `themeFolder` to blank string
|
||||
// To use default color scheme, set `scheme` to `nil`
|
||||
func UserCSS(appsFolderPath, themeFolder string, scheme map[string]string) {
|
||||
+ colorsSrc := os.Getenv("COLORS_CSS_PATH")
|
||||
colorsDest := filepath.Join(appsFolderPath, "xpui", "colors.css")
|
||||
- if err := os.WriteFile(colorsDest, []byte(getColorCSS(scheme)), 0700); err != nil {
|
||||
+
|
||||
+ if len(colorsSrc) == 0 {
|
||||
+ utils.Fatal(errors.New("COLORS_CSS_PATH environment variable is not set"))
|
||||
+ }
|
||||
+
|
||||
+ if err := os.Symlink(colorsSrc, colorsDest); err != nil {
|
||||
utils.Fatal(err)
|
||||
}
|
||||
+
|
||||
cssDest := filepath.Join(appsFolderPath, "xpui", "user.css")
|
||||
if err := os.WriteFile(cssDest, []byte(getUserCSS(themeFolder)), 0700); err != nil {
|
||||
utils.Fatal(err)
|
4
overlays/telepresence/default.nix
Normal file
4
overlays/telepresence/default.nix
Normal file
@@ -0,0 +1,4 @@
|
||||
final: prev:
|
||||
prev.telepresence.overrideAttrs (oldAttrs: {
|
||||
patches = oldAttrs.patches or [ ] ++ [ ./extend-timeout.patch ];
|
||||
})
|
13
overlays/telepresence/extend-timeout.patch
Normal file
13
overlays/telepresence/extend-timeout.patch
Normal file
@@ -0,0 +1,13 @@
|
||||
diff --git a/telepresence/proxy/remote.py b/telepresence/proxy/remote.py
|
||||
index 835d42054..d910bd03f 100644
|
||||
--- a/telepresence/proxy/remote.py
|
||||
+++ b/telepresence/proxy/remote.py
|
||||
@@ -112,7 +112,7 @@ def wait_for_pod(runner: Runner, remote_info: RemoteInfo) -> None:
|
||||
runner.kubectl(
|
||||
"wait",
|
||||
"--for=condition=ready",
|
||||
- "--timeout=60s",
|
||||
+ "--timeout=240s",
|
||||
"pod/" + remote_info.pod_name,
|
||||
)
|
||||
)
|
Reference in New Issue
Block a user