fled 0.0.2 → 0.0.3

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.
data/README.md CHANGED
@@ -71,38 +71,107 @@ Add options to a command (`mkdir`, `mv`, `rm` or `rmdir`)
71
71
  folder_two/ :2
72
72
  file_three :3
73
73
 
74
- Each line of the listing is in the format *`[indentation]`* *`[name]`* `:`*`[uid]`*
74
+ Each line of the listing is in the format `[indentation] name: uid`
75
75
 
76
76
  - The *indentation* must consist of only spaces, and is used to indicate the parent folder
77
77
  - The *name* must not use colons (`:`). If it is cleared, it is assumed the file/folder is to be deleted
78
+ The *name* has a `/` appended if it is a directory.
78
79
  - The *uid* is used by FlEd to recognise the original of the edited line. Do not assume a *uid* does not
79
- change between runs. It is valid only once.
80
+ change between runs. It is valid only for the current run. Spaces before the *uid* are only cosmetic.
80
81
 
81
82
  ## Operations
82
83
  ### Creating a new folder
83
84
 
84
85
  Add a new line (therefore with no uid):
85
86
 
86
- folder/ :0
87
- new_folder
88
- folder_two/ :2
89
-
90
- Generates:
91
-
92
- mkdir folder/new_folder
87
+ <table>
88
+ <tr>
89
+ <th>
90
+ <em>Original listing</em>
91
+ </th>
92
+ <th>
93
+ <em>Edited listing</em>
94
+ </th>
95
+ </tr>
96
+ <tr>
97
+ <td>
98
+ <pre>
99
+ folder/ :0
100
+ file_one :1
101
+ folder_two/ :2
102
+ file_three :3
103
+ </pre>
104
+ </td>
105
+ <td>
106
+ <pre>
107
+ folder/ :0
108
+ new_folder
109
+ folder_two/ :2
110
+ </pre>
111
+ </td>
112
+ </tr>
113
+ <tr>
114
+ <th colspan='2'>
115
+ <em>Generates the script:</em>
116
+ </th>
117
+ </tr>
118
+ <tr>
119
+ <td colspan='2'>
120
+ <ul>
121
+ <li>
122
+ <code>mkdir folder/new_folder</code>
123
+ </li>
124
+ </ul>
125
+ </td>
126
+ </tr>
127
+ </table>
93
128
 
94
129
  ### Moving
95
130
 
96
131
  Change the indentation and/or line order to change the parent of a file or folder:
97
132
 
98
- folder/ :0
99
- folder_two/ :2
100
- file_one :1
101
- file_three :3
102
-
103
- Generates:
104
-
105
- mv folder/file_one folder/folder_two/file_one
133
+ <table>
134
+ <tr>
135
+ <th>
136
+ <em>Original listing</em>
137
+ </th>
138
+ <th>
139
+ <em>Edited listing</em>
140
+ </th>
141
+ </tr>
142
+ <tr>
143
+ <td>
144
+ <pre>
145
+ folder/ :0
146
+ file_one :1
147
+ folder_two/ :2
148
+ file_three :3
149
+ </pre>
150
+ </td>
151
+ <td>
152
+ <pre>
153
+ folder/ :0
154
+ folder_two/ :2
155
+ file_one :1
156
+ file_three :3
157
+ </pre>
158
+ </td>
159
+ </tr>
160
+ <tr>
161
+ <th colspan='2'>
162
+ <em>Generates the script:</em>
163
+ </th>
164
+ </tr>
165
+ <tr>
166
+ <td colspan='2'>
167
+ <ul>
168
+ <li>
169
+ <code>mv folder/file_one folder/folder_two/file_one</code>
170
+ </li>
171
+ </ul>
172
+ </td>
173
+ </tr>
174
+ </table>
106
175
 
107
176
  *Moving an item below itself or its children is not recommended, as the listing may not be exhaustive*
108
177
 
@@ -110,79 +179,293 @@ Generates:
110
179
 
111
180
  Edit the name while preserving the uid to rename the item
112
181
 
