develmaycare / pyprojectutils

A collection of documentation and command line utilities for managing a software project.
BSD 3-Clause "New" or "Revised" License
1 stars 1 forks source link

Support for Assets and Asset Library #58

Open develmaycare opened 7 years ago

develmaycare commented 7 years ago

Project assets are any file or collection of files that are used in project delivery. An asset is not generally something that a client provides or updates. Examples include images, video, CSS, fonts, and icons.

Commands

This enhancement would create support for managing assets before and during production. Possible commands include:

lsassets [project] for listing assets for a particular project. Or if project is omitted, list available assets in ASSETS_HOME. Project assets are stored in the top-level assets/ directory or under source/assets/.

cpasset <asset> <project> to copy an asset from the library to a given project. This should also register that the asset has been used in the project for future reference.

statasset <asset> [project] to get asset information. If a project is given, the asset info will be drawn from the project, if possible.

rmasset <asset> <project> to remove an asset from a given project and de-register it's use with the asset library.

Files and Directories

The asset library is stored in ASSETS_HOME. We should try to support archiving of files if possible so that only the meta data is stored locally. The structure of the library should be flat:

    ASSETS_HOME/
        asset-name/
            file-1.psd
            file-1.jpg
            info.ini
            LICENSE.txt

An INI file is used to store meta data:

[asset]
description = Brief description of the asset.
tags = Comma separated tags.
title = Asset Title
type = image

[manifest]
file-1.psd = Layered PSD file.
file-2.jpg = Output example.

The register.csv records the projects that have utilized the asset:

project-name,YYYY-MM-DD,Optional comment.