Skip to content

Instantly share code, notes, and snippets.

View selevit's full-sized avatar

Sergey Levitin selevit

View GitHub Profile
@selevit
selevit / rt_bot_api_checker.go
Last active November 15, 2016 00:04
Набросок CI скрипта, который будет проверять корректность ботов radio-t (https://github.com/umputun/rt-bot)
package main
import (
"encoding/json"
"errors"
"fmt"
"io/ioutil"
"net/http"
"os"
"strings"
import os
from collections import namedtuple
import yaml
class BotConfigNotFound(Exception):
pass
@selevit
selevit / MultiTransfer.sol
Created February 19, 2020 12:22
An Ethereum smart contract which transfers many different ERC20 tokens and ETH in one transaction
pragma solidity >=0.4.21 <0.7.0;
pragma experimental ABIEncoderV2;
import "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol";
import "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol";
contract MultiTransfer {
struct Destination {
address token;
uint256 amount;
@selevit
selevit / MultiTransfer.sol
Created February 19, 2020 12:23
An Ethereum smart contract which transfers many different ERC20 tokens and ETH in one transaction.
pragma solidity >=0.4.21 <0.7.0;
pragma experimental ABIEncoderV2;
import "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol";
import "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol";
contract MultiTransfer {
struct Destination {
address token;
uint256 amount;
@fixture(autouse=True, scope='session')
def threadsafe_vcrpy() -> None:
"""This fixture fixes an known VCR.py bug with threading and force_reset():
https://github.com/kevin1024/vcrpy/issues/212
There was a PR for this: https://github.com/kevin1024/vcrpy/pull/300
But the author was not sure if this fix covers all corner cases, and that's why hadn't merge it.
For our needs it's fully enough, that's why we will monkeypatch it until it's not fixed in the lib."""
from vcr.patch import force_reset as original_force_reset
@selevit
selevit / backup-edgeos-config.sh
Created February 19, 2022 12:56
Backup EdgeOS config to S3
#!/bin/vbash
set -e
source /opt/vyatta/etc/functions/script-template
# Save configuration to backups
NOW=`date -I'seconds'`
BACKUP_ROOT="/backup"
CONFIG_FILE="edgerouter_config_${NOW}.boot"
save "${BACKUP_ROOT}/${CONFIG_FILE}"