113
- folder_renamed/ :0
114
- file_one :1
115
- folder_two/ :2
116
- file_changed :3
117
-
118
- Generates:
119
-
120
- mv folder folder_renamed
121
- mv folder_renamed/folder_two/file_three folder_renamed/folder_two/file_changed
122
-
123
- *Swapping file names may not work in cases where the generated intermediary file exists but was not included in the listing*
182
+ <table>
183
+ <tr>
184
+ <th>
185
+ <em>Original listing</em>
186
+ </th>
187
+ <th>
188
+ <em>Edited listing</em>
189
+ </th>
190
+ </tr>
191
+ <tr>
192
+ <td>
193
+ <pre>
194
+ folder/ :0
195
+ file_one :1
196
+ folder_two/ :2
197
+ file_three :3
198
+ </pre>
199
+ </td>
200
+ <td>
201
+ <pre>
202
+ folder_renamed/ :0
203
+ file_one :1
204
+ folder_two/ :2
205
+ file_changed :3
206
+ </pre>
207
+ </td>
208
+ </tr>
209
+ <tr>
210
+ <th colspan='2'>
211
+ <em>Generates the script:</em>
212
+ </th>
213
+ </tr>
214
+ <tr>
215
+ <td colspan='2'>
216
+ <ul>
217
+ <li>
218
+ <code>mv folder folder_renamed</code>
219
+ </li>
220
+ <li>
221
+ <code>mv folder_renamed/folder_two/file_three folder_renamed/folder_two/file_changed</code>
222
+ </li>
223
+ </ul>
224
+ </td>
225
+ </tr>
226
+ </table>
124
227
 
125
228
  ### Deleting
126
229
 
127
230
  Clear a name but leave the uid to delete that item
128
231
 
129
- folder_renamed/ :0
130
- :1
131
- :2
132
- :3
133
-
134
- Generates:
135
-
136
- mv folder folder_renamed
137
- rm folder_renamed/folder_two/file_three
138
- rm folder_renamed/file_one
139
- rmdir folder_renamed/folder_two
232
+ <table>
233
+ <tr>
234
+ <th>
235
+ <em>Original listing</em>
236
+ </th>
237
+ <th>
238
+ <em>Edited listing</em>
239
+ </th>
240
+ </tr>
241
+ <tr>
242
+ <td>
243
+ <pre>
244
+ folder/ :0
245
+ file_one :1
246
+ folder_two/ :2
247
+ file_three :3
248
+ </pre>
249
+ </td>
250
+ <td>
251
+ <pre>
252
+ folder_renamed/ :0
253
+ :1
254
+ :2
255
+ :3
256
+ </pre>
257
+ </td>
258
+ </tr>
259
+ <tr>
260
+ <th colspan='2'>
261
+ <em>Generates the script:</em>
262
+ </th>
263
+ </tr>
264
+ <tr>
265
+ <td colspan='2'>
266
+ <ul>
267
+ <li>
268
+ <code>mv folder folder_renamed</code>
269
+ </li>
270
+ <li>
271
+ <code>rm folder_renamed/folder_two/file_three</code>
272
+ </li>
273
+ <li>
274
+ <code>rm folder_renamed/file_one</code>
275
+ </li>
276
+ <li>
277
+ <code>rmdir folder_renamed/folder_two</code>
278
+ </li>
279
+ </ul>
280
+ </td>
281
+ </tr>
282
+ </table>
140
283
 
141
284
  ### No-op
142
285
 
143
286
  If a line (and all child-lines) is removed from the listing, it will have no operation.
144
287
 
145
- folder/ :0
146
-
147
- Generates:
148
- *No operation*
288
+ <table>
289
+ <tr>
290
+ <th>
291
+ <em>Original listing</em>
292
+ </th>
293
+ <th>
294
+ <em>Edited listing</em>
295
+ </th>
296
+ </tr>
297
+ <tr>
298
+ <td>
299
+ <pre>
300
+ folder/ :0
301
+ file_one :1
302
+ folder_two/ :2
303
+ file_three :3
304
+ </pre>
305
+ </td>
306
+ <td>
307
+ <pre>
308
+ folder/ :0
309
+ </pre>
310
+ </td>
311
+ </tr>
312
+ <tr>
313
+ <th colspan='2'>
314
+ <em>Generates the script:</em>
315
+ </th>
316
+ </tr>
317
+ <tr>
318
+ <td colspan='2'>
319
+ <em>No operation</em>
320
+ </td>
321
+ </tr>
322
+ </table>
149
323
 
150
324
  *Note that removing a folder without removing its children will move its children:*
151
325
 
