@@ -98,38 +98,92 @@ public function status( array $args, array $assoc_args ) {
98
98
* @return void
99
99
*/
100
100
public function version ( array $ args , array $ assoc_args ) {
101
- $ all = (bool ) get_flag_value ( $ assoc_args , 'all ' );
101
+ $ all = (bool ) get_flag_value ( $ assoc_args , 'all ' );
102
+ $ latest = $ this ->get_latest_version ( $ instance );
103
+
104
+ if ( ! $ all ) {
105
+ echo $ latest ;
106
+ \WP_CLI ::halt ( 0 );
107
+ }
108
+
102
109
$ instance = \ActionScheduler_Versions::instance ();
103
- $ latest = $ this ->get_latest_version ( $ instance );
110
+ $ versions = $ instance ->get_versions ();
111
+ $ rows = array ();
104
112
105
- if ( $ all ) {
106
- $ versions = $ instance -> get_versions () ;
113
+ foreach ( $ versions as $ version => $ callback ) {
114
+ $ active = $ version === $ latest ;
107
115
108
- $ rows = array ();
116
+ $ rows [ $ version ] = array (
117
+ 'version ' => $ version ,
118
+ 'callback ' => $ callback ,
119
+ 'active ' => $ active ? 'yes ' : 'no ' ,
120
+ );
121
+ }
109
122
110
- foreach ( $ versions as $ version => $ callback ) {
111
- $ active = 'no ' ;
123
+ uksort ( $ rows , 'version_compare ' );
112
124
113
- if ( $ version === $ latest ) {
114
- $ active = ' yes ' ;
115
- }
125
+ $ formatter = new \ WP_CLI \ Formatter ( $ assoc_args , array ( ' version ' , ' callback ' , ' active ' ) );
126
+ $ formatter -> display_items ( $ rows ) ;
127
+ }
116
128
117
- $ rows [ $ version ] = array (
118
- 'version ' => $ version ,
119
- 'callback ' => $ callback ,
120
- 'active ' => $ active ,
121
- );
122
- }
129
+ /**
130
+ * Display the current source, or all registered sources.
131
+ *
132
+ * ## OPTIONS
133
+ *
134
+ * [--all]
135
+ * : List all registered sources.
136
+ *
137
+ * [--fullpath]
138
+ * : List full path of source(s).
139
+ *
140
+ * @param array $args Positional args.
141
+ * @param array $assoc_args Keyed args.
142
+ * @uses \ActionScheduler_Versions::get_sources()
143
+ * @uses \WP_CLI\Formatter::display_items()
144
+ * @uses $this->get_latest_version()
145
+ * @return void
146
+ */
147
+ public function source ( array $ args , array $ assoc_args ) {
148
+ $ all = (bool ) get_flag_value ( $ assoc_args , 'all ' );
149
+ $ fullpath = (bool ) get_flag_value ( $ assoc_args , 'fullpath ' );
150
+ $ versions = \ActionScheduler_Versions::instance ();
151
+ $ source = $ versions ->active_source ();
152
+ $ path = $ source ;
153
+
154
+ if ( ! $ fullpath ) {
155
+ $ path = str_replace ( ABSPATH , '' , $ path );
156
+ }
123
157
124
- uksort ( $ rows , 'version_compare ' );
158
+ if ( ! $ all ) {
159
+ echo $ path ;
160
+ \WP_CLI ::halt ( 0 );
161
+ }
125
162
126
- $ formatter = new \ WP_CLI \ Formatter ( $ assoc_args , array ( ' version ' , ' callback ' , ' active ' ) );
127
- $ formatter -> display_items ( $ rows );
163
+ $ sources = $ versions -> get_sources ( );
164
+ $ rows = array ( );
128
165
129
- return ;
166
+ foreach ( $ sources as $ check_source => $ version ) {
167
+ $ active = dirname ( $ check_source ) === $ source ;
168
+ $ path = $ check_source ;
169
+
170
+ if ( ! $ fullpath ) {
171
+ $ path = str_replace ( ABSPATH , '' , $ path );
172
+ }
173
+
174
+ $ rows [ $ check_source ] = array (
175
+ 'source ' => $ path ,
176
+ 'version ' => $ version ,
177
+ 'active ' => $ active ? 'yes ' : 'no ' ,
178
+ );
130
179
}
131
180
132
- echo $ latest ;
181
+ ksort ( $ rows );
182
+
183
+ \WP_CLI ::log ( PHP_EOL . 'Please note there can only be one unique registered instance of Action Scheduler per ' . PHP_EOL . 'version number, so this list may not include all the currently present copies of ' . PHP_EOL . 'Action Scheduler. ' . PHP_EOL );
184
+
185
+ $ formatter = new \WP_CLI \Formatter ( $ assoc_args , array ( 'source ' , 'version ' , 'active ' ) );
186
+ $ formatter ->display_items ( $ rows );
133
187
}
134
188
135
189
/**
0 commit comments