diff --git a/configs/config.json b/configs/config.json deleted file mode 100644 index 4f0836f..0000000 --- a/configs/config.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "mount": [], - "romount": ["/etc", "/var", "/usr", "/opt", ".oh-my-zsh", ".zsh", ".zshrc"], - "symlinks": [ - {"src": "usr/lib", "dst": "/lib"}, - {"src": "usr/lib64", "dst": "/lib64"}, - {"src": "usr/bin", "dst": "/bin"}, - {"src": "usr/sbin", "dst": "/sbin"} - ] -} diff --git a/lib/utils.nim b/lib/utils.nim index 3eaa065..75b70a1 100644 --- a/lib/utils.nim +++ b/lib/utils.nim @@ -15,9 +15,19 @@ proc checkRelativePath*(p: string): string = getHomeDir().joinPath(p) proc getProfilePath*(profile: string): string = - getConfigDir() - .joinPath(APP_NAME) - .joinPath(profile) + let pid = getCurrentProcessId() + + for path in [ + getConfigDir().joinPath(APP_NAME), + &"/usr/share/{APP_NAME}", + parentDir(expandSymlink(&"/proc/{pid}/exe")).joinPath("configs") + ]: + let file = path.joinPath(profile) + + if fileExists(file): + return file + + raise newException(IOError, "Profile not found") proc getProfilePath*(args: Args): string = getProfilePath(args.getProfile())