История изменений
Исправление LINUX-ORG-RU, (текущая версия) :
К слову да, вот буквально 15 минут назад хотел в толксы про это написать. Мол я понял наконец почему у нас все дистрибутивы засраны скриптовым говном, почему утилитки на две строки имеют зависимости как IDE и всё вот это вот. Это оказывается удобно, а люди ленивые твари. И от этого пошла молва мол «вычислильное время сейчас дешёвое,докупи оперативки, поменяй проц, время дороже» и прочий отчасти бред. Это удобно, действительно удобно, только вот есть одно, но. Удобно для прототипирования и частых изменений, если программа устоялась, переписать на компилируемое и не сношать моск.
Но тут у меня есть оправдание, я тренируюсь =) Надо же прикладные вещи делать при обучении, вот тыкнул пальцем попал сюда и всё. Мне нужен скоро будет язык компаньон для автоматизации и одновременно встраиваемый, для прототипирования и расширения основной программы, типа если есть новый формат файла который надо сожрать то сначала набрасывается реализация на компаньоне, а когда уже изменений нет и не будет то переписывается на сишку (хотя если оно вообще стоит того, скрипты для себя хоть на PHP можно держать, переписывать надо что-то дельное и обладающее реальной вычислительной затратностью, а не тупо логику).
Всякие luarocks
с поддтягом зависимостей это ненужное зло, но надо понимать хоть маленько как оно работает ибо локально порой надо что-то сделать быстро/временно, может пригодится.
Метался между языками lua
и pawn
оба подходят, у обоих приколы у павна сишный синтаксис (это и есть си для маленьких) у луа гибкость. pawn
проиграл, но язык интересный очень.
Можно то что выше переписать используя системные curl
для получения данных и jq
для разбора json
будет просто bash
скрипт с логикой на чистой lua
. И это было бы уже Ъ решение, без зависимостей (системные не в счёт), по всем канонам. Но надо поиграться и с зависимостями.
Вот такие пироги, на этапе обучения надо тыкать всё. Каюсь, позорище. Но lua
это исключение, луа это уродливая няшка, дочка папы Си которая бегает в школу аэробики и часто там стукалась головой, развив гибкость и немного тугодумия ^.^
А как компаньён/скрипота lua хороша для такого, на баше яб не стал такое писать.
До этого это был скрипт на си запускаемый через tcc
------------------------------------------
-------Simple auto WakeUP from sleep------
------копиригхт Цы LINUX-ORG-RU-----------
------------license WTFPL-----------------
------------------------------------------
--- заранее в /etc/rc.local шобы работало
--- chmod ugo+r /dev/rtc0
--- chown $USER /sys/power/state
------------------------------------------
local ctime =
{
year = tonumber(os.date("%Y")),
mont = tonumber(os.date("%m")),
days = tonumber(os.date("%d")),
hour = tonumber(os.date("%H")),
mins = tonumber(os.date("%M")),
seco = tonumber(os.date("%S")),
}
chunks = {}
for substring in arg[1]:gmatch("([^:]+)") do
table.insert(chunks, substring)
end
local wtime =
{
hour = tonumber(chunks[1]),
mins = tonumber(chunks[2]),
}
if wtime.hour == nil or wtime.mins == nil then
print("./rtcwake час:минута")
return
end
local time = 0
local incd = 0
if ctime.hour > wtime.hour then
incd = 1
end
time = os.time
{
year = ctime.year,
month = ctime.mont,
day = ctime.days+incd,
hour = wtime.hour,
min = wtime.mins,
sec = ctime.secs
}
print("Включение в "..ctime.year.."/"..ctime.mont.."/"..ctime.days+incd.." "..wtime.hour..":"..wtime.mins)
os.execute("killall rtcwake")
os.execute("/usr/sbin/rtcwake -m mem -s "..time-os.time())
os.execute("sleep 2")
os.execute("xset dpms force on")
os.execute("nmcli networking off")
os.execute("nmcli networking on")
print("тютютю")
Всё, я оправдался :D
Исходная версия LINUX-ORG-RU, :
К слову да, вот буквально 15 минут назад хотел в толксы про это написать. Мол я понял наконец почему у нас все дистрибутивы засраны скриптовым говном, почему утилитки на две строки имеют зависимости как IDE и всё вот это вот. Это оказывается удобно, а люди ленивые твари. И от этого пошла молва мол «вычислильное время сейчас дешёвое,докупи оперативки, поменяй проц, время дороже» и прочий отчасти бред. Это удобно, действительно удобно, только вот есть одно, но. Удобно для прототипирования и частых изменений, если программа устоялась, переписать на компилируемое и не сношать моск.
Но тут у меня есть оправдание, я тренируюсь =) Надо же прикладные вещи делать при обучении, вот тыкнул пальцем попал сюда и всё. Мне нужен скоро будет язык компаньон для автоматизации и одновременно встраиваемый, для прототипирования и расширения основной программы, типа если есть новый формат файла который надо сожрать то сначала набрасывается реализация на компаньоне, а когда уже изменений нет и не будет то переписывается на сишку.
Всякие luarocks
с поддтягом зависимостей это ненужное зло, но надо понимать хоть маленько как оно работает ибо локально порой надо что-то сделать быстро/временно, может пригодится.
Метался между языками lua
и pawn
оба подходят, у обоих приколы у павна сишный синтаксис (это и есть си для маленьких) у луа гибкость. pawn
проиграл, но язык интересный очень.
Можно то что выше переписать используя системные curl
для получения данных и jq
для разбора json
будет просто bash
скрипт с логикой на чистой lua
. И это было бы уже Ъ решение, без зависимостей (системные не в счёт), по всем канонам. Но надо поиграться и с зависимостями.
Вот такие пироги, на этапе обучения надо тыкать всё. Каюсь, позорище. Но lua
это исключение, луа это уродливая няшка, дочка папы Си которая бегает в школу аэробики и часто там стукалась головой, развив гибкость и немного тугодумия ^.^
А как компаньён/скрипота lua хороша для такого, на баше яб не стал такое писать.
До этого это был скрипт на си запускаемый через tcc
------------------------------------------
-------Simple auto WakeUP from sleep------
------копиригхт Цы LINUX-ORG-RU-----------
------------license WTFPL-----------------
------------------------------------------
--- заранее в /etc/rc.local шобы работало
--- chmod ugo+r /dev/rtc0
--- chown $USER /sys/power/state
------------------------------------------
local ctime =
{
year = tonumber(os.date("%Y")),
mont = tonumber(os.date("%m")),
days = tonumber(os.date("%d")),
hour = tonumber(os.date("%H")),
mins = tonumber(os.date("%M")),
seco = tonumber(os.date("%S")),
}
chunks = {}
for substring in arg[1]:gmatch("([^:]+)") do
table.insert(chunks, substring)
end
local wtime =
{
hour = tonumber(chunks[1]),
mins = tonumber(chunks[2]),
}
if wtime.hour == nil or wtime.mins == nil then
print("./rtcwake час:минута")
return
end
local time = 0
local incd = 0
if ctime.hour > wtime.hour then
incd = 1
end
time = os.time
{
year = ctime.year,
month = ctime.mont,
day = ctime.days+incd,
hour = wtime.hour,
min = wtime.mins,
sec = ctime.secs
}
print("Включение в "..ctime.year.."/"..ctime.mont.."/"..ctime.days+incd.." "..wtime.hour..":"..wtime.mins)
os.execute("killall rtcwake")
os.execute("/usr/sbin/rtcwake -m mem -s "..time-os.time())
os.execute("sleep 2")
os.execute("xset dpms force on")
os.execute("nmcli networking off")
os.execute("nmcli networking on")
print("тютютю")
Всё, я оправдался :D