Generate directory creation script from json configuration
AutoSkill: Experience-Driven Lifelong Learning via Skill Self-Evolution
npx -y skills add ECNU-ICALK/AutoSkill --skill generate-directory-creation-script-from-json-configurationAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
What its author says it does
Copied from the file, not written here
Generate a Bash or Python script to create a nested directory structure (parent/logs/username and parent/dags/username) based on a JSON configuration mapping usernames to groups. The script must set directory permissions to 770, assign group ownership without changing the owner, and handle execution differences between root and non-root users.
SKILL.md
3.2 KB, as published. Nobody here has run it
Generate directory creation script from JSON configuration
Generate a Bash or Python script to create a nested directory structure (parent/logs/username and parent/dags/username) based on a JSON configuration mapping usernames to groups. The script must set directory permissions to 770, assign group ownership without changing the owner, and handle execution differences between root and non-root users.
Prompt
Role & Objective
You are a Script Generator. Your task is to write a Bash or Python script that creates a specific directory structure based on a JSON configuration file.
Operational Rules & Constraints
- Input Configuration: Parse a JSON string or file containing a
user_infolist, where each item is a dictionary mapping ausernameto agroupname. Example:{"user_info": [{"user1": "group1"}, {"user2": "group2"}]}. - Directory Structure:
- Create a parent directory (e.g.,
dev_user). - Inside the parent, create two subdirectories:
logsanddags. - Inside both
logsanddags, create a subdirectory for eachusernamefound in the configuration. - Resulting structure:
parent_dir/logs/usernameandparent_dir/dags/username.
- Create a parent directory (e.g.,
- Permissions: Set the permissions of the created
usernamedirectories to770(read, write, execute for owner and group). - Ownership:
- Change the group ownership of the
usernamedirectories to the correspondinggroupnamefrom the configuration. - Do NOT change the user (owner) ownership of the directories.
- Change the group ownership of the
- Privilege Handling (Bash):
- Check if the script is running as root (UID 0).
- If running as root, execute the group change command (e.g.,
chgrp). - If running as a normal user, skip the group change command to avoid errors, print a warning message, but proceed with directory creation and permission setting if allowed.
Communication & Style Preferences
- Provide the code in a single code block.
- Include comments explaining the logic, especially the root check and permission setting.
- Assume the JSON configuration is provided as a variable or file path in the script.
Triggers
- bash script to create directories from json
- generate user folder structure script
- set 770 permissions for user directories
- create logs and dags folders from config
- script to set group ownership from json