152
- folder/ :0
153
- file_one :1
154
- file_three :3
155
-
156
- Generates:
157
-
158
- mv folder/folder_two/file_three folder/file_three
159
-
326
+ <table>
327
+ <tr>
328
+ <th>
329
+ <em>Original listing</em>
330
+ </th>
331
+ <th>
332
+ <em>Edited listing</em>
333
+ </th>
334
+ </tr>
335
+ <tr>
336
+ <td>
337
+ <pre>
338
+ folder/ :0
339
+ file_one :1
340
+ folder_two/ :2
341
+ file_three :3
342
+ </pre>
343
+ </td>
344
+ <td>
345
+ <pre>
346
+ folder/ :0
347
+ file_one :1
348
+ file_three :3
349
+ </pre>
350
+ </td>
351
+ </tr>
352
+ <tr>
353
+ <th colspan='2'>
354
+ <em>Generates the script:</em>
355
+ </th>
356
+ </tr>
357
+ <tr>
358
+ <td colspan='2'>
359
+ <ul>
360
+ <li>
361
+ <code>mv folder/folder_two/file_three folder/file_three</code>
362
+ </li>
363
+ </ul>
364
+ </td>
365
+ </tr>
366
+ </table>
160
367
 
161
368
  If an indent is forgotten:
162
369
 
163
- folder/ :0
164
- file_one :1
165
- file_three :3
166
-
167
- Generates:
168
-
169
- mv folder/folder_two/file_three folder/file_three
370
+ <table>
371
+ <tr>
372
+ <th>
373
+ <em>Original listing</em>
374
+ </th>
375
+ <th>
376
+ <em>Edited listing</em>
377
+ </th>
378
+ </tr>
379
+ <tr>
380
+ <td>
381
+ <pre>
382
+ folder/ :0
383
+ file_one :1
384
+ folder_two/ :2
385
+ file_three :3
386
+ </pre>
387
+ </td>
388
+ <td>
389
+ <pre>
390
+ folder/ :0
391
+ file_one :1
392
+ file_three :3
393
+ </pre>
394
+ </td>
395
+ </tr>
396
+ <tr>
397
+ <th colspan='2'>
398
+ <em>Generates the script:</em>
399
+ </th>
400
+ </tr>
401
+ <tr>
402
+ <td colspan='2'>
403
+ <ul>
404
+ <li>
405
+ <code>mv folder/folder_two/file_three folder/file_three</code>
406
+ </li>
407
+ </ul>
408
+ </td>
409
+ </tr>
410
+ </table>
170
411
 
171
412
  ### All together
172
413
 
173
- folder_new/ :0
174
- new_folder/
175
- first :1
176
- second :3
177
- :2
178
-
179
- Generates:
180
-
181
- mv folder folder_new
182
- mkdir folder_new/new_folder
183
- mv folder_new/file_one folder_new/new_folder/first
184
- mv folder_new/folder_two/file_three folder_new/new_folder/second
185
- rmdir folder_new/folder_two
414
+ <table>
415
+ <tr>
416
+ <th>
417
+ <em>Original listing</em>
418
+ </th>
419
+ <th>
420
+ <em>Edited listing</em>
421
+ </th>
422
+ </tr>
423
+ <tr>
424
+ <td>
425
+ <pre>
426
+ folder/ :0
427
+ file_one :1
428
+ folder_two/ :2
429
+ file_three :3
430
+ </pre>
431
+ </td>
432
+ <td>
433
+ <pre>
434
+ folder_new/ :0
435
+ new_folder/
436
+ first :1
437
+ second :3
438
+ :2
439
+ </pre>
440
+ </td>
441
+ </tr>
442
+ <tr>
443
+ <th colspan='2'>
444
+ <em>Generates the script:</em>
445
+ </th>
446
+ </tr>
447
+ <tr>
448
+ <td colspan='2'>
449
+ <ul>
450
+ <li>
451
+ <code>mv folder folder_new</code>
452
+ </li>
453
+ <li>
454
+ <code>mkdir folder_new/new_folder</code>
455
+ </li>
456
+ <li>
457
+ <code>mv folder_new/file_one folder_new/new_folder/first</code>
458
+ </li>
459
+ <li>
460
+ <code>mv folder_new/folder_two/file_three folder_new/new_folder/second</code>
461
+ </li>
462
+ <li>
463
+ <code>rmdir folder_new/folder_two</code>
464
+ </li>
465
+ </ul>
466
+ </td>
467
+ </tr>
468
+ </table>
186
469
 
187
470
  ## Edge cases
188
471
 
