diff --git a/.gitignore b/.gitignore index b2163f118..9619a7dfd 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,11 @@ wine-py2exe/ py2exe.log *.kate-swp +build/ +dist/ +MANIFEST +README.txt +youtube-dl.1 +youtube-dl.bash-completion +youtube-dl +youtube-dl.exe diff --git a/MANIFEST.in b/MANIFEST.in new file mode 100644 index 000000000..81f8e05cd --- /dev/null +++ b/MANIFEST.in @@ -0,0 +1,3 @@ +include README.md +include test/*.py +include test/*.json \ No newline at end of file diff --git a/Makefile b/Makefile index 2eb226fdb..470717a92 100644 --- a/Makefile +++ b/Makefile @@ -1,8 +1,8 @@ -all: youtube-dl README.md youtube-dl.1 youtube-dl.bash-completion LATEST_VERSION +all: youtube-dl README.md README.txt youtube-dl.1 youtube-dl.bash-completion # TODO: re-add youtube-dl.exe, and make sure it's 1. safe and 2. doesn't need sudo clean: - rm -f youtube-dl youtube-dl.exe youtube-dl.1 LATEST_VERSION + rm -rf youtube-dl youtube-dl.exe youtube-dl.1 youtube-dl.bash-completion README.txt MANIFEST build/ dist/ PREFIX=/usr/local BINDIR=$(PREFIX)/bin @@ -20,8 +20,7 @@ install: youtube-dl youtube-dl.1 youtube-dl.bash-completion test: nosetests2 --nocapture test -.PHONY: all clean install test README.md youtube-dl.bash-completion -# TODO un-phony README.md and youtube-dl.bash_completion by reading from .in files and generating from them +.PHONY: all clean install test youtube-dl: youtube_dl/*.py zip --quiet youtube-dl youtube_dl/*.py @@ -46,13 +45,13 @@ README.md: youtube_dl/*.py echo '# CONFIGURATION' >> README.md && \ echo "$${footer}" >> README.md +README.txt: README.md + pandoc -f markdown -t plain README.md -o README.txt + youtube-dl.1: README.md - pandoc -s -w man README.md -o youtube-dl.1 + pandoc -f markdown -t man README.md -o youtube-dl.1 -youtube-dl.bash-completion: README.md +youtube-dl.bash-completion: README.md youtube-dl.bash-completion.in @options=`egrep -o '(--[a-z-]+) ' README.md | sort -u | xargs echo` && \ - content=`sed "s/opts=\"[^\"]*\"/opts=\"$${options}\"/g" youtube-dl.bash-completion` && \ + content=`sed "s/opts=\"[^\"]*\"/opts=\"$${options}\"/g" youtube-dl.bash-completion.in` && \ echo "$${content}" > youtube-dl.bash-completion - -LATEST_VERSION: youtube_dl/__init__.py - python -m youtube_dl --version > LATEST_VERSION diff --git a/setup.py b/setup.py index ec63bedde..5dfbbc72d 100644 --- a/setup.py +++ b/setup.py @@ -1,31 +1,13 @@ -from distutils.core import setup, Command +from distutils.core import setup +import pkg_resources import sys + try: import py2exe except ImportError: - sys.stderr.write("Cannot import py2exe") -import subprocess + print >> sys.stderr, "Cannot import py2exe" -"""The p2exe option will create an exe that needs Microsoft Visual C++ 2008 Redistributable Package. - python setup.py py2exe - You can also build a zip executable with - python setup.py bdist --format=zip - - The test suite can be run with - python setup.py test - - - The actual version is defined by the last git tag -""" - -# If run without args, build executables -#if len(sys.argv) == 1: -# sys.argv.append("py2exe") - -# os.chdir(os.path.dirname(os.path.abspath(sys.argv[0]))) # conflict with wine-py2exe.sh -#sys.path.append('./youtube_dl') - -options = { +py2exe_options = { "bundle_files": 1, "compressed": 1, "optimize": 2, @@ -33,33 +15,29 @@ options = { "dll_excludes": ['w9xpopen.exe'] } -console = [{ +py2exe_console = [{ "script":"./youtube_dl/__main__.py", "dest_base": "youtube-dl", }] -init_file = open('./youtube_dl/__init__.py') +execfile('youtube_dl/version.py') -try: - #return the last tag name - version = subprocess.checkoutput(["git", "describe", "--abbrev=0", "--tags"]) -except: - version = '' +setup( + name = 'youtube_dl', + version = __version__, + description = 'Small command-line program to download videos from YouTube.com and other video sites', + url = 'https://github.com/rg3/youtube-dl', + author = 'Ricardo Garcia', + maintainer = 'Philipp Hagemeister', + maintainer_email = 'phihag@phihag.de', + packages = ['youtube_dl'], -setup(name='youtube-dl', - version=version, - long_description='Small command-line program to download videos from YouTube.com and other video sites', - url='https://github.com/rg3/youtube-dl', - packages=['youtube_dl'], - #test suite - test_suite='nose.collector', - test_requires=['nosetest'], - console=console, - options={"py2exe": options}, - scripts=['bin/youtube-dl'], - zipfile=None, + test_suite = 'nose.collector', + test_requires = ['nosetest'], + + console = py2exe_console, + options = { "py2exe": py2exe_options }, + + scripts = ['bin/youtube-dl'], + zipfile = None, ) - -#import shutil -#shutil.rmtree("build") - diff --git a/youtube-dl b/youtube-dl deleted file mode 100755 index fc3cc8ad8..000000000 --- a/youtube-dl +++ /dev/null @@ -1,6 +0,0 @@ -#!/usr/bin/env python - -import youtube_dl - -if __name__ == '__main__': - youtube_dl.main() diff --git a/youtube-dl.bash-completion b/youtube-dl.bash-completion deleted file mode 100644 index 3a2f62efb..000000000 --- a/youtube-dl.bash-completion +++ /dev/null @@ -1,14 +0,0 @@ -__youtube-dl() -{ - local cur prev opts - COMPREPLY=() - cur="${COMP_WORDS[COMP_CWORD]}" - opts="--all-formats --audio-format --audio-quality --auto-number --batch-file --buffer-size --console-title --continue --cookies --dump-user-agent --extract-audio --format --get-description --get-filename --get-format --get-thumbnail --get-title --get-url --help --id --ignore-errors --keep-video --list-extractors --list-formats --literal --match-title --max-downloads --max-quality --netrc --no-continue --no-mtime --no-overwrites --no-part --no-progress --no-resize-buffer --output --password --playlist-end --playlist-start --prefer-free-formats --quiet --rate-limit --reject-title --restrict-filenames --retries --simulate --skip-download --srt-lang --title --update --user-agent --username --verbose --version --write-description --write-info-json --write-srt" - - if [[ ${cur} == * ]] ; then - COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) ) - return 0 - fi -} - -complete -F __youtube-dl youtube-dl diff --git a/youtube-dl.bash-completion.in b/youtube-dl.bash-completion.in new file mode 100644 index 000000000..c5d0e3f78 --- /dev/null +++ b/youtube-dl.bash-completion.in @@ -0,0 +1,14 @@ +__youtube-dl() +{ + local cur prev opts + COMPREPLY=() + cur="${COMP_WORDS[COMP_CWORD]}" + opts="" + + if [[ ${cur} == * ]] ; then + COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) ) + return 0 + fi +} + +complete -F __youtube-dl youtube-dl diff --git a/youtube_dl/__init__.py b/youtube_dl/__init__.py index 37d6f8cfd..3bb573c16 100644 --- a/youtube_dl/__init__.py +++ b/youtube_dl/__init__.py @@ -23,7 +23,6 @@ __authors__ = ( ) __license__ = 'Public Domain' -__version__ = '2012.11.29' UPDATE_URL = 'https://raw.github.com/rg3/youtube-dl/master/youtube-dl' UPDATE_URL_VERSION = 'https://raw.github.com/rg3/youtube-dl/master/LATEST_VERSION' @@ -41,6 +40,7 @@ import sys import warnings from .utils import * +from .version import __version__ from .FileDownloader import * from .InfoExtractors import * from .PostProcessor import * diff --git a/youtube_dl/version.py b/youtube_dl/version.py new file mode 100644 index 000000000..f30283a62 --- /dev/null +++ b/youtube_dl/version.py @@ -0,0 +1,2 @@ + +__version__ = '2012.11.29'