mirror of
https://github.com/beetbox/beets.git
synced 2025-12-06 16:42:42 +01:00
44 lines
1.1 KiB
Python
Executable file
44 lines
1.1 KiB
Python
Executable file
#!/usr/bin/env python
|
|
# -*- coding: utf-8 -*-
|
|
|
|
"""A tiny tool used to test the `convert` plugin. It copies a file and appends
|
|
a specified text tag.
|
|
"""
|
|
|
|
from __future__ import division, absolute_import, print_function
|
|
import sys
|
|
import platform
|
|
import locale
|
|
|
|
PY2 = sys.version_info[0] == 2
|
|
|
|
|
|
# From `beets.util`.
|
|
def arg_encoding():
|
|
try:
|
|
return locale.getdefaultlocale()[1] or 'utf-8'
|
|
except ValueError:
|
|
return 'utf-8'
|
|
|
|
|
|
def convert(in_file, out_file, tag):
|
|
"""Copy `in_file` to `out_file` and append the string `tag`.
|
|
"""
|
|
# On Python 3, encode the tag argument as bytes.
|
|
if not isinstance(tag, bytes):
|
|
tag = tag.encode('utf-8')
|
|
|
|
# On Windows, use Unicode paths. On Python 3, we get the actual,
|
|
# Unicode filenames. On Python 2, we get them as UTF-8 byes.
|
|
if platform.system() == 'Windows' and PY2:
|
|
in_file = in_file.decode('utf-8')
|
|
out_file = out_file.decode('utf-8')
|
|
|
|
with open(out_file, 'wb') as out_f:
|
|
with open(in_file, 'rb') as in_f:
|
|
out_f.write(in_f.read())
|
|
out_f.write(tag)
|
|
|
|
|
|
if __name__ == '__main__':
|
|
convert(sys.argv[1], sys.argv[2], sys.argv[3])
|