23569


package.el で、 MELPA に登録されているようなパッケージ(具体的には、
[docker.el](https://github.com/Silex/docker.el))を、手元にクローンしてから利用しようと考えています。理由は、適宜修正を入れながら
(そして、PR を送ったりしながら) パッケージを利用したいからです。

手元にレポジトリを落としてきて、そのパスを load-path に加えた状態なのですが、  
このままだと、 `require` しないと、該当機能を利用することができません。  
できれば、 autoload で必要に応じて、 load するようにしたいです。

このパッケージの関数定義には、 `autoload` の magic comment が付与されているので、  
どうにかすれば、このパッケージの autoload するべき関数を、  
autoload の対象として登録できると思っています。

質問:

  * ローカルで git clone したパッケージの、`;;;###autoload` が付与された関数を、autoload の対象にするにはどうしたらいいでしょうか？


CC BY-SA 3.0
2016-03-28T14:35:30.083
23558
2016-03-28T16:57:29.167
754
question
elisp
clone したパッケージの autoload だけを読み込むには？


`update-directory-autoloads` という関数が用意されているので、これで `*_autoloads.el` を生成します。仮に
`docker.el` リポジトリを `/home/nemo/` に clone したとします。

[code]

    (let ((generated-autoload-file "/home/nemo/docker.el/docker_autoloads.el"))
      (update-directory-autoloads "/home/nemo/docker.el"))
    
[/code]

上記を実行するとリポジトリ内のファイルから `magic comment(";;;### autoloads")` を抽出して
`docker_autoloads.el` に出力します。

**docker_autoloads.el**

[code]

    ;;; docker_autoloads.el --- automatically extracted autoloads
    ;;
    ;;; Code:
    
    ;;;### (autoloads nil "docker" "docker.el" t)
    ;;; Generated autoloads from docker.el
                            :
    
    (provide 'docker_autoloads)
                            :
    
[/code]

もっとも、最終的にはこの `docker_autoloads.el` を load する必要はありますが。

[code]

    (require 'docker_autoloads)
    
[/code]


CC BY-SA 3.0
2016-03-28T16:57:29.167
23569
2016-03-28T16:57:29.167
23558
answer