flutterfy-cli 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 103e5c8e52e84f3d93f1030e1f8785b87544175c88fdd89b4924b74759826497
4
+ data.tar.gz: 6927ce9502fd38c51716e6e7593784bad1333cef8d2c177b386c67471ae78e89
5
+ SHA512:
6
+ metadata.gz: f769e21ad6e6b9a24f40f1504bb30e413bdd3606fa27a2b42ce776a097e31faf495e5f75fce82783d6b21029a20b88444681c42f3bd498e0ac853273e6b539d1
7
+ data.tar.gz: acea14437c7fa1a3b8fdf7c0f68088797e43dd24c9530800f0b3a9b4c16d08031155acf2c2295301da3f37d831c608dc3b96bee2735e31b0546bfdea05905489
data/.rspec ADDED
@@ -0,0 +1,3 @@
1
+ --format documentation
2
+ --color
3
+ --require spec_helper
data/.rubocop.yml ADDED
@@ -0,0 +1,23 @@
1
+ AllCops:
2
+ TargetRubyVersion: 2.6
3
+
4
+ Style/StringLiterals:
5
+ Enabled: true
6
+ EnforcedStyle: double_quotes
7
+
8
+ Style/StringLiteralsInInterpolation:
9
+ Enabled: true
10
+ EnforcedStyle: double_quotes
11
+
12
+ Layout/LineLength:
13
+ Max: 120
14
+
15
+ Metrics/ClassLength:
16
+ Max: 150
17
+
18
+ Metrics/MethodLength:
19
+ Max: 30
20
+
21
+ Metrics/AbcSize:
22
+ Max: 55 # Or any value that you find suitable
23
+
data/.ruby-gemset ADDED
@@ -0,0 +1 @@
1
+ f
data/.tool-versions ADDED
@@ -0,0 +1 @@
1
+ ruby 3.2.2
data/Gemfile ADDED
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ source "https://rubygems.org"
4
+
5
+ # Specify your gem's dependencies in fitfans-automation.gemspec
6
+ gemspec
7
+
8
+ gem "CFPropertyList", "~> 3.0"
9
+ gem "cocoapods", "~> 1.11"
10
+ gem "colorize", "~> 0.8.1"
11
+ gem "httparty", "~> 0.20.0"
12
+ gem "launchy", "~> 2.5"
13
+ gem "rake", "~> 13.0"
14
+ gem "rspec", "~> 3.0"
15
+ gem "rubocop", "~> 1.21"
16
+ gem "terminal-table", "~> 3.0"
17
+ gem "tmpdir", "~> 0.1.2"
data/Gemfile.lock ADDED
@@ -0,0 +1,176 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ flutterfy-cli (0.1.0)
5
+
6
+ GEM
7
+ remote: https://rubygems.org/
8
+ specs:
9
+ CFPropertyList (3.0.6)
10
+ rexml
11
+ activesupport (7.1.2)
12
+ base64
13
+ bigdecimal
14
+ concurrent-ruby (~> 1.0, >= 1.0.2)
15
+ connection_pool (>= 2.2.5)
16
+ drb
17
+ i18n (>= 1.6, < 2)
18
+ minitest (>= 5.1)
19
+ mutex_m
20
+ tzinfo (~> 2.0)
21
+ addressable (2.8.5)
22
+ public_suffix (>= 2.0.2, < 6.0)
23
+ algoliasearch (1.27.5)
24
+ httpclient (~> 2.8, >= 2.8.3)
25
+ json (>= 1.5.1)
26
+ ast (2.4.2)
27
+ atomos (0.1.3)
28
+ base64 (0.2.0)
29
+ bigdecimal (3.1.4)
30
+ claide (1.1.0)
31
+ cocoapods (1.14.3)
32
+ addressable (~> 2.8)
33
+ claide (>= 1.0.2, < 2.0)
34
+ cocoapods-core (= 1.14.3)
35
+ cocoapods-deintegrate (>= 1.0.3, < 2.0)
36
+ cocoapods-downloader (>= 2.1, < 3.0)
37
+ cocoapods-plugins (>= 1.0.0, < 2.0)
38
+ cocoapods-search (>= 1.0.0, < 2.0)
39
+ cocoapods-trunk (>= 1.6.0, < 2.0)
40
+ cocoapods-try (>= 1.1.0, < 2.0)
41
+ colored2 (~> 3.1)
42
+ escape (~> 0.0.4)
43
+ fourflusher (>= 2.3.0, < 3.0)
44
+ gh_inspector (~> 1.0)
45
+ molinillo (~> 0.8.0)
46
+ nap (~> 1.0)
47
+ ruby-macho (>= 2.3.0, < 3.0)
48
+ xcodeproj (>= 1.23.0, < 2.0)
49
+ cocoapods-core (1.14.3)
50
+ activesupport (>= 5.0, < 8)
51
+ addressable (~> 2.8)
52
+ algoliasearch (~> 1.0)
53
+ concurrent-ruby (~> 1.1)
54
+ fuzzy_match (~> 2.0.4)
55
+ nap (~> 1.0)
56
+ netrc (~> 0.11)
57
+ public_suffix (~> 4.0)
58
+ typhoeus (~> 1.0)
59
+ cocoapods-deintegrate (1.0.5)
60
+ cocoapods-downloader (2.1)
61
+ cocoapods-plugins (1.0.0)
62
+ nap
63
+ cocoapods-search (1.0.1)
64
+ cocoapods-trunk (1.6.0)
65
+ nap (>= 0.8, < 2.0)
66
+ netrc (~> 0.11)
67
+ cocoapods-try (1.2.0)
68
+ colored2 (3.1.2)
69
+ colorize (0.8.1)
70
+ concurrent-ruby (1.2.2)
71
+ connection_pool (2.4.1)
72
+ diff-lcs (1.5.0)
73
+ drb (2.2.0)
74
+ ruby2_keywords
75
+ escape (0.0.4)
76
+ ethon (0.16.0)
77
+ ffi (>= 1.15.0)
78
+ ffi (1.16.3)
79
+ fileutils (1.7.2)
80
+ fourflusher (2.3.1)
81
+ fuzzy_match (2.0.4)
82
+ gh_inspector (1.1.3)
83
+ httparty (0.20.0)
84
+ mime-types (~> 3.0)
85
+ multi_xml (>= 0.5.2)
86
+ httpclient (2.8.3)
87
+ i18n (1.14.1)
88
+ concurrent-ruby (~> 1.0)
89
+ json (2.7.1)
90
+ language_server-protocol (3.17.0.3)
91
+ launchy (2.5.2)
92
+ addressable (~> 2.8)
93
+ mime-types (3.5.1)
94
+ mime-types-data (~> 3.2015)
95
+ mime-types-data (3.2023.1205)
96
+ minitest (5.20.0)
97
+ molinillo (0.8.0)
98
+ multi_xml (0.6.0)
99
+ mutex_m (0.2.0)
100
+ nanaimo (0.3.0)
101
+ nap (1.1.0)
102
+ netrc (0.11.0)
103
+ parallel (1.23.0)
104
+ parser (3.2.2.4)
105
+ ast (~> 2.4.1)
106
+ racc
107
+ public_suffix (4.0.7)
108
+ racc (1.7.3)
109
+ rainbow (3.1.1)
110
+ rake (13.1.0)
111
+ regexp_parser (2.8.3)
112
+ rexml (3.2.6)
113
+ rspec (3.12.0)
114
+ rspec-core (~> 3.12.0)
115
+ rspec-expectations (~> 3.12.0)
116
+ rspec-mocks (~> 3.12.0)
117
+ rspec-core (3.12.2)
118
+ rspec-support (~> 3.12.0)
119
+ rspec-expectations (3.12.3)
120
+ diff-lcs (>= 1.2.0, < 2.0)
121
+ rspec-support (~> 3.12.0)
122
+ rspec-mocks (3.12.6)
123
+ diff-lcs (>= 1.2.0, < 2.0)
124
+ rspec-support (~> 3.12.0)
125
+ rspec-support (3.12.1)
126
+ rubocop (1.58.0)
127
+ json (~> 2.3)
128
+ language_server-protocol (>= 3.17.0)
129
+ parallel (~> 1.10)
130
+ parser (>= 3.2.2.4)
131
+ rainbow (>= 2.2.2, < 4.0)
132
+ regexp_parser (>= 1.8, < 3.0)
133
+ rexml (>= 3.2.5, < 4.0)
134
+ rubocop-ast (>= 1.30.0, < 2.0)
135
+ ruby-progressbar (~> 1.7)
136
+ unicode-display_width (>= 2.4.0, < 3.0)
137
+ rubocop-ast (1.30.0)
138
+ parser (>= 3.2.1.0)
139
+ ruby-macho (2.5.1)
140
+ ruby-progressbar (1.13.0)
141
+ ruby2_keywords (0.0.5)
142
+ terminal-table (3.0.2)
143
+ unicode-display_width (>= 1.1.1, < 3)
144
+ tmpdir (0.1.3)
145
+ fileutils
146
+ typhoeus (1.4.1)
147
+ ethon (>= 0.9.0)
148
+ tzinfo (2.0.6)
149
+ concurrent-ruby (~> 1.0)
150
+ unicode-display_width (2.5.0)
151
+ xcodeproj (1.23.0)
152
+ CFPropertyList (>= 2.3.3, < 4.0)
153
+ atomos (~> 0.1.3)
154
+ claide (>= 1.0.2, < 2.0)
155
+ colored2 (~> 3.1)
156
+ nanaimo (~> 0.3.0)
157
+ rexml (~> 3.2.4)
158
+
159
+ PLATFORMS
160
+ arm64-darwin-23
161
+
162
+ DEPENDENCIES
163
+ CFPropertyList (~> 3.0)
164
+ cocoapods (~> 1.11)
165
+ colorize (~> 0.8.1)
166
+ flutterfy-cli!
167
+ httparty (~> 0.20.0)
168
+ launchy (~> 2.5)
169
+ rake (~> 13.0)
170
+ rspec (~> 3.0)
171
+ rubocop (~> 1.21)
172
+ terminal-table (~> 3.0)
173
+ tmpdir (~> 0.1.2)
174
+
175
+ BUNDLED WITH
176
+ 2.4.17
data/README.md ADDED
@@ -0,0 +1,64 @@
1
+ # flutterfy-cli
2
+ > Combination of `Flutter` + `Simplify`
3
+
4
+ > Instead of copy pasting scripts for every new flutter project I'm working on I can just run `f` on a flutter project and run these common daily tasks.
5
+
6
+ <p align="center">
7
+ <img src="assets/ss.png" width="100%" />
8
+ </p>
9
+
10
+
11
+ ## Usage
12
+
13
+ ```bash
14
+ f clean
15
+ # => Deep cleans the project and rebuilds it.
16
+ ```
17
+
18
+ ```bash
19
+ f fix
20
+ # => Automatically identifies and corrects common issues in Dart code, such as outdated syntax.
21
+ ```
22
+
23
+ ```bash
24
+ f fix
25
+ # => Automatically identifies and corrects common issues in Dart code, such as outdated syntax
26
+
27
+ ```
28
+ ```bash
29
+ f bump major|minor|patch|build
30
+ # => bumps the corresponding update type (and it always bumps the build number)
31
+ ```
32
+
33
+ ```bash
34
+ f generate swagger|icon|assets
35
+ # => swagger: Executes a function to generate a Swagger (OpenAPI) client.
36
+ # => icon: Generates the icons for the app. (using "flutter_launcher_icons")
37
+ # => assets: Initiates asset generation and management. (using "fluttergen")
38
+ ```
39
+
40
+ ```bash
41
+ f open ios|android
42
+ # => ios: Opens the appstoreconnect website.
43
+ # => android: Opens the play console website.
44
+ ```
45
+
46
+ ```bash
47
+ f release beta|production
48
+ # => beta: Releases the current build to the beta track.
49
+ # => production: the current build to the production track.
50
+ ```
51
+
52
+ ## Install
53
+ Clone the repo in your designated folder
54
+ ```bash
55
+ git clone git@github.com:cesarferreira/flutterfy-cli.git
56
+ ```
57
+ Now add to your `~/.bashrc` or `~/.zshrc`
58
+ ```bash
59
+ alias f="ruby -Ilib PATH_TO_GEM_FOLDER/f/bin/f"
60
+ ```
61
+
62
+
63
+ ## Nice to Have
64
+ - [ ] listen to build_runner changes `flutter pub run build_runner watch -d`
data/Rakefile ADDED
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "bundler/gem_tasks"
4
+ require "rspec/core/rake_task"
5
+
6
+ RSpec::Core::RakeTask.new(:spec)
7
+
8
+ require "rubocop/rake_task"
9
+
10
+ RuboCop::RakeTask.new
11
+
12
+ task default: %i[spec rubocop]
data/assets/ss.png ADDED
Binary file
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ # require "httparty"
4
+ require "json"
5
+ require "colorize"
6
+ require "terminal-table"
7
+
8
+ class Creators
9
+ # def self.create_new_app(subdomain, bundle_id, app_name)
10
+ # # TODO: get config and use the values from there, easy!!
11
+ # require "tmpdir"
12
+ # Dir.mktmpdir("fitfans_") do |tmpdir|
13
+ # Utils.title "Cloning #{subdomain.green.bold} into a temporary directory"
14
+ # Utils.execute "git clone #{@cloneable_url} #{tmpdir}"
15
+ # Dir.chdir tmpdir
16
+
17
+ # # switch_to X
18
+ # Utils.title "Checkout #{subdomain.green.bold}"
19
+ # Creators.switch_to subdomain
20
+
21
+ # Utils.title "Creating #{app_name.green.bold} (#{bundle_id.green.yellow}) in iTunes Connect"
22
+ # Creators.create_app(bundle_id, app_name)
23
+
24
+ # Utils.title "Release #{subdomain.green.bold} to testflight"
25
+ # Utils.run_fastlane_beta
26
+ # end
27
+ # end
28
+
29
+ def self.create_app(bundle_id, app_name)
30
+ Utils.execute "bundle exec fastlane ios create_new_app app_identifier:\"#{bundle_id}\" app_name:\"#{app_name}\""
31
+ end
32
+ end
@@ -0,0 +1,58 @@
1
+ # frozen_string_literal: true
2
+
3
+ # require 'httparty'
4
+ require "json"
5
+ require "colorize"
6
+ require "terminal-table"
7
+ require "cfpropertylist"
8
+
9
+ class Utils
10
+ def self.run_fastlane(lane)
11
+ Dir.chdir("./ios/") do
12
+ Utils.execute "bundle exec pod install"
13
+ Utils.execute "bundle exec fastlane #{lane}"
14
+ end
15
+ end
16
+
17
+ # TODO: bump a build number
18
+
19
+ def self.replace_launcher_icon
20
+ # system("wget '#{logo_url}' -O ./assets/logo.png")
21
+ system("dart run flutter_launcher_icons")
22
+ end
23
+
24
+ def self.generate_splash_screen(_watermark_url, _color, _is_powered_by_on)
25
+ system("dart run flutter_native_splash:create --path=splash.yaml")
26
+ end
27
+
28
+ # TODO: replace with
29
+ def self.is_flutter_project
30
+ File.file?("./pubspec.yaml")
31
+ end
32
+
33
+ def self.interrupt_if_non_flutter_project
34
+ abort("This is not a flutter project...".red) unless is_flutter_project
35
+ end
36
+
37
+ def self.title(text)
38
+ puts ""
39
+ puts "==> ".bold.blue + text.bold
40
+ puts ""
41
+ end
42
+
43
+ def self.configure_fastlane
44
+ system("flutterfire configure -y")
45
+ end
46
+
47
+ def self.execute(command)
48
+ is_success = system command
49
+ # is_success = Bundler::system command
50
+ return if is_success
51
+
52
+ puts "\n\n======================================================\n\n"
53
+ puts " Something went wrong while executing this:".red
54
+ puts " $ #{command}\n".yellow
55
+ puts "======================================================\n\n"
56
+ exit 1
57
+ end
58
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ module F
4
+ module Automation
5
+ VERSION = "0.1.0"
6
+ end
7
+ end
@@ -0,0 +1,148 @@
1
+ # frozen_string_literal: true
2
+
3
+ # rubocop:disable Lint/MissingCopEnableDirective
4
+ require_relative "automation/version"
5
+ require_relative "automation/libs/creators_lib"
6
+ require_relative "automation/libs/utils_lib"
7
+ require "launchy"
8
+
9
+ module F
10
+ module Automation
11
+ class Main
12
+ def initialize(arguments)
13
+ case arguments[0]
14
+ when "generate" then handle_generate_command(arguments)
15
+ when "release" then release(arguments)
16
+ when "clean" then clean_rebuild(arguments)
17
+ when "open" then handle_open_command(arguments)
18
+ when "bump" then bump(arguments)
19
+ when "help" then help(arguments)
20
+ else
21
+ arguments[0].nil? ? help(arguments) : puts("Dont recognise the command".red)
22
+ end
23
+ end
24
+
25
+ # when "bump" then clean_rebuild(arguments) # TODO: bump a build number
26
+
27
+ def help(_arguments)
28
+ binary_name = "f"
29
+ # Define the rows of the table
30
+ rows = []
31
+ rows << ["#{binary_name} clean".green, "Deep cleans the project and rebuilds it."]
32
+ rows << :separator
33
+ rows << ["#{binary_name} fix".green,
34
+ "Automatically identifies and corrects common issues in Dart code, such as outdated syntax"]
35
+ rows << :separator
36
+ rows << ["#{binary_name} generate swagger".green, "Executes a function to generate a Swagger (OpenAPI) client."]
37
+ rows << ["#{binary_name} generate icon".green, "Generates the icons for the app."]
38
+ rows << ["#{binary_name} generate assets".green,
39
+ 'Initiates asset generation and management. (using "fluttergen")']
40
+ rows << :separator
41
+ rows << ["#{binary_name} open apple".green, "Opens the #{"appstoreconnect".yellow} website."]
42
+ rows << ["#{binary_name} open android".green, "Opens the #{"play console".yellow} website."]
43
+ rows << :separator
44
+ rows << ["#{binary_name} release beta".green, "Releases the current build to the #{"beta".yellow} track."]
45
+ rows << ["#{binary_name} release production".green,
46
+ "Releases the current build to the #{"production".yellow} track."]
47
+ rows << :separator
48
+ rows << ["#{binary_name} bump major".green, "bumps the #{"MAJOR".yellow} build number (#{"x".yellow}.0.0+#{"y".yellow})"] # ESTEEEEE
49
+ rows << ["#{binary_name} bump minor".green,
50
+ "bumps the #{"MINOR".yellow} build number (0.#{"x".yellow}.0+#{"y".yellow})"]
51
+ rows << ["#{binary_name} bump patch".green,
52
+ "bumps the #{"PATCH".yellow} build number (0.0.#{"x".yellow}+#{"y".yellow})"]
53
+ rows << ["#{binary_name} bump build".green, "bumps the #{"build number".yellow} (1.0.0+#{"y".yellow})"]
54
+ rows << :separator
55
+ rows << ["#{binary_name} help".green, "Shows a table with all the available commands."]
56
+ # Create a table
57
+ table = Terminal::Table.new headings: ["Command".bold, "Description".bold], rows: rows
58
+
59
+ puts table
60
+ end
61
+
62
+ def handle_open_command(arguments)
63
+ case arguments[1]
64
+ when "apple", "ios" then Launchy.open("https://appstoreconnect.apple.com/apps")
65
+ when "google", "android" then Launchy.open("https://play.google.com/console/u/0/developers/")
66
+ else
67
+ puts "Dont recognise the command"
68
+ end
69
+ end
70
+
71
+ def handle_generate_command(arguments)
72
+ Utils.interrupt_if_non_flutter_project
73
+
74
+ case arguments[1]
75
+ when "swagger" then generate_network_layer(arguments)
76
+ when "icon" then generate_icons(arguments)
77
+ when "assets" then generate_assets(arguments)
78
+ else
79
+ puts "Dont recognise the command"
80
+ end
81
+ end
82
+
83
+ #
84
+ # release
85
+ #
86
+ def release(arguments)
87
+ Utils.interrupt_if_non_flutter_project
88
+
89
+ if arguments.length == 1
90
+ puts "Required 2 parameters".red
91
+ exit
92
+ end
93
+
94
+ case arguments[1]
95
+ when "beta" then Utils.run_fastlane("ios beta")
96
+ when "release" then Utils.run_fastlane("ios release")
97
+ else
98
+ puts "Not ready for #{arguments[1].red} yet"
99
+ end
100
+ end
101
+
102
+ def generate_network_layer(_arguments)
103
+ Utils.interrupt_if_non_flutter_project
104
+ system("dart run build_runner build --delete-conflicting-outputs")
105
+ end
106
+
107
+ def generate_icons(_arguments)
108
+ Utils.interrupt_if_non_flutter_project
109
+ system("dart run flutter_launcher_icons")
110
+ end
111
+
112
+ def bump(arguments)
113
+ Utils.interrupt_if_non_flutter_project
114
+ case arguments[1]
115
+ when "major" then system(File.join(__dir__, "scripts/bump_version.sh pubspec.yaml major"))
116
+ when "minor" then system(File.join(__dir__, "scripts/bump_version.sh pubspec.yaml minor"))
117
+ when "patch" then system(File.join(__dir__, "scripts/bump_version.sh pubspec.yaml patch"))
118
+ when "build" then system(File.join(__dir__, "scripts/bump_version.sh pubspec.yaml build"))
119
+ else
120
+ puts "Not ready for #{arguments[1].red} yet"
121
+ end
122
+ end
123
+
124
+ def generate_assets(_arguments)
125
+ Utils.interrupt_if_non_flutter_project
126
+ Utils.execute "fluttergen -c pubspec.yaml"
127
+ end
128
+
129
+ #
130
+ # CLEAN EVERYTHING
131
+ #
132
+ def clean_rebuild(_arguments)
133
+ Utils.interrupt_if_non_flutter_project
134
+ # flutter clean; rm -rf ios/Podfile.lock; flutter pub get; cd ios; pod install; cd ..
135
+ Utils.execute "flutter clean"
136
+ Utils.execute "flutter pub get"
137
+ Dir.chdir("./ios/") do
138
+ # Utils.execute "bundle install"
139
+ Utils.execute "rm -rf Podfile.lock"
140
+ Utils.execute "pod install"
141
+ end
142
+ end
143
+ end
144
+
145
+ # class Error < StandardError; end
146
+ # Your code goes here...
147
+ end
148
+ end
@@ -0,0 +1,61 @@
1
+ #!/bin/bash
2
+
3
+ # Define color codes
4
+ GREEN="\033[0;32m"
5
+ YELLOW="\033[0;33m"
6
+ RESET="\033[0m"
7
+
8
+ # Get the path to pubspec.yaml and the update type
9
+ PUBSPEC_PATH=$1
10
+ UPDATE_TYPE=$2
11
+
12
+ # Function to increment version parts
13
+ function bump_version() {
14
+ # Extract the line containing the version and build number
15
+ local version_line=$(grep 'version: ' "$PUBSPEC_PATH")
16
+ local version=$(echo "$version_line" | sed -E 's/version: ([0-9]+\.[0-9]+\.[0-9]+)\+[0-9]+/\1/')
17
+ local major=$(echo "$version" | cut -d. -f1)
18
+ local minor=$(echo "$version" | cut -d. -f2)
19
+ local patch=$(echo "$version" | cut -d. -f3)
20
+ local build_number=$(echo "$version_line" | sed -E 's/version: [0-9]+\.[0-9]+\.[0-9]+\+([0-9]+)/\1/')
21
+
22
+ # Increment the build number
23
+ local new_build_number=$((build_number + 1))
24
+
25
+ # Determine which part to update
26
+ case $UPDATE_TYPE in
27
+ major)
28
+ major=$((major + 1))
29
+ minor=0
30
+ patch=0
31
+ ;;
32
+ minor)
33
+ minor=$((minor + 1))
34
+ patch=0
35
+ ;;
36
+ patch)
37
+ patch=$((patch + 1))
38
+ ;;
39
+ build)
40
+ # Only build number will be incremented
41
+ ;;
42
+ *)
43
+ echo "Invalid update type: $UPDATE_TYPE"
44
+ echo "Please use 'major', 'minor', 'patch', or 'build'"
45
+ exit 1
46
+ ;;
47
+ esac
48
+
49
+ # Form new version string
50
+ local new_version="$major.$minor.$patch+$new_build_number"
51
+
52
+ # Update the version in the pubspec.yaml
53
+ sed -i '' "s/$version_line/version: $new_version/" "$PUBSPEC_PATH"
54
+
55
+ # Print the old and new version
56
+ echo -e "\nfrom: ${YELLOW}$version+$build_number${RESET}"
57
+ echo -e "to: ${GREEN}$new_version${RESET}"
58
+ }
59
+
60
+ # Bump the version
61
+ bump_version
metadata ADDED
@@ -0,0 +1,58 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: flutterfy-cli
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Cesar Ferreira
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2023-12-19 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: Flutter CLI tool to increase development speed by automating common tasks
14
+ email:
15
+ - cesar.manuel.ferreira@gmail.com
16
+ executables: []
17
+ extensions: []
18
+ extra_rdoc_files: []
19
+ files:
20
+ - ".rspec"
21
+ - ".rubocop.yml"
22
+ - ".ruby-gemset"
23
+ - ".tool-versions"
24
+ - Gemfile
25
+ - Gemfile.lock
26
+ - README.md
27
+ - Rakefile
28
+ - assets/ss.png
29
+ - lib/f/automation.rb
30
+ - lib/f/automation/libs/creators_lib.rb
31
+ - lib/f/automation/libs/utils_lib.rb
32
+ - lib/f/automation/version.rb
33
+ - lib/f/scripts/bump_version.sh
34
+ homepage: https://cesarferreira.com
35
+ licenses:
36
+ - MIT
37
+ metadata:
38
+ homepage_uri: https://cesarferreira.com
39
+ post_install_message:
40
+ rdoc_options: []
41
+ require_paths:
42
+ - lib
43
+ required_ruby_version: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ required_rubygems_version: !ruby/object:Gem::Requirement
49
+ requirements:
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: '0'
53
+ requirements: []
54
+ rubygems_version: 3.4.10
55
+ signing_key:
56
+ specification_version: 4
57
+ summary: Flutter CLI tool to increase development speed
58
+ test_files: []