From 2471a09a37497e925acb01f730864a9d0c17a3d4 Mon Sep 17 00:00:00 2001 From: bloomingchad Date: Mon, 1 Apr 2024 16:37:59 +0530 Subject: [PATCH] * use getAppDir to make pnimrp run independently on from shell --- src/pnimrp.nim => pnimrp.nim | 4 ++-- pnimrp.nimble | 2 +- src/menu.nim | 21 +++++++++++---------- src/ui.nim | 2 +- 4 files changed, 15 insertions(+), 14 deletions(-) rename src/pnimrp.nim => pnimrp.nim (69%) diff --git a/src/pnimrp.nim b/pnimrp.nim similarity index 69% rename from src/pnimrp.nim rename to pnimrp.nim index 18663f9..a06b36d 100644 --- a/src/pnimrp.nim +++ b/pnimrp.nim @@ -1,6 +1,6 @@ -import ui, menu, os, terminal +import os, terminal, src/[ui, menu] -if not dirExists "assets": +if not dirExists getAppDir() & "/assets": error "data or config files dont exist" when defined dragonfly: diff --git a/pnimrp.nimble b/pnimrp.nimble index 6b2fa51..895bdb0 100644 --- a/pnimrp.nimble +++ b/pnimrp.nimble @@ -4,8 +4,8 @@ version = "0.1" author = "antonl05/bloomingchad" description = "simple terminal radio station player in nim making life easier" license = "GPL-3.0-or-later" -srcDir = "src" bin = @["pnimrp"] +installDirs = @["assets"] # Dependencies diff --git a/src/menu.nim b/src/menu.nim index 3a77839..2aacb40 100644 --- a/src/menu.nim +++ b/src/menu.nim @@ -157,19 +157,20 @@ proc initJsonLists(sub, file: string; sect = ""): seq[seq[string]] = else: discard @[n, l] -proc initIndx*(dir = "assets"): seq[seq[string]] = +proc initIndx*(dir = getAppDir() & "/assets"): seq[seq[string]] = + let appDir = getAppDir() & "/" var files, names: seq[string] for file in walkFiles(dir & "/*"): - if dir == "assets": - if file != "assets/qoute.json": + if dir == appDir & "assets": + if file != appDir & "/assets/qoute.json": files.add file else: files.add file var procFile = file procFile.removePrefix(dir & "/") procFile[0] = procFile[0].toUpperAscii procFile.removeSuffix ".json" - if dir == "assets": + if dir == appDir & "assets": if procFile != "Qoute": names.add procFile else: names.add procFile @@ -182,14 +183,14 @@ proc initIndx*(dir = "assets"): seq[seq[string]] = files.add procDir names.add procDir - if dir == "assets": names.add "Notes" + if dir == appDir & "assets": names.add "Notes" @[names, files] -proc drawMainMenu*(dir = "assets") +proc drawMainMenu*(dir = getAppDir() & "/assets") proc menu(sub, file: string; sect = "") = if sub.endsWith "/": - drawMainMenu("assets/" & sub) + drawMainMenu(getAppDir() & "/assets/" & sub) return #echo sub let @@ -230,7 +231,7 @@ proc menu(sub, file: string; sect = "") = except IndexDefect: inv() if returnBack: break -proc drawMainMenu*(dir = "assets") = +proc drawMainMenu*(dir = getAppDir() & "/assets") = let indx = initIndx dir names = indx[0] @@ -245,7 +246,7 @@ proc drawMainMenu*(dir = "assets") = #add drawMenu sayTermDraw8() say "Station Categories:", fgGreen - sayIter names, ret = if dir != "assets": true else: false + sayIter names, ret = if dir != getAppDir() & "/assets": true else: false try: while true: #var getch = getch() @@ -272,7 +273,7 @@ proc drawMainMenu*(dir = "assets") = of 'K', 'k': menu names[19], files[19]; break of 'N', 'n': notes(); break of 'R', 'r': - if dir != "assets": + if dir != getAppDir() & "/assets": returnBack = true break else: inv() diff --git a/src/ui.nim b/src/ui.nim index 29ce007..5be9c87 100644 --- a/src/ui.nim +++ b/src/ui.nim @@ -26,7 +26,7 @@ proc exitEcho* = echo "" randomize() - let seq = parseJArray "assets/qoute.json" + let seq = parseJArray getAppDir() & "/assets/qoute.json" var qoutes, authors: seq[string] = @[] for i in 0 .. seq.high: