Определить операционную систему в Clojure - PullRequest
14 голосов
/ 24 января 2011

Есть ли эквивалент Closure в Common Lisp *features*, чтобы вы могли определить конфигурацию ОС и другой среды? Или я просто прошёл через Java API для этого?

Ответы [ 3 ]

18 голосов
/ 24 января 2011

Вероятно, используйте Java API. Это достаточно просто, нет смысла заново изобретать колесо.

user> (System/getProperty "os.name")
"Linux"
user> (System/getProperty "os.version")
"2.6.36-ARCH"
user> (System/getProperty "os.arch")
"amd64"
5 голосов
/ 24 января 2011

Чтобы добавить ответ Брайана Карпера, вы можете легко создать карту системных свойств через Java API и связать ее с символом features :

(def *features* {
  :name (System/getProperty "os.name"),
  :version (System/getProperty "os.version"),
  :arch (System/getProperty "os.arch")})

Что дает вам этоструктура, например:

{:name "Windows 7", :version "6.1", :arch "x86"}

Затем получите доступ к свойству одним из следующих способов:

(:name *features*)
(*features* :name)
(get *features* :name)

В зависимости от того, что плавает на вашей лодке.

0 голосов
/ 25 января 2011

Другие ответы касаются того, как получить системную информацию из Java довольно хорошо. Если вам нужна дополнительная помощь в интерпретации, вот несколько примеров того, как это сделала Терракота:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...