Skip to content

Tutorial apt_repo issue #154

@giuliano108

Description

@giuliano108

I'm following the tutorial:

(apt-repo :present "ppa:wireguard/wireguard")

This snippet...

; [..]
(ssh {:username username
      :hostname hostname}
     (apt-repo :present "ppa:wireguard/wireguard"))

...produces a NPE:

click to expand
$ spire test.clj
test.clj:7 (apt-repo :present "ppa:wireguard/wireguard")
Exception in thread "main" java.lang.NullPointerException
        at clojure.string$starts_with_QMARK_.invokeStatic(string.clj:364)
        at spire.module.apt_repo$fn__25035.invokeStatic(apt_repo.clj:38)
        at spire.module.apt_repo$fn__25035.invoke(apt_repo.clj:38)
        at clojure.lang.MultiFn.invoke(MultiFn.java:234)
        at spire.module.apt_repo$apt_repo_STAR_.invokeStatic(apt_repo.clj:164)
        at spire.module.apt_repo$apt_repo_STAR_.doInvoke(apt_repo.clj:159)
        at clojure.lang.RestFn.invoke(RestFn.java:421)
        at sci.impl.vars.SciVar.invoke(vars.cljc:327)
        at sci.impl.analyzer$return_call$reify__4569.eval(analyzer.cljc:1149)
        at sci.impl.evaluator$eval_let$fn__2076.invoke(evaluator.cljc:65)
        at sci.impl.evaluator$eval_let.invokeStatic(evaluator.cljc:56)
        at sci.impl.analyzer$analyze_let_STAR_$reify__4237.eval(analyzer.cljc:492)
        at sci.impl.evaluator$eval_try.invokeStatic(evaluator.cljc:125)
        at sci.impl.analyzer$analyze_try$reify__4320.eval(analyzer.cljc:741)
        at sci.impl.analyzer$return_do$reify__3600.eval(analyzer.cljc:133)
        at sci.impl.analyzer$return_do$reify__3600.eval(analyzer.cljc:133)
        at sci.impl.evaluator$eval_try.invokeStatic(evaluator.cljc:125)
        at sci.impl.analyzer$analyze_try$reify__4320.eval(analyzer.cljc:741)
        at sci.impl.analyzer$return_do$reify__3600.eval(analyzer.cljc:133)
        at sci.impl.evaluator$eval_let.invokeStatic(evaluator.cljc:74)
        at sci.impl.analyzer$analyze_let_STAR_$reify__4237.eval(analyzer.cljc:492)
        at sci.impl.evaluator$eval_let.invokeStatic(evaluator.cljc:74)
        at sci.impl.analyzer$analyze_let_STAR_$reify__4237.eval(analyzer.cljc:492)
        at sci.impl.evaluator$eval_try.invokeStatic(evaluator.cljc:125)
        at sci.impl.analyzer$analyze_try$reify__4320.eval(analyzer.cljc:741)
        at sci.impl.evaluator$eval_let.invokeStatic(evaluator.cljc:74)
        at sci.impl.analyzer$analyze_let_STAR_$reify__4237.eval(analyzer.cljc:492)
        at sci.impl.interpreter$eval_form.invokeStatic(interpreter.cljc:39)
        at sci.impl.interpreter$eval_string_STAR_.invokeStatic(interpreter.cljc:61)
        at sci.core$eval_string_STAR_.invokeStatic(core.cljc:235)
        at spire.eval$evaluate.invokeStatic(eval.clj:87)
        at spire.core$_main.invokeStatic(core.clj:85)
        at spire.core$_main.doInvoke(core.clj:59)
        at clojure.lang.RestFn.applyTo(RestFn.java:137)
        at spire.core.main(Unknown Source)

After some source diving (the opaque error didn't help with understanding what was going on), I think I found that the apt-repo module invocation should be like below instead:

(ssh {:username username
      :hostname hostname}
     (apt-repo :present {:repo "ppa:wireguard/wireguard"}))

This gets me past the NPE. The module still fails because Wireguard is now officially included in Ubuntu, but that's a different issue. 😉

Thanks for Spire! I'll be watching the project, being able to do configuration management in Clojure, "at the REPL", is an amazing prospect.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions