Skip to content

Commit 52f0cb4

Browse files
committed
fix: missing discloud.config error
1 parent 597e8df commit 52f0cb4

2 files changed

Lines changed: 24 additions & 5 deletions

File tree

src/commands/upload.ts

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { DiscloudConfig, RESTPostApiUploadResult, Routes } from "@discloudapp/ap
22
import FormData from "form-data";
33
import { GluegunCommand, GluegunToolbox } from "gluegun";
44
import { exit } from "node:process";
5-
import { apidiscloud, config, configToObj, configUpdate, getMissingValues, getNotIngnoredFiles, makeZipFromFileList, RateLimit, readDiscloudConfig, verifyRequiredFiles } from "../util";
5+
import { apidiscloud, config, configToObj, configUpdate, findDiscloudConfig, getMissingValues, getNotIngnoredFiles, makeZipFromFileList, RateLimit, readDiscloudConfig, verifyRequiredFiles } from "../util";
66
import { FileExt, mapDiscloudConfigProps, requiredDiscloudConfigProps } from "../util/constants";
77

88
export default new class Upload implements GluegunCommand {
@@ -28,9 +28,17 @@ export default new class Upload implements GluegunCommand {
2828
if (!filesystem.exists(parameters.first))
2929
return print.error(`${parameters.first} file does not exists.`);
3030
} else {
31-
const dConfig = <DiscloudConfig>configToObj<any>(readDiscloudConfig(parameters.first)!);
31+
const discloudConfigPath = findDiscloudConfig(parameters.first);
3232

33-
const missing = getMissingValues(dConfig, requiredDiscloudConfigProps[dConfig.TYPE]);
33+
if (!discloudConfigPath)
34+
return print.error("discloud.config file is missing.");
35+
36+
const dConfig = <DiscloudConfig>configToObj<any>(readDiscloudConfig(discloudConfigPath));
37+
38+
const requiredProps = requiredDiscloudConfigProps[dConfig.TYPE] ??
39+
Object.values(requiredDiscloudConfigProps);
40+
41+
const missing = getMissingValues(dConfig, requiredProps);
3442

3543
if (missing.length) {
3644
const missingProp = mapDiscloudConfigProps[dConfig.TYPE]?.[missing[0]] ?? missing[0];

src/util/index.ts

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,18 @@ export function configUpdate(save: Record<string, string>, path = ".") {
4141
filesystem.write(`${path}/discloud.config`, objToString(data, "="));
4242
}
4343

44+
export function findDiscloudConfig(path = ".") {
45+
path = path.replace(/(\\|\/)$/, "");
46+
const discloudConfigPaths = [`${path}`, "."];
47+
48+
for (let i = 0; i < discloudConfigPaths.length; i++) {
49+
const discloudConfigPath = discloudConfigPaths[i];
50+
51+
if (filesystem.exists(`${discloudConfigPath}/discloud.config`))
52+
return discloudConfigPath;
53+
}
54+
}
55+
4456
export function getDiscloudIgnore(path: string) {
4557
return [...new Set(Object.values(blocked_files).flat())]
4658
.map(a => [`${a.replace(/^\/|\/$/, "")}/**`, `${path}/${a.replace(/^\/|\/$/, "")}/**`]).flat();
@@ -151,8 +163,7 @@ export function objToString(obj: any, sep = ": "): string {
151163

152164
export function readDiscloudConfig(path = ".") {
153165
path = path.replace(/(\\|\/)$/, "");
154-
return filesystem.read(`${path}/discloud.config`) ||
155-
filesystem.read("discloud.config");
166+
return filesystem.read(`${path}/discloud.config`) ?? "";
156167
}
157168

158169
export function resolveArgs(args: string[], options: ResolveArgsOptions[]) {

0 commit comments

Comments
 (0)