unity_package_manager
v1.0.48
Published
A CLI tool to translate language in the terminal.
Downloads
10
Readme
tool_unity_package_manager
The cli tool for import, update, remove unity module and large files
terminology:
- project
- packages
- resource
project
This is the container for the entire project, you should use CMD in the project root for manage the project.
packages
The other repository within the project subfolder, these could record in the config file. and base on the cli tool, it will automate some git action to it.
resource
The resources that does not require git action, this will use basic os copy to do the job. you can targeting source folder path and target relative project path.
Data Structure
// The project config
{
"modules":[
{
"name": "string", // (folder name)
"url": "string", // (git url)
"branch": "string", // (target branch)
"use_branch": "boolean", // (sync branch)
"use_name": "boolean", // (create folder when name)
"target_path": "string", // (the relative path in project for clone place)
}
],
"resource":[
{
"from": "string", // (from where)
"to": "string", // (to relative path in project)
}
]
}
// cloud data
{
"data":[
{
"id": "string", // (UUID)
"user_created": "string", // (user UUID)
"date_created": "string", // (date)
"user_updated": "string", // (user UUID)
"date_updated": "string", // (date)
"name": "string", // (display name)
"url": "string", // (git repository url)
"description": "string", // (some detail description)
"type": "number" // (0: plugin, 1: script)
}
]
}
Commands
Below are some detail command description
init
This will generate config file in the project root folder.
[WARNING] You must do this before using any other commands.
list
List all packages and resources. This will read the config record and print it out
listr
Read the cloud registerd packages, and print it out.
listp
Read the cloud registerd project, and print it out.
setup
iterate every packages for writing current select branch into config files
fufu setup
update <p/r/a>
iterate every packages or resources in the projects and update them according to the config setup.
# Example
# this will update all packages
fufu update p
# this will update all resources
fufu update r
# this will update all packages and resources
fufu update a
# this will update all packages and resources as well
fufu update
project <project_id> <?branch>
Create project in the current folder. It will sync everything after clone the project.
# Example
fufu listp
# Let's say we want that ID : 0 project to be clone
# this will clone the project with default branch
fufu project 0
# You could specified the branch in the end as well
fufu project 0 v3.0
project_url <?branch>
Create project in the current folder. But with project url
Some project might not in the cloud database, then you could use pure project git repository url to clone it.
# Example
# this will clone the project with default branch
fufu project_url http://example.org/myproject.git
# You could specified the branch in the end as well
fufu project_url http://example.org/myproject.git v3.0
add <package_id> <?branches> <?name> <?dir>
Clone the package to the folder Assets/FuniqueAssets
# Example
fufu listr
# Let's say we want that ID : 0 package to be clone
# this will clone the project with default branch
fufu add 0 0
# If we want branch specified
fufu add 0 0 v3.0
# If we want folder name specified
fufu add 0 0 v3.0 MyCustomPackage
# If we only want folder name specified (will select default branch)
fufu add 0 0 . MyCustomPackage
# The following command will not works, because type 1 cannot have name
fufu add 1 0 . MyCustomPackage
add_url <?branches> <?name> <?dir>
Clone the package to the type folder, But with project url
type folder:
- 0: Assets/FuniquePlugin
- 1: Scripts
# Example
# this will clone the project with default branch
fufu add_url 0 http://example.org/myproject.git
# If we want branch specified
fufu add_url 0 http://example.org/myproject.git v3.0
# If we want folder name specified
fufu add_url 0 http://example.org/myproject.git v3.0 MyCustomPackage
# If we only want folder name specified (will select default branch)
fufu add_url 0 http://example.org/myproject.git . MyCustomPackage
# The following command will not works, because type 1 cannot have name
fufu add_url 1 http://example.org/myproject.git . MyCustomPackage
switch <package_id>
Switch the package branch in config
rm_p <package_id> <?auto_delete>
# Example
fufu list
# Let's say we don't want package 7 anymore
# this will remove from config, but won't delete files by default
fufu rm_p 7
# You can specified should it automatically delete the folder or not
# No delete
fufu rm_p 7 0
# delete
fufu rm_p 7 1
rm_r <resource_id> <?auto_delete>
# Example
fufu list
# Let's say we don't want resource 7 anymore
# this will remove from config, but won't delete files by default
fufu rm_r 7
# You can specified should it automatically delete the folder or not
# No delete
fufu rm_r 7 0
# delete
fufu rm_r 7 1
filepath
Copy files from source folder to relative project folder
# Example
# Copy from NAS folder to my project folder 'Assets\MyProjectFolder'
fufu filepath N:\CopyPlace Assets\MyProjectFolder