@@ -196,15 +479,54 @@ These sort-of work, but are still rather experimental
196
479
 
197
480
  When applying
198
481
 
199
- folder/ :0
200
- file_two :1
201
- file_one :2
202
-
203
- Generates:
482
+ <table>
483
+ <tr>
484
+ <th>
485
+ <em>Original listing</em>
486
+ </th>
487
+ <th>
488
+ <em>Edited listing</em>
489
+ </th>
490
+ </tr>
491
+ <tr>
492
+ <td>
493
+ <pre>
494
+ folder/ :0
495
+ file_one :1
496
+ file_two :2
497
+ </pre>
498
+ </td>
499
+ <td>
500
+ <pre>
501
+ folder/ :0
502
+ file_two :1
503
+ file_one :2
504
+ </pre>
505
+ </td>
506
+ </tr>
507
+ <tr>
508
+ <th colspan='2'>
509
+ <em>Generates the script:</em>
510
+ </th>
511
+ </tr>
512
+ <tr>
513
+ <td colspan='2'>
514
+ <ul>
515
+ <li>
516
+ <code>mv folder/file_two folder/file_one.tmp</code>
517
+ </li>
518
+ <li>
519
+ <code>mv folder/file_one folder/file_two</code>
520
+ </li>
521
+ <li>
522
+ <code>mv folder/file_one.tmp folder/file_one</code>
523
+ </li>
524
+ </ul>
525
+ </td>
526
+ </tr>
527
+ </table>
204
528
 
205
- mv folder/file_two folder/file_one.tmp
206
- mv folder/file_one folder/file_two
207
- mv folder/file_one.tmp folder/file_one
529
+ *Swapping file names may not work in cases where the generated intermediary file exists but was not included in the listing*
208
530
 
209
531
  ### Tree swapping
210
532
 
@@ -215,19 +537,67 @@ Generates:
215
537
 
216
538
  When applying
217
539
 
218
- sub_sub_folder/ :2
219
- sub_folder/ :1
220
- folder/ :0
221
- file.txt :3
540
+ <table>
541
+ <tr>
542
+ <th>
543
+ <em>Original listing</em>
544
+ </th>
545
+ <th>
546
+ <em>Edited listing</em>
547
+ </th>
548
+ </tr>
549
+ <tr>
550
+ <td>
551
+ <pre>
552
+ folder/ :0
553
+ sub_folder/ :1
554
+ sub_sub_folder/ :2
555
+ file.txt :3
556
+ </pre>
557
+ </td>
558
+ <td>
559
+ <pre>
560
+ sub_sub_folder/ :2
561
+ sub_folder/ :1
562
+ folder/ :0
563
+ file.txt :3
564
+ </pre>
565
+ </td>
566
+ </tr>
567
+ <tr>
568
+ <th colspan='2'>
569
+ <em>Generates the script:</em>
570
+ </th>
571
+ </tr>
572
+ <tr>
573
+ <td colspan='2'>
574
+ <ul>
575
+ <li>
576
+ <code>mv folder/sub_folder/sub_sub_folder sub_sub_folder</code>
577
+ </li>
578
+ <li>
579
+ <code>mv folder/sub_folder sub_sub_folder/sub_folder</code>
580
+ </li>
581
+ <li>
582
+ <code>mv folder sub_sub_folder/sub_folder/folder</code>
583
+ </li>
584
+ <li>
585
+ <code>mv sub_sub_folder/file.txt sub_sub_folder/sub_folder/folder/file.txt</code>
586
+ </li>
587
+ </ul>
588
+ </td>
589
+ </tr>
590
+ </table>
222
591
 
223
- Generates:
592
+ ## Changelog
224
593
 
225
- mv folder/sub_folder/sub_sub_folder sub_sub_folder
226
- mv folder/sub_folder sub_sub_folder/sub_folder
227
- mv folder sub_sub_folder/sub_folder/folder
228
- mv sub_sub_folder/file.txt sub_sub_folder/sub_folder/folder/file.txt
594
+ *Version v0.0.3*
229
595
 
230
- ## Changelog
596
+ - New: Interactive mode with `-u`
597
+ - New: Error and warning reporting with line numbers
598
+ - New: Default configuration file at `~/.fled.yaml`
599
+ - New: Editor and diff tool are configurable from configuration files
600
+ - Meta: Refactoring of code
231
601
 
232
602
  *Version v0.0.2*
233
603