Update Readme
Some checks failed
gitea-openium/resgen.swift/pipeline/head There was a failure building this commit

This commit is contained in:
Thibaut Schmitt 2022-08-29 16:01:49 +02:00
parent eef92dc569
commit a99466f258
2 changed files with 130 additions and 18 deletions

148
README.md
View File

@ -1,39 +1,151 @@
# ResgenCLI # ResgenSwift
A description of this package. ResgenSwift is a package, fully written in Swift, to help you automatize ressource update and generation.
# Fonts generator > 🧐 For all commands, see samples files in `SampleFiles`
Font generator generate an extension of `UIFont` (or a custom class). It also print `UIAppFonts` to put in your project `.plist`. # Fonts
iOS required to use the **real name** of font, this name can be different from its filename. To get the **real name**, it use `fc-scan`.
Font generator generates an extension of `UIFont` (or a custom class). It also prints `UIAppFonts` to put in your project `.plist`.
iOS required to use the **real name** of the font, this name can be different from its filename. To get the **real name**, it uses `fc-scan`.
**Example** **Example**
``` ```
swift run -c release FontToolCore ./SampleFiles/Fonts swift run -c release FontTool $FORCE_FLAG "./Fonts/fonts.txt" \
--extension-output-path ./SampleFiles/Fonts/Generated \ --extension-output-path "./Fonts/Generated" \
--extension-name R2Font --extension-name "AppFont" \
--extension-suffix "GreatApp"
``` ```
**Parameters** **Parameters**
1. `-f`: force generation 1. `-f`: force generation
2. Font input folder, it will search for every `.ttf` and `.otf` files 2. Font input folder, it will search for every `.ttf` and `.otf` files specified in `fonts.txt`
3. `--extension-output-path`: path where to generate generated extension 3. `--extension-output-path`: path where to generate generated extension
4. `--extension-name` *(optional)* : name of class to add the extension 4. `--extension-name` *(optional)* : name of thee class to add the extension
5. `--extension-suffix` *(optional)* : additional text which is added to the filename (ex: `AppFont+GreatApp.swift`)
> ⚠️ If extension name is not set or is `UIFont`, it will generate static property on `UIFont`. > ⚠️ If extension name is not set or is `UIFont`, it will generate static property on `UIFont` instead of method in your custom class.
# Colors generator
# Colors
Colors generator generates an extension of `UIColor` (or a custom class) along with colorsets in specified xcassets.
``` ```
swift run -c release ColorToolCore -f ./SampleFiles/Colors/sampleColors1.txt swift run -c release ColorTool $FORCE_FLAG "./Colors/colors.txt" \
--style all \ --style all \
--xcassets-path "./SampleFiles/Colors/colors.xcassets" \ --xcassets-path "./Colors/colors.xcassets" \
--extension-output-path "./SampleFiles/Colors/Generated/" \ --extension-output-path "./Colors/Generated/" \
--extension-name "UIColor" --extension-name "AppColor" \
--extension-suffix "GreatApp"
``` ```
**Parameters**
1. `-f`: force generation
2. Input colors file
3. `--style` can be `all` or `light`
4. `--extension-output-path`: path where to generate generated extension
5. `--extension-name` *(optional)* : name of class to add the extension
6. `--extension-suffix` *(optional)* : additional text which is added to filename (ex: `AppColor+GreatApp.swift`)
> ⚠️ If extension name is not set or is `UIColor`, it will generate static property on `UIColor`.
# Strings
Strings command allows to generate `strings` files along with extensions to access those strings easily. It can do it 2 ways: Twine and Stringium. It is not recommended to use Twine except on legacy projects or while migrating to ResgenSwift, because it use https://github.com/openium/twine. Using Stringium is recommended because it does not required external dependency and allow more customisation.
## Twine (not recommended)
```
swift run -c release Strings twine $FORCE_FLAG "./Twine/strings.txt" \
--output-path "./Twine/Generated" \
--langs "fr en en-us" \
--default-lang "en" \
--extension-output-path "./Twine/Generated"
```
**Parameters**
1. `-f`: force generation
2. Input translations file (must be Twine formatted)
3. `--langs`: langs to generate (string with space between each lang)
4. `--default-lang`: default lang that will be in `Base.lproj`. It must be in `langs` as well
4. `--extension-output-path`: path where to generate generated extension
## Stringium (recommended)
```
swift run -c release Strings stringium $FORCE_FLAG "./Strings/strings.txt" \
--output-path "./Strings/Generated" \
--langs "fr en en-us" \
--default-lang "en" \
--extension-output-path "./Strings/Generated" \
--extension-name "AppString" \
--extension-suffix "GreatApp"
```
**Parameters**
1. `-f`: force generation
2. Input translations file (must be Twine formatted)
3. `--langs`: langs to generate (string with space between each lang)
4. `--default-lang`: default lang that will be in `Base.lproj`. It must be in `langs` as well
4. `--extension-output-path`: path where to generate generated extension
5. `--extension-name` *(optional)* : name of class to add the extension
6. `--extension-suffix` *(optional)* : additional text which is added to filename (ex: `AppString+GreatApp.swift`)
> ⚠️ If extension name is not set or is `String`, it will generate static property on `String`.
# Tags
Tags is also a subcommand of `Strings`. Input files are formatted the same way. Tags will generate properties which return exactly what is specified in the input file. It was designed to be used for analytics purpose and to be shared with any other platform to have the same analytics keys.
```
swift run -c release Strings tags $FORCE_FLAG "./Tags/tags.txt" \
--lang "ium" \
--extension-output-path "./Tags/Generated" \
--extension-name "AppTags" \
--extension-suffix "GreatApp"
```
**Parameters**
1. `-f`: force generation
2. Input tags file (must be Twine formatted)
3. `--lang`: langs to look at in input file
4. `--extension-output-path`: path where to generate generated extension
5. `--extension-name` *(optional)* : name of class to add the extension
6. `--extension-suffix` *(optional)* : additional text which is added to filename (ex: `AppTags+GreatApp.swift`)
> ⚠️ If extension name is not set or is `Tags`, it will generate static property on `Tags`. This class may not exists in your project, just create an empty class named `Tags` is necessary.
# Images
Images generator will generate images assets along with extensions to access those images easily.
```
swift run -c release Imagium $FORCE_FLAG "./Images/images.txt" \
--xcassets-path "./Images/app.xcassets" \
--extension-output-path "./Images/Generated" \
--extension-name "AppImage" \
--extension-suffix "GreatApp"
```
**Parameters**
1. `-f`: force generation
2. Input images definitions file
3. `--xcassets-path`: xcasset path where to generate imagesets
4. `--extension-output-path`: path where to generate generated extension
5. `--extension-name` *(optional)* : name of class to add the extension
6. `--extension-suffix` *(optional)* : additional text which is added to filename (ex: `AppImage+GreatApp.swift`)
> ⚠️ If extension name is not set or is `UIImage`, it will generate static property on `UIImage`.
# TODO # TODO
- [ ] Update Readme to add sample command for each available command [ ] Allow static variable generation on custom extension