fled 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
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