Compare commits

..

1 Commits

Author SHA1 Message Date
janishutz 2fd69cc595 feat(init): Templates handling 2026-04-25 16:43:53 +02:00
11 changed files with 36 additions and 5 deletions
+14 -5
View File
@@ -1,19 +1,28 @@
import os import os
import shutil
import commands.util.git as git import commands.util.git as git
from commands.util.input_mgr import confirm
def init(force: bool = False): def init(force: bool = False):
dir = os.getcwd() dir = os.getcwd()
script_dir = os.path.dirname(os.path.realpath(__file__))
if force: if force:
[os.remove(dir) for dir in os.listdir(dir)] if confirm(False, "Do you really want to IRREVERSIBLY DELETE the contents of this folder and redo setup?"):
[os.remove(file) for file in os.listdir(dir)]
git.init(dir) git.init(dir)
os.mkdir(dir + "/config") os.mkdir(dir + "/config")
os.mkdir(dir + "/etc") os.mkdir(dir + "/db")
with open(dir + "/config.yaml") as file: os.mkdir(dir + "/system")
file.write("") os.mkdir(dir + "/includes")
shutil.copy(script_dir + "/templates/config/config.yml", dir + "/config.yml")
shutil.copy(script_dir + "/templates/config/system/", dir + "/includes/system/")
shutil.copy(script_dir + "/templates/config/templates/", dir + "/includes/templates/")
shutil.copy(script_dir + "/templates/README.md", dir + "/README.md")
print("Initialized a new archmgr repository") print("Initialized a new archmgr repository")
# TODO: For the files, store the permissions in a db
# TODO: Warn user to not delete .config/archmgr repo # TODO: Warn user to not delete .config/archmgr repo
# TODO: Set up that repo (where to put it? /usr/share?) # TODO: Set up that repo (where to put it? /usr/share?)
# TODO: Consider collecting function # TODO: Consider collecting function -> If no files present, will only collect the pkgs, else also the files
# TODO: Config folder instead of single config file # TODO: Config folder instead of single config file
# TODO: Also store the folder name of the config folder in that repo (needs to be easily changeable for user!) # TODO: Also store the folder name of the config folder in that repo (needs to be easily changeable for user!)
+19
View File
@@ -279,6 +279,25 @@
"additionalProperties": false "additionalProperties": false
} }
}, },
"symlinks": {
"type": "array",
"description": "Symlinks to create",
"items": {
"type": "object",
"properties": {
"destination": {
"type": "string",
"description": "The directory the link should point to",
"pattern": "^(^(~|\\.|\\.\\.)?\\/)?([\\w\\/.-]+(?!.*[^\\w\\/.-]+))"
},
"location": {
"type": "string",
"description": "What to call the link",
"pattern": "^(^(~|\\.|\\.\\.)?\\/)?([\\w\\/.-]+(?!.*[^\\w\\/.-]+))"
}
}
}
},
"cmds": { "cmds": {
"type": "object", "type": "object",
"properties": { "properties": {
+3
View File
@@ -0,0 +1,3 @@
# archmgr data folder
archmgr is a nixos-inspired package and config manager for Arch Linux.
To function, it needs both a configuration file (or multiple) and
View File
View File
View File
View File
View File
View File